Skip to content

Commit 1c6df7f

Browse files
authored
Merge pull request #91 from ShimmerEngineering/DEV-267
DEV-267 more Shimmer3R support
2 parents 61660fb + 8846034 commit 1c6df7f

File tree

8 files changed

+184
-242
lines changed

8 files changed

+184
-242
lines changed

Changelog.md

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
# Changelog
2+
All future changes are now reflected in the [release](https://github.com/ShimmerEngineering/ShimmerAndroidAPI/releases)
3+
4+
28 February 2020 (3.0.65Beta)
5+
- Fixed bug with Bluetooth Manager Example & Service Example where upon Bluetooth connection, SD logging devices would not show up as connected
6+
- Added getNumShimmersConnected to ConnectedShimmersListFragment
7+
8+
9 July 2018 (3.0.64Beta)
9+
- Addition of FilesListActivity to display list of files for a folder. Files can be selected to be opened in an external application. An example of how to use the FilesListActivity can be found in Efficient Data Arrays Example.
10+
- Added option to log to CSV file in Logging & ShimmerService
11+
- Examples updated to demonstrate how to receive and display Shimmer status messages (Toast messages)
12+
- Minor refactoring & Javadoc comments
13+
14+
13 June 2018 (3.0.61Beta)
15+
- Added method to get clone device from Device Sensor Config Fragment
16+
- Added check to Device Config List Adapter so it doesn't crash when an invalid config value is returned
17+
18+
12 March 2018 (3.0.56Beta)
19+
- Add 9DOF channels to arrays data structure (only added if 3D Orientation is enabled)
20+
- Bugfix for EMG CH2 disappearing from arrays
21+
22+
22 February 2018 (3.0.51Beta)
23+
- Updated GSR calibration parameters
24+
- GSR signal bug fixed
25+
- Graph Handler in ShimmerService now accessible as a protected variable
26+
27+
14 February 2018 (3.0.47Internal)
28+
- Bug with GSR signal. Fix in progress...
29+
- Added alternative Arrays data structure to ObjectCluster, accessible via sensorDataArray data class.
30+
Enabling this data structure can improve packet reception rate performance significantly, especially on older devices.
31+
- Added method to get Arrays index for a channel, getIndexForChannelName, in ObjectCluster
32+
- Updated getFormatClusterValue in ObjectCluster to return Arrays data if Arrays data structure is enabled
33+
- Refactored Shimmer Basic Example name to Bluetooth Manager Example
34+
- Added new Shimmer Basic Example, demonstrating connecting and streaming from Shimmer without Bluetooth Manager
35+
- Added new Efficient Data Array Example, demonstrating the use of the alternative Arrays data structure
36+
- Cleaned up build.gradle files for all project modules
37+
38+
(Beta) Rev 3.00
39+
- Support for Shimmer3 devices using updated IMU sensors
40+
- Change to Handler MSGs
41+
42+
| Deprecated | Updated |
43+
| ------------- | ------------- |
44+
| ~~Shimmer.MESSAGE_STATE_CHANGE~~ | ShimmerBluetooth.MSG_IDENTIFIER_STATE_CHANGE |
45+
| ~~Shimmer.MESSAGE_READ~~ | ShimmerBluetooth.MSG_IDENTIFIER_DATA_PACKET |
46+
47+
- ~~Shimmer.MSG_STATE_FULLY_INITIALIZED~~, ~~Shimmer.STATE_CONNECTING~~, ~~Shimmer.STATE_NONE~~, ~~Shimmer.STATE_CONNECTED~~, is deprecated the following code is the recommended use for monitoring the states of a Shimmer device
48+
```
49+
case ShimmerBluetooth.MSG_IDENTIFIER_STATE_CHANGE:
50+
ShimmerBluetooth.BT_STATE state = null;
51+
String macAddress = "";
52+
if (msg.obj instanceof ObjectCluster) { //ONLY APPLICABLE FOR ANDROID
53+
state = ((ObjectCluster) msg.obj).mState;
54+
macAddress = ((ObjectCluster) msg.obj).getMacAddress();
55+
} else if (msg.obj instanceof CallbackObject) {
56+
state = ((CallbackObject) msg.obj).mState;
57+
macAddress = ((CallbackObject) msg.obj).mBluetoothAddress;
58+
}
59+
60+
switch (state) {
61+
case CONNECTED:
62+
break;
63+
case CONNECTING:
64+
break;
65+
case STREAMING:
66+
break;
67+
case STREAMING_AND_SDLOGGING:
68+
break;
69+
case SDLOGGING:
70+
break;
71+
case DISCONNECTED:
72+
break;
73+
}
74+
break;
75+
76+
```
77+
78+
79+
Rev 2.11
80+
- 3 byte timestamp support
81+
82+
4 June 2015 (Beta 2.10)
83+
- fixes to MultiShimmerTemaplate and ShimmerGraphandLogService (A0 and A7)
84+
- update to filter (BSF) --> coefficients[(nTaps/2)] = coefficients[(nTaps/2)] +1;
85+
86+
25 May 2015 (Beta 2.9)
87+
- fix to shimmersetsamplingrate method
88+
- clean up to tcpip example (ShimmerTCPExample/ShimmerPCTCPExample/ShimmerTCPReceiver)
89+
90+
20 May 2015 (Beta 2.8)
91+
- updated filter/ecgtohr/ppgtohr algorithms
92+
- ecgtohr algorithm examples added to MultiShimmerTemplate (Android) and ShimmerCapture (PC)
93+
- various bug fixes to ShimmerCapture and ShimmerConnect
94+
- updates to GSR coefficients
95+
96+
20 October 2014 (Beta 2.7)
97+
- support for LogAndStream Firmware
98+
- support for Baud Rate modification
99+
- support for reading the expansion board
100+
- minor bugs fixed
101+
- moved logging and plotting functionality to the Android Instrument Driver.
102+
- added functionalities for MSS API
103+
04 July 2014 (Beta 2.6)
104+
- Support for Shimmer3 bridge amplifier
105+
- added getExGConfiguration methods
106+
- New Shimmer initialize. Now: get HW Version -> get FW Version -> Initialization
107+
- Firmware Version divide into Major Firmware Version and Minor Firmware Version
108+
- Firmware code added in order to identify the features in the different firmwares
109+
- Change Firmware Version checks, now is Firmware Code checks
110+
- Configurable filter, see Filter.java : 1.Low Pass, 2.High Pass, 3.Band Pass, 4.Band Stop.
111+
- Sensor conflict handling for Shimmer3
112+
- Shimmer PPG->HR jar v0.4
113+
- Updated 3dorientation to work with wide range accel, defaults to low noise if both are enabled
114+
- Added DataProcessing interface
115+
- Moved response timer to ShimmerBluetooth
116+
- Bug fix to allow continual use of gerdavax library if needed
117+
- Added support for BlueCove, see ShimmerConnectBCove
118+
119+
23 Jan 2014 (Beta 2.2)
120+
- Separate the drivers into Shimmer Android Instrument Driver and Shimmer Driver, please read user guide for further details.
121+
122+
15 March 2013 (Beta 0.7)
123+
- a more accurate GSR calibration method is implemented. the polynomial equation is replaced with a linear one.
124+
- the state STATE_CONNECTED is now deprecated. users should use MSG_STATE_FULLY_INITIALIZED as a replacement.
125+
- note that since the Android 4.2 update, Google has changed the Bluetooth Stack. It has been well documented that the reliability of the stack is less than desirable.
126+
- Battery voltage monitoring is now enabled, see manual guideline for further information.
127+
- Definition of the properties, formats and units, used, have been updated to be more concise and consistent across the various instrument drivers
128+
- For further changes please refer to the Shimmer.java file, which can be found as part of the instrument driver
129+
130+
27 September 2012 (Beta 0.6)
131+
- Additional handler msgs for stop streaming has been added.
132+
- An optional AndroidBluetoothLibrary has been added. Please see license. The reason for this is because some stock firmware were not providing the full bluetooth stack. If bluetooth problems persist please consider using an aftermarket firmware.
133+
- The connect method has been modified to accomodate the new library. Examples have been updated as well.
134+
- Object Cluster now accepts the bluetooth id of the device
135+
- Stop Streaming Command which was failing to receive an ACK intermittently has been fixed.
136+
- createInsecureRfcommSocketToServiceRecord can be used for insecure connections (only for the default library). Benefit is that you wont have to key in the pin everytime you connect to a Shimmer device, which is a requirment for some Android devices.
137+
- the 'Nan' bug has been fixed, this bug occurs when the Shimmer device attempts to use the default calibration parameters
138+
139+
18 July 2012 (Beta 0.5)
140+
- ShimmerGraph has been updated to deal with the following warning message 'the following handler class should be static or leaks might occur'
141+
142+
18 July 2012 (Beta 0.4)
143+
- Added com.shimmerresearch.tools which has a Logging class (logs data onto the Android device)
144+
- Fixed a bug with function retrievecalibrationparametersfrompacket
145+
146+
10 July 2012 (Beta 0.3b)
147+
- Added locks to ensure commands can only be transmitted after the previous one is finished
148+
- Updated the command transmission timeout
149+
150+
4 July 2012 (Beta 0.3)
151+
- Fix a bug with the start streaming command which was failing intermittently
152+
- Rename ShimmerHandleClass to Shimmer
153+
154+
26 June 2012 (Beta 0.2)
155+
-Added additional log messages to clearly show the communication transactions between the Shimmer and Android device
156+
-Added an addtional constructor, which allows the android device to set Shimmer settings as soon as connection is made
157+
-Manual updated explaining communication transactions and the use of the constructors

License

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# The following license applies to the source code within this repository/project.
2+
Copyright (c) 2017, Shimmer Research, Ltd. All rights reserved
3+
4+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5+
6+
* Redistributions of source code must retain the above copyright
7+
notice, this list of conditions and the following disclaimer.
8+
* Redistributions in binary form must reproduce the above
9+
copyright notice, this list of conditions and the following
10+
disclaimer in the documentation and/or other materials provided
11+
with the distribution.
12+
* Neither the name of Shimmer Research, Ltd. nor the names of its
13+
contributors may be used to endorse or promote products derived
14+
from this software without specific prior written permission.
15+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
16+

0 commit comments

Comments
 (0)