Skip to content

Commit 971f3e3

Browse files
committed
add support for isUsbPluggedIn status byte
1 parent 440dc3c commit 971f3e3

3 files changed

Lines changed: 37 additions & 13 deletions

File tree

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

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,9 +1111,9 @@ protected void processInstreamResponse(boolean shouldClearCrcFromBuffer) {
11111111
}
11121112
}
11131113
else if(inStreamResponseCommand==STATUS_RESPONSE){
1114-
byte[] responseData = readBytes(1, inStreamResponseCommand);
1114+
byte[] responseData = readBytes(2, inStreamResponseCommand);
11151115
if(responseData!=null){
1116-
parseStatusByte(responseData[0]);
1116+
parseStatusByte(responseData);
11171117

11181118
if(!isSupportedRtcStateInStatus()){
11191119
if(!mIsSensing && !isInitialised()){
@@ -2396,26 +2396,30 @@ protected byte[] readBytes(int numBytes, byte btCommand) {
23962396
/**
23972397
* @param statusByte
23982398
*/
2399-
protected void parseStatusByte(byte statusByte){
2399+
protected void parseStatusByte(byte[] statusByte){
24002400
Boolean savedDockedState = isDocked();
24012401

2402-
setIsDocked(((statusByte & (0x01 << 0)) > 0)? true:false);
2403-
setIsSensing(((statusByte & (0x01 << 1)) > 0)? true:false);
2402+
setIsDocked(((statusByte[0] & (0x01 << 0)) > 0)? true:false);
2403+
setIsSensing(((statusByte[0] & (0x01 << 1)) > 0)? true:false);
24042404
//reserved(((statusByte & (0x01 << 2)) > 0)? true:false);
24052405
if(isSupportedRtcStateInStatus()){
2406-
mIsRtcSet = ((statusByte & (0x01 << 2)) > 0)? true:false;
2406+
mIsRtcSet = ((statusByte[0] & (0x01 << 2)) > 0)? true:false;
24072407
}
2408-
setIsSDLogging(((statusByte & (0x01 << 3)) > 0)? true:false);
2409-
setIsStreaming(((statusByte & (0x01 << 4)) > 0)? true:false);
2408+
setIsSDLogging(((statusByte[0] & (0x01 << 3)) > 0)? true:false);
2409+
setIsStreaming(((statusByte[0] & (0x01 << 4)) > 0)? true:false);
24102410
if(isSupportedSdInfoInStatus()){
2411-
setIsSDPresent(((statusByte & (0x01 << 5)) > 0)? true:false);
2412-
setIsSDError(((statusByte & (0x01 << 6)) > 0)? true:false);
2411+
setIsSDPresent(((statusByte[0] & (0x01 << 5)) > 0)? true:false);
2412+
setIsSDError(((statusByte[0] & (0x01 << 6)) > 0)? true:false);
24132413
}
24142414
if(isSupportedRedLedStateInStatus()){
2415-
mIsRedLedOn = ((statusByte & (0x01 << 7)) > 0)? true:false;
2415+
mIsRedLedOn = ((statusByte[0] & (0x01 << 7)) > 0)? true:false;
24162416
}
24172417

2418-
consolePrintLn("\nStatus Response = \n" + UtilShimmer.byteToHexStringFormatted(statusByte)
2418+
if(getHardwareVersion()==HW_ID.SHIMMER_3R && getFirmwareVersionCode()>=10) {
2419+
setIsUsbPluggedIn(((statusByte[1] & (0x01 << 0)) > 0)? true:false);
2420+
}
2421+
2422+
consolePrintLn("\nStatus Response = \n" + UtilShimmer.byteToHexStringFormatted(statusByte[0])
24192423
+ "\t" + "IsDocked = " + isDocked()
24202424
+ "\t" + "IsSensing = " + mIsSensing
24212425
+ "\t" + "IsRtcSet = " + mIsRtcSet
@@ -2425,6 +2429,9 @@ protected void parseStatusByte(byte statusByte){
24252429
+ "\t" + "mIsSdPresent = " + isSDPresent()
24262430
+ "\t" + "mIsRedLedOn = " + mIsRedLedOn);
24272431

2432+
consolePrintLn("\nStatus Response = \n" + UtilShimmer.byteToHexStringFormatted(statusByte[1])
2433+
+ "\t" + "IsUsbPluggedIn = " + isUsbPluggedIn());
2434+
24282435
if(savedDockedState!=isDocked()){
24292436
dockedStateChange();
24302437
}

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;

ShimmerDriver/src/main/java/com/shimmerresearch/driverUtilities/ShimmerVerObject.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,9 @@ private void parseShimmerVerDetails() {
265265
&&mFirmwareVersionInternal!=FW_ID.UNKNOWN){
266266
// Handle FW version code.
267267
mFirmwareVersionCode = -1;
268-
if(UtilShimmer.compareVersions(mHardwareVersion,mFirmwareIdentifier,mFirmwareVersionMajor,mFirmwareVersionMinor,mFirmwareVersionInternal,HW_ID.SHIMMER_3,FW_ID.LOGANDSTREAM,0,16,6)) {
268+
if(UtilShimmer.compareVersions(mHardwareVersion,mFirmwareIdentifier,mFirmwareVersionMajor,mFirmwareVersionMinor,mFirmwareVersionInternal,HW_ID.SHIMMER_3R,FW_ID.LOGANDSTREAM,1,0,23)) {
269+
mFirmwareVersionCode = 10;
270+
}else if(UtilShimmer.compareVersions(mHardwareVersion,mFirmwareIdentifier,mFirmwareVersionMajor,mFirmwareVersionMinor,mFirmwareVersionInternal,HW_ID.SHIMMER_3,FW_ID.LOGANDSTREAM,0,16,6)) {
269271
mFirmwareVersionCode = 9;
270272
}else if(UtilShimmer.compareVersions(mHardwareVersion,mFirmwareIdentifier,mFirmwareVersionMajor,mFirmwareVersionMinor,mFirmwareVersionInternal,HW_ID.SHIMMER_3R,FW_ID.LOGANDSTREAM,0,0,1)
271273
|| UtilShimmer.compareVersions(mHardwareVersion,mFirmwareIdentifier,mFirmwareVersionMajor,mFirmwareVersionMinor,mFirmwareVersionInternal,HW_ID.SHIMMER_3,FW_ID.LOGANDSTREAM,0,13,7)

0 commit comments

Comments
 (0)