Skip to content

Commit e29661f

Browse files
committed
Merge remote-tracking branch 'origin/master' into DEV-221
2 parents 9b42214 + c8888d3 commit e29661f

28 files changed

Lines changed: 1608 additions & 1198 deletions

File tree

ShimmerBluetoothManager/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ publishing {
2525

2626
groupId = 'com.shimmerresearch' // Replace with your package's group/organization name
2727
artifactId = 'shimmerbluetoothmanager' // Replace with the name of your package
28-
version = '0.11.1_beta' // Replace with your package version
28+
version = '0.11.3_beta' // Replace with your package version
2929

3030
// Jar publication
3131
//(

ShimmerDriver/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ publishing {
4747

4848
groupId = 'com.shimmerresearch' // Replace with your package's group/organization name
4949
artifactId = 'shimmerdriver' // Replace with the name of your package
50-
version = '0.11.1_beta' // Replace with your package version
50+
version = '0.11.3_beta' // Replace with your package version
5151

5252
// Jar publication
5353
//(

ShimmerDriver/src/main/java/com/shimmerresearch/algorithms/orientation/OrientationModule9DOF.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ public static class DatabaseChannelHandles{
295295
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM303_MAG,
296296
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_ACCEL_LN,
297297
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_GYRO,
298-
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS3MDL_MAG),
298+
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS2MDL_MAG),
299299
CHANNEL_UNITS.NO_UNITS,
300300
SENSOR_CHECK_METHOD.ANY,
301301
listChannelsEuler9DOF_LN);
@@ -318,7 +318,7 @@ public static class DatabaseChannelHandles{
318318
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM303_MAG,
319319
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS2DW12_ACCEL_WR,
320320
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_GYRO,
321-
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS3MDL_MAG),
321+
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS2MDL_MAG),
322322
CHANNEL_UNITS.NO_UNITS,
323323
SENSOR_CHECK_METHOD.ANY,
324324
listChannelsQuat9DOF_WR);

