diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/bluetooth/ShimmerBluetooth.java b/ShimmerDriver/src/main/java/com/shimmerresearch/bluetooth/ShimmerBluetooth.java index ff9b22942..ec441ad7f 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/bluetooth/ShimmerBluetooth.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/bluetooth/ShimmerBluetooth.java @@ -505,6 +505,7 @@ public int getNumCrcBytes() { public static final int MSG_IDENTIFIER_VERISENSE_ERASE_DATA_COMPLETED = 14; public static final int MSG_IDENTIFIER_VERISENSE_WRITE_OPCONFIG_COMPLETED = 15; + public static final int MSG_IDENTIFIER_SYNC_COMPLETED = 16; // private boolean mVerboseMode = true; // private String mParentClassName = "ShimmerPC"; diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/comms/radioProtocol/RadioListener.java b/ShimmerDriver/src/main/java/com/shimmerresearch/comms/radioProtocol/RadioListener.java index 49dfd5f1e..995058678 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/comms/radioProtocol/RadioListener.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/comms/radioProtocol/RadioListener.java @@ -26,7 +26,7 @@ public interface RadioListener { public void isNowStreamingCallback(); public void hasStopStreamingCallback(); public void isNowStreamLoggedDataCallback(); - public void hasStopStreamLoggedDataCallback(); + public void hasStopStreamLoggedDataCallback(String binPath); public void initialiseStreamingCallback(); // public void eventSyncStates(boolean isDocked, boolean isInitialised, boolean isSdLogging, boolean isSensing, boolean isStreaming, boolean haveAttemptedToRead); diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/driver/ShimmerDeviceCallbackAdapter.java b/ShimmerDriver/src/main/java/com/shimmerresearch/driver/ShimmerDeviceCallbackAdapter.java index e1a47e152..f3e073943 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/driver/ShimmerDeviceCallbackAdapter.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/driver/ShimmerDeviceCallbackAdapter.java @@ -107,6 +107,11 @@ public void newSyncPayloadReceived(int payloadIndex, boolean crcError, double tr mShimmerDevice.sendCallBackMsg(ShimmerBluetooth.MSG_IDENTIFIER_SYNC_PROGRESS, callBackObject); } + public void readLoggedDataCompleted(String binFilePath) { + CallbackObject callBackObject = new CallbackObject(getMacId(), getComPort(), new SyncProgressDetails(binFilePath)); + mShimmerDevice.sendCallBackMsg(ShimmerBluetooth.MSG_IDENTIFIER_SYNC_COMPLETED, callBackObject); + } + public void eraseDataCompleted() { CallbackObject callBackObject = new CallbackObject(getMacId(), getComPort(), true); mShimmerDevice.sendCallBackMsg(ShimmerBluetooth.MSG_IDENTIFIER_VERISENSE_ERASE_DATA_COMPLETED, callBackObject); diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/driver/shimmer4sdk/Shimmer4sdk.java b/ShimmerDriver/src/main/java/com/shimmerresearch/driver/shimmer4sdk/Shimmer4sdk.java index 1ace71577..f337468d9 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/driver/shimmer4sdk/Shimmer4sdk.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/driver/shimmer4sdk/Shimmer4sdk.java @@ -693,7 +693,7 @@ public void isNowStreamLoggedDataCallback() { } @Override - public void hasStopStreamLoggedDataCallback() { + public void hasStopStreamLoggedDataCallback(String binPath) { // TODO Auto-generated method stub } diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java index d98fb363f..a2b83894e 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java @@ -1686,7 +1686,8 @@ public void isNowStreamLoggedDataCallback() { } @Override - public void hasStopStreamLoggedDataCallback() { + public void hasStopStreamLoggedDataCallback(String binFilePath) { + mDeviceCallbackAdapter.readLoggedDataCompleted(binFilePath); // TODO Auto-generated method stub setBluetoothRadioState(BT_STATE.CONNECTED); } @@ -1940,6 +1941,16 @@ public void readLoggedData() throws ShimmerException { mapOfVerisenseProtocolByteCommunication.get(currentStreamingCommsRoute).readLoggedData(); } + public void setRootPathForBinFile(String path) { + mapOfVerisenseProtocolByteCommunication.get(currentStreamingCommsRoute).setRootPathForBinFile(path); + } + + public void deleteData() throws Exception { + + mapOfVerisenseProtocolByteCommunication.get(currentStreamingCommsRoute).eraseDataTask().waitForCompletion(); + + } + /** * @return Null if sensor not supported by current hardware * @see SensorLIS2DW12 @@ -2187,7 +2198,7 @@ public void setPendingEventScheduleRwcSync(PendingEventSchedule pendingEventSche } /** - * The number of minute’s interval the ASM sensor will wait after a failed connection attempt before turning on the scheduler again + * The number of minute�s interval the ASM sensor will wait after a failed connection attempt before turning on the scheduler again * @return interval in minutes, if this value is set to either 0 or 65535 then the adaptive scheduler will never be turned on. */ public int getAdaptiveSchedulerInterval() { @@ -2195,7 +2206,7 @@ public int getAdaptiveSchedulerInterval() { } /** - * The number of minute’s interval the ASM sensor will wait after a failed connection attempt before turning on the scheduler again + * The number of minute�s interval the ASM sensor will wait after a failed connection attempt before turning on the scheduler again * @param adaptiveSchedulerInterval interval in minutes, if this value is set to either 0 or 65535 then the adaptive scheduler will never be turned on. */ public void setAdaptiveSchedulerInterval(int adaptiveSchedulerInterval) { diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/communication/SyncProgressDetails.java b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/communication/SyncProgressDetails.java index 538d12d3e..7d8f9270e 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/communication/SyncProgressDetails.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/communication/SyncProgressDetails.java @@ -12,4 +12,7 @@ public SyncProgressDetails(int payloadIndex, boolean crcError, double transferRa mTransferRateBytes = transferRateBytes; mBinFilePath = binFilePath; } + public SyncProgressDetails(String binFilePath) { + mBinFilePath = binFilePath; + } } diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/communication/VerisenseProtocolByteCommunication.java b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/communication/VerisenseProtocolByteCommunication.java index 6b9639bda..f4e1137cf 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/communication/VerisenseProtocolByteCommunication.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/communication/VerisenseProtocolByteCommunication.java @@ -195,7 +195,7 @@ void handleResponse(VerisenseMessage verisenseMessage) { resetFileNameOnStreamingLoggedDataFinish(); stateChange(VerisenseProtocolState.Connected); for (RadioListener rl : mRadioListenerList) { - rl.hasStopStreamLoggedDataCallback(); + rl.hasStopStreamLoggedDataCallback(getDataFilePath()); } } diff --git a/ShimmerDriverPC/src/main/java/com/shimmerresearch/driver/ble/BleRadioByteCommunication.java b/ShimmerDriverPC/src/main/java/com/shimmerresearch/driver/ble/BleRadioByteCommunication.java index c723afa67..12a6f5235 100644 --- a/ShimmerDriverPC/src/main/java/com/shimmerresearch/driver/ble/BleRadioByteCommunication.java +++ b/ShimmerDriverPC/src/main/java/com/shimmerresearch/driver/ble/BleRadioByteCommunication.java @@ -188,7 +188,7 @@ public void connect() throws ShimmerException{ WriteDataToProcess("Connect"); mTaskConnect = new TaskCompletionSource<>(); try { - boolean result = mTaskConnect.getTask().waitForCompletion(2, TimeUnit.SECONDS); + boolean result = mTaskConnect.getTask().waitForCompletion(6, TimeUnit.SECONDS); if (result) { } else { diff --git a/ShimmerDriverPC/src/main/java/com/shimmerresearch/tools/bluetooth/BasicShimmerBluetoothManagerPc.java b/ShimmerDriverPC/src/main/java/com/shimmerresearch/tools/bluetooth/BasicShimmerBluetoothManagerPc.java index 2faae6f88..50d5ec42c 100644 --- a/ShimmerDriverPC/src/main/java/com/shimmerresearch/tools/bluetooth/BasicShimmerBluetoothManagerPc.java +++ b/ShimmerDriverPC/src/main/java/com/shimmerresearch/tools/bluetooth/BasicShimmerBluetoothManagerPc.java @@ -39,19 +39,27 @@ public class BasicShimmerBluetoothManagerPc extends ShimmerBluetoothManager { List shimmer3BleMacIdList = new ArrayList(); List verisenseDeviceList = new ArrayList(); List shimmer3BleDeviceList = new ArrayList(); - private boolean mInternalUse = true; public static int mGRPCPort; public BasicShimmerBluetoothManagerPc() { startGrpc(); } - public BasicShimmerBluetoothManagerPc(boolean isInternalUse) { - if(isInternalUse) { + public BasicShimmerBluetoothManagerPc(boolean enableGRPC) { + if(enableGRPC) { startGrpc(); } } + protected void startGrpc(String path) { + try { + GrpcBLERadioByteTools grpcTool = new GrpcBLERadioByteTools("ShimmerBLEGrpc.exe",path); + mGRPCPort = grpcTool.startServer(); + } catch(Exception e) { + e.printStackTrace(); + } + } + private void startGrpc() { try { GrpcBLERadioByteTools grpcTool = new GrpcBLERadioByteTools();