Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -980,7 +980,7 @@ else if(isSupportedInStreamCmds() && bufferTemp[getPacketSizeWithCrc()+2]==INSTR
mWaitForResponse=false;
mWaitForAck=false;

processInstreamResponse();
processInstreamResponse(true);

// Need to remove here because it is an
// in-stream response while streaming so not
Expand Down Expand Up @@ -1089,7 +1089,9 @@ else if(currentCommand==GET_INFOMEM_COMMAND || currentCommand==GET_CALIB_DUMP_CO
}

/** process responses to in-stream response */
protected void processInstreamResponse() {
protected void processInstreamResponse(boolean shouldClearCrcFromBuffer) {
boolean responseWasParsed = true;

byte[] inStreamResponseCommandBuffer = readBytes(1, INSTREAM_CMD_RESPONSE);
if(inStreamResponseCommandBuffer!=null){
byte inStreamResponseCommand = inStreamResponseCommandBuffer[0];
Expand Down Expand Up @@ -1138,7 +1140,19 @@ else if(inStreamResponseCommand==VBATT_RESPONSE) {
+ "\tBatt %=" + battStatusDetails.getEstimatedChargePercentageParsed());
}
}
else
{
responseWasParsed = false;
}

if (shouldClearCrcFromBuffer && mBtCommsCrcModeCurrent != BT_CRC_MODE.OFF && responseWasParsed) {
// The driver doesn't currently support checking of CRC bytes on any response
// other then data packets but we still need to clear them from the buffer if
// CRC is enabled.
clearCrcBytesFromBuffer(inStreamResponseCommand);
}
}

}

private void processFirmwareVerResponse() {
Expand Down Expand Up @@ -1675,7 +1689,7 @@ else if(responseCommand==RWC_RESPONSE) {
}
}
else if(responseCommand==INSTREAM_CMD_RESPONSE) {
processInstreamResponse();
processInstreamResponse(false);
}
else if(responseCommand==LSM303DLHC_ACCEL_LPMODE_RESPONSE) {
byte[] responseData = readBytes(1, responseCommand);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.shimmerresearch.bluetooth.ShimmerBluetooth.BT_STATE;
import com.shimmerresearch.driver.BasicProcessWithCallBack;
import com.shimmerresearch.driver.CallbackObject;
import com.shimmerresearch.driver.ObjectCluster;
import com.shimmerresearch.driver.ShimmerMsg;
import com.shimmerresearch.driver.Configuration.COMMUNICATION_TYPE;
import com.shimmerresearch.driverUtilities.ChannelDetails;
Expand All @@ -28,7 +29,8 @@
@FixMethodOrder(MethodSorters.NAME_ASCENDING) // Test methods will be run in alphabetical order
public class API_0000X_ByteCommunicationShimmer3 extends BasicProcessWithCallBack{
ShimmerPC mDevice;
TaskCompletionSource<Boolean> mCalibrationTask;
TaskCompletionSource<Boolean> mWaitTask;
TaskCompletionSource<Boolean> mStreamingTask;
ByteCommunicationSimulatorS3 mByteCommunicationSimulatorS3;

@Before
Expand All @@ -42,12 +44,12 @@ public void setUp() {
@Test
public void test001_testConnectandDisconnect() {
mByteCommunicationSimulatorS3.setIsNewBMPSupported(false);
mCalibrationTask = new TaskCompletionSource<Boolean>();
mWaitTask = new TaskCompletionSource<Boolean>();
mDevice.connect("","");

mCalibrationTask = new TaskCompletionSource<>();
mWaitTask = new TaskCompletionSource<>();
try {
boolean result = mCalibrationTask.getTask().waitForCompletion(60, TimeUnit.SECONDS);
mWaitTask.getTask().waitForCompletion(3, TimeUnit.SECONDS); //Just to give time to connect to finish
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand Down Expand Up @@ -76,23 +78,18 @@ public void test001_testConnectandDisconnect() {
assert(false);
}

try {
mDevice.disconnect();
} catch (ShimmerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

@Test
public void test002_testConnectandDisconnect_NewBMPSupported() {
mByteCommunicationSimulatorS3.setIsNewBMPSupported(true);
mCalibrationTask = new TaskCompletionSource<Boolean>();
mWaitTask = new TaskCompletionSource<Boolean>();
mDevice.connect("","");

mCalibrationTask = new TaskCompletionSource<>();
mWaitTask = new TaskCompletionSource<>();
try {
boolean result = mCalibrationTask.getTask().waitForCompletion(60, TimeUnit.SECONDS);
boolean result = mWaitTask.getTask().waitForCompletion(5, TimeUnit.SECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand Down Expand Up @@ -144,6 +141,9 @@ public void test002_testConnectandDisconnect_NewBMPSupported() {
}
}


ArrayList<ObjectCluster> mListOJC;

@Override
protected void processMsgFromCallback(ShimmerMsg shimmerMSG) {
// TODO Auto-generated method stub
Expand All @@ -156,21 +156,24 @@ protected void processMsgFromCallback(ShimmerMsg shimmerMSG) {
CallbackObject callbackObject = (CallbackObject)object;

if (callbackObject.mState == BT_STATE.CONNECTED) {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (mCalibrationTask!=null) {
mCalibrationTask.setResult(true);
mCalibrationTask = null;
if (mDevice.isInitialised()) {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
}

}
}
} else if (ind == ShimmerPC.MSG_IDENTIFIER_DATA_PACKET) {
System.out.println("Shimmer MSG_IDENTIFIER_DATA_PACKET");
ObjectCluster objc = (ObjectCluster) shimmerMSG.mB;
mListOJC.add(objc);
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
@FixMethodOrder(MethodSorters.NAME_ASCENDING) // Test methods will be run in alphabetical order
public class API_0000X_ByteCommunicationShimmer3R extends BasicProcessWithCallBack{
ShimmerPC mDevice;
TaskCompletionSource<Boolean> mCalibrationTask;
TaskCompletionSource<Boolean> mWaitTask;
ByteCommunicationSimulatorS3R mByteCommunicationSimulatorS3R;
@Before
public void setUp() {
Expand All @@ -60,12 +60,12 @@ public void setUp() {

@Test
public void test001_testConnectandDisconnect() {
mCalibrationTask = new TaskCompletionSource<Boolean>();
mWaitTask = new TaskCompletionSource<Boolean>();
mDevice.connect("","");

mCalibrationTask = new TaskCompletionSource<>();
mWaitTask = new TaskCompletionSource<>();
try {
boolean result = mCalibrationTask.getTask().waitForCompletion(5, TimeUnit.SECONDS);
mWaitTask.getTask().waitForCompletion(3, TimeUnit.SECONDS);//Just to give time to connect to finish
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand Down Expand Up @@ -114,12 +114,12 @@ public void test001_testConnectandDisconnect() {

@Test
public void test002_ConnectandTestBMP390() {
mCalibrationTask = new TaskCompletionSource<Boolean>();
mWaitTask = new TaskCompletionSource<Boolean>();
mDevice.connect("","");

mCalibrationTask = new TaskCompletionSource<>();
mWaitTask = new TaskCompletionSource<>();
try {
boolean result = mCalibrationTask.getTask().waitForCompletion(5, TimeUnit.SECONDS);
mWaitTask.getTask().waitForCompletion(3, TimeUnit.SECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand Down Expand Up @@ -155,12 +155,12 @@ public void test002_ConnectandTestBMP390() {
@Test
public void test003_ConnectandTestCalibParamRead() {

mCalibrationTask = new TaskCompletionSource<Boolean>();
mWaitTask = new TaskCompletionSource<Boolean>();
mDevice.connect("","");

mCalibrationTask = new TaskCompletionSource<>();
mWaitTask = new TaskCompletionSource<>();
try {
boolean result = mCalibrationTask.getTask().waitForCompletion(15, TimeUnit.SECONDS);
mWaitTask.getTask().waitForCompletion(3, TimeUnit.SECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand Down Expand Up @@ -210,12 +210,12 @@ public void test003_ConnectandTestCalibParamRead() {
@Test
public void test004_ConnectandTestDefaultLNAccelAndGyroCalibParam() {

mCalibrationTask = new TaskCompletionSource<Boolean>();
mWaitTask = new TaskCompletionSource<Boolean>();
mDevice.connect("","");

mCalibrationTask = new TaskCompletionSource<>();
mWaitTask = new TaskCompletionSource<>();
try {
boolean result = mCalibrationTask.getTask().waitForCompletion(15, TimeUnit.SECONDS);
mWaitTask.getTask().waitForCompletion(3, TimeUnit.SECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand Down Expand Up @@ -262,12 +262,12 @@ public void test004_ConnectandTestDefaultLNAccelAndGyroCalibParam() {
@Test
public void test005_ConnectandTestDefaultWRAccelCalibParam() {

mCalibrationTask = new TaskCompletionSource<Boolean>();
mWaitTask = new TaskCompletionSource<Boolean>();
mDevice.connect("","");

mCalibrationTask = new TaskCompletionSource<>();
mWaitTask = new TaskCompletionSource<>();
try {
boolean result = mCalibrationTask.getTask().waitForCompletion(15, TimeUnit.SECONDS);
mWaitTask.getTask().waitForCompletion(3, TimeUnit.SECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand Down Expand Up @@ -302,12 +302,12 @@ public void test005_ConnectandTestDefaultWRAccelCalibParam() {
@Test
public void test006_ConnectandTestDefaultMagCalibParam() {

mCalibrationTask = new TaskCompletionSource<Boolean>();
mWaitTask = new TaskCompletionSource<Boolean>();
mDevice.connect("","");

mCalibrationTask = new TaskCompletionSource<>();
mWaitTask = new TaskCompletionSource<>();
try {
boolean result = mCalibrationTask.getTask().waitForCompletion(15, TimeUnit.SECONDS);
mWaitTask.getTask().waitForCompletion(3, TimeUnit.SECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand Down Expand Up @@ -339,12 +339,12 @@ public void test006_ConnectandTestDefaultMagCalibParam() {
@Test
public void test007_ConnectandTestDefaultHighGAccelCalibParam() {

mCalibrationTask = new TaskCompletionSource<Boolean>();
mWaitTask = new TaskCompletionSource<Boolean>();
mDevice.connect("","");

mCalibrationTask = new TaskCompletionSource<>();
mWaitTask = new TaskCompletionSource<>();
try {
boolean result = mCalibrationTask.getTask().waitForCompletion(15, TimeUnit.SECONDS);
mWaitTask.getTask().waitForCompletion(3, TimeUnit.SECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand All @@ -367,12 +367,12 @@ public void test007_ConnectandTestDefaultHighGAccelCalibParam() {
@Test
public void test008_ConnectandTestDefaultWRMagCalibParam() {

mCalibrationTask = new TaskCompletionSource<Boolean>();
mWaitTask = new TaskCompletionSource<Boolean>();
mDevice.connect("","");

mCalibrationTask = new TaskCompletionSource<>();
mWaitTask = new TaskCompletionSource<>();
try {
boolean result = mCalibrationTask.getTask().waitForCompletion(15, TimeUnit.SECONDS);
mWaitTask.getTask().waitForCompletion(3, TimeUnit.SECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand Down Expand Up @@ -428,10 +428,7 @@ protected void processMsgFromCallback(ShimmerMsg shimmerMSG) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (mCalibrationTask!=null) {
mCalibrationTask.setResult(true);
mCalibrationTask = null;
}

}
}

Expand Down
Loading
Loading