ShimmerDriver/src/main/java/com/shimmerresearch/bluetooth/ShimmerBluetooth.java

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,9 +1111,15 @@ protected void processInstreamResponse(boolean shouldClearCrcFromBuffer) {
11111111
}
11121112
}
11131113
else if(inStreamResponseCommand==STATUS_RESPONSE){
1114-
byte[] responseData = readBytes(1, inStreamResponseCommand);
1114+
int statusBytesToRead = 0;
1115+
if(isSupportedUSBPluggedInStatus()) {
1116+
statusBytesToRead = 2;
1117+
}else {
1118+
statusBytesToRead = 1;
1119+
}
1120+
byte[] responseData = readBytes(statusBytesToRead, inStreamResponseCommand);
11151121
if(responseData!=null){
1116-
parseStatusByte(responseData[0]);
1122+
parseStatusByte(responseData);
11171123

11181124
if(!isSupportedRtcStateInStatus()){
11191125
if(!mIsSensing && !isInitialised()){
@@ -2396,26 +2402,26 @@ protected byte[] readBytes(int numBytes, byte btCommand) {
23962402
/**
23972403
* @param statusByte
23982404
*/
2399-
protected void parseStatusByte(byte statusByte){
2405+
protected void parseStatusByte(byte[] statusByte){
24002406
Boolean savedDockedState = isDocked();
24012407

2402-
setIsDocked(((statusByte & (0x01 << 0)) > 0)? true:false);
2403-
setIsSensing(((statusByte & (0x01 << 1)) > 0)? true:false);
2408+
setIsDocked(((statusByte[0] & (0x01 << 0)) > 0)? true:false);
2409+
setIsSensing(((statusByte[0] & (0x01 << 1)) > 0)? true:false);
24042410
//reserved(((statusByte & (0x01 << 2)) > 0)? true:false);
24052411
if(isSupportedRtcStateInStatus()){
2406-
mIsRtcSet = ((statusByte & (0x01 << 2)) > 0)? true:false;
2412+
mIsRtcSet = ((statusByte[0] & (0x01 << 2)) > 0)? true:false;
24072413
}
2408-
setIsSDLogging(((statusByte & (0x01 << 3)) > 0)? true:false);
2409-
setIsStreaming(((statusByte & (0x01 << 4)) > 0)? true:false);
2414+
setIsSDLogging(((statusByte[0] & (0x01 << 3)) > 0)? true:false);
2415+
setIsStreaming(((statusByte[0] & (0x01 << 4)) > 0)? true:false);
24102416
if(isSupportedSdInfoInStatus()){
2411-
setIsSDPresent(((statusByte & (0x01 << 5)) > 0)? true:false);
2412-
setIsSDError(((statusByte & (0x01 << 6)) > 0)? true:false);
2417+
setIsSDPresent(((statusByte[0] & (0x01 << 5)) > 0)? true:false);
2418+
setIsSDError(((statusByte[0] & (0x01 << 6)) > 0)? true:false);
24132419
}
24142420
if(isSupportedRedLedStateInStatus()){
2415-
mIsRedLedOn = ((statusByte & (0x01 << 7)) > 0)? true:false;
2421+
mIsRedLedOn = ((statusByte[0] & (0x01 << 7)) > 0)? true:false;
24162422
}
2417-
2418-
consolePrintLn("\nStatus Response = \n" + UtilShimmer.byteToHexStringFormatted(statusByte)
2423+
2424+
consolePrintLn("\nStatus Response = \n" + UtilShimmer.byteToHexStringFormatted(statusByte[0])
24192425
+ "\t" + "IsDocked = " + isDocked()
24202426
+ "\t" + "IsSensing = " + mIsSensing
24212427
+ "\t" + "IsRtcSet = " + mIsRtcSet
@@ -2425,6 +2431,14 @@ protected void parseStatusByte(byte statusByte){
24252431
+ "\t" + "mIsSdPresent = " + isSDPresent()
24262432
+ "\t" + "mIsRedLedOn = " + mIsRedLedOn);
24272433

2434+
if(statusByte.length > 1) {
2435+
setIsUsbPluggedIn(((statusByte[1] & (0x01 << 0)) > 0)? true:false);
2436+
2437+
consolePrintLn("\nStatus Response = \n" + UtilShimmer.byteToHexStringFormatted(statusByte[1])
2438+
+ "\t" + "IsUsbPluggedIn = " + isUsbPluggedIn());
2439+
2440+
}
2441+
24282442
if(savedDockedState!=isDocked()){
24292443
dockedStateChange();
24302444
}
@@ -2442,6 +2456,10 @@ public boolean isSupportedSdInfoInStatus() {
24422456
return isThisVerCompatibleWith(FW_ID.LOGANDSTREAM, 0, 7, 12);
24432457
}
24442458

2459+
public boolean isSupportedUSBPluggedInStatus() {
2460+
return isThisVerCompatibleWith(HW_ID.SHIMMER_3R, FW_ID.LOGANDSTREAM, 1,0, 24);
2461+
}
2462+
24452463
protected boolean isSupportedInStreamCmds() {
24462464
if((getFirmwareIdentifier()==FW_ID.LOGANDSTREAM
24472465
|| isThisVerCompatibleWith(FW_ID.BTSTREAM, 0, 8, 1))&& getHardwareVersion()!=HW_ID.SHIMMER_2R){

ShimmerDriver/src/main/java/com/shimmerresearch/driver/Configuration.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@
8484
import com.shimmerresearch.sensors.bmpX80.SensorBMP390;
8585
import com.shimmerresearch.sensors.kionix.SensorKionixAccel;
8686
import com.shimmerresearch.sensors.kionix.SensorKionixKXRB52042;
87-
import com.shimmerresearch.sensors.lisxmdl.SensorLIS2MDL;
8887
import com.shimmerresearch.sensors.lisxmdl.SensorLIS3MDL;
88+
import com.shimmerresearch.sensors.lisxmdl.SensorLIS2MDL;
8989
import com.shimmerresearch.sensors.lsm303.SensorLSM303;
9090
import com.shimmerresearch.sensors.lsm303.SensorLSM303DLHC;
9191
import com.shimmerresearch.sensors.mpu9x50.SensorMPU9150;
@@ -730,8 +730,8 @@ public class SENSOR_ID{
730730
public static final int SHIMMER_LSM6DSV_GYRO = 38;
731731
public static final int SHIMMER_LIS2DW12_ACCEL_WR = 39;
732732
public static final int SHIMMER_ADXL371_ACCEL_HIGHG = 40;
733-
public static final int SHIMMER_LIS3MDL_MAG = 41;
734-
public static final int SHIMMER_LIS2MDL_MAG_WR = 42;
733+
public static final int SHIMMER_LIS2MDL_MAG = 42;
734+
public static final int SHIMMER_LIS3MDL_MAG_ALT = 41;
735735
public static final int SHIMMER_BMP390_PRESSURE = 43;
736736

737737
// public static final int SHIMMER_EXG1_24BIT = 3;
@@ -923,8 +923,8 @@ public enum LABEL_SENSOR_TILE{
923923
GYRO(SensorMPU9X50.LABEL_SENSOR_TILE.GYRO),
924924
GYRO_3R(SensorLSM6DSV.LABEL_SENSOR_TILE.GYRO),
925925
MAG(SensorLSM303.LABEL_SENSOR_TILE.MAG),
926-
MAG_3R(SensorLIS3MDL.LABEL_SENSOR_TILE.MAG),
927-
WIDE_RANGE_MAG_3R(SensorLIS2MDL.LABEL_SENSOR_TILE.WIDE_RANGE_MAG),
926+
MAG_3R(SensorLIS2MDL.LABEL_SENSOR_TILE.MAG),
927+
ALT_MAG_3R(SensorLIS3MDL.LABEL_SENSOR_TILE.ALT_MAG),
928928
PRESSURE_TEMPERATURE_BMP180(SensorBMP180.LABEL_SENSOR_TILE.PRESSURE_TEMPERATURE),
929929
PRESSURE_TEMPERATURE_BMP280(SensorBMP280.LABEL_SENSOR_TILE.PRESSURE_TEMPERATURE),
930930
PRESSURE_TEMPERATURE_BMP390(SensorBMP390.LABEL_SENSOR_TILE.PRESSURE_TEMPERATURE),
@@ -982,7 +982,7 @@ public class GuiLabelSensors{
982982

983983
// public static final String ACCEL_WR = SensorLSM303.GuiLabelSensors.ACCEL_WR;
984984
public static final String MAG = SensorLSM303DLHC.GuiLabelSensors.MAG;
985-
public static final String WR_MAG_3R = SensorLIS2MDL.GuiLabelSensors.MAG_WR;
985+
public static final String ALT_MAG_3R = SensorLIS3MDL.GuiLabelSensors.MAG_ALT;
986986

987987
// public static final String PRESS_TEMP_BMP180 = SensorBMP180.GuiLabelSensors.PRESS_TEMP_BMP180;
988988

@@ -1122,9 +1122,9 @@ public static class ObjectClusterSensorName{
11221122
public static String ACCEL_HIGHG_X = SensorADXL371.ObjectClusterSensorName.ACCEL_HIGHG_X;
11231123
public static String ACCEL_HIGHG_Y = SensorADXL371.ObjectClusterSensorName.ACCEL_HIGHG_Y;
11241124
public static String ACCEL_HIGHG_Z= SensorADXL371.ObjectClusterSensorName.ACCEL_HIGHG_Z;
1125-
public static String MAG_WR_X = SensorLIS2MDL.ObjectClusterSensorName.MAG_WR_X;
1126-
public static String MAG_WR_Y = SensorLIS2MDL.ObjectClusterSensorName.MAG_WR_Y;
1127-
public static String MAG_WR_Z= SensorLIS2MDL.ObjectClusterSensorName.MAG_WR_Z;
1125+
public static String ALT_MAG_X = SensorLIS3MDL.ObjectClusterSensorName.MAG_ALT_X;
1126+
public static String ALT_MAG_Y = SensorLIS3MDL.ObjectClusterSensorName.MAG_ALT_Y;
1127+
public static String ALT_MAG_Z= SensorLIS3MDL.ObjectClusterSensorName.MAG_ALT_Z;
11281128

11291129
public static String BRIDGE_AMP_HIGH = SensorBridgeAmp.ObjectClusterSensorName.BRIDGE_AMP_HIGH;
11301130
public static String BRIDGE_AMP_LOW = SensorBridgeAmp.ObjectClusterSensorName.BRIDGE_AMP_LOW;
@@ -1332,7 +1332,8 @@ public static class CompatibilityInfoForMaps{
13321332

13331333
public static final ShimmerVerObject svoShimmer3RLogAndStream = new ShimmerVerObject(HW_ID.SHIMMER_3R,FW_ID.LOGANDSTREAM,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION);
13341334
public static final ShimmerVerObject svoShimmer3LogAndStreamWithSDLogSyncSupport = new ShimmerVerObject(HW_ID.SHIMMER_3,FW_ID.LOGANDSTREAM,0,16,11,ShimmerVerDetails.ANY_VERSION);
1335-
1335+
public static final ShimmerVerObject svoShimmer3RLogAndStreamWithSDLogSyncSupport = new ShimmerVerObject(HW_ID.SHIMMER_3R,FW_ID.LOGANDSTREAM,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION);
1336+
13361337
private static final ShimmerVerObject svoShimmerGq802154Lr = new ShimmerVerObject(HW_ID.SHIMMER_GQ_802154_LR,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION);
13371338
private static final ShimmerVerObject svoShimmerGq802154Nr = new ShimmerVerObject(HW_ID.SHIMMER_GQ_802154_NR,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION);
13381339
private static final ShimmerVerObject svoShimmer2rGq = new ShimmerVerObject(HW_ID.SHIMMER_2R_GQ,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION,ShimmerVerDetails.ANY_VERSION);
@@ -1503,7 +1504,7 @@ public static class CompatibilityInfoForMaps{
15031504
svoProto3DeluxeNewImuSdLog, svoProto3DeluxeNewImuLogAndStream);
15041505

15051506
//Shimmer3r Mag
1506-
public static final List<ShimmerVerObject> listOfCompatibleVersionInfoLISM3MDL = Arrays.asList(
1507+
public static final List<ShimmerVerObject> listOfCompatibleVersionInfoLIS2MDL = Arrays.asList(
15071508
svoShimmer3RImuLogAndStream, svoShimmer3RLogAndStream,
15081509
svoShimmer3RImuAnyExpBrdLogAndStream,
15091510
svoShimmer3RGsrUnifiedLogAndStream,
@@ -1512,7 +1513,7 @@ public static class CompatibilityInfoForMaps{
15121513
svoShimmer3RProto3DeluxeLogAndStream);
15131514

15141515
//Shimmer3r WR Mag
1515-
public static final List<ShimmerVerObject> listOfCompatibleVersionInfoLIS2MDL = Arrays.asList(
1516+
public static final List<ShimmerVerObject> listOfCompatibleVersionInfoLIS3MDL = Arrays.asList(
15161517
svoShimmer3RImuLogAndStream, svoShimmer3RLogAndStream,
15171518
svoShimmer3RImuAnyExpBrdLogAndStream,
15181519
svoShimmer3RGsrUnifiedLogAndStream,

ShimmerDriver/src/main/java/com/shimmerresearch/driver/ShimmerDevice.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ public abstract class ShimmerDevice extends BasicProcessWithCallBack implements
148148
protected boolean mIsStreaming = false; // This is used to monitor whether the device is in streaming mode
149149
protected boolean mIsInitialised = false;
150150
private boolean mIsDocked = false;
151+
private boolean mIsUsbPluggedIn= false;
151152
protected boolean mHaveAttemptedToReadConfig = false;
152153

153154
//BSL related start
@@ -1048,6 +1049,16 @@ public boolean setIsDocked(boolean docked) {
10481049
}
10491050
return changed;
10501051
}
1052+
1053+
public boolean setIsUsbPluggedIn(boolean usbPluggedIn) {
1054+
boolean changed=false;
1055+
if (mIsUsbPluggedIn!=usbPluggedIn){
1056+
changed = true;
1057+
}
1058+
mIsUsbPluggedIn = usbPluggedIn;
1059+
return changed;
1060+
1061+
}
10511062

10521063
public void stateHandler(Object obj){
10531064

@@ -1059,6 +1070,10 @@ public void stateHandler(Object obj){
10591070
public boolean isDocked() {
10601071
return mIsDocked;
10611072
}
1073+
1074+
public boolean isUsbPluggedIn() {
1075+
return mIsUsbPluggedIn;
1076+
}
10621077

10631078
public void setIsConnected(boolean state) {
10641079
mIsConnected = state;

0 commit comments

Comments
 (0)