From 277d245a80d7538867d93ff38259b2046837f76c Mon Sep 17 00:00:00 2001 From: JongChern Date: Wed, 30 Jul 2025 16:51:51 +0800 Subject: [PATCH 1/5] Update BasicShimmerBluetoothManagerPc.java --- .../bluetooth/BasicShimmerBluetoothManagerPc.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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(); From dd5ec6fbdee1587e7c4b4f9e5473c3a7169d6b11 Mon Sep 17 00:00:00 2001 From: JongChern Date: Thu, 31 Jul 2025 11:02:08 +0800 Subject: [PATCH 2/5] more functionality --- .../java/com/shimmerresearch/bluetooth/ShimmerBluetooth.java | 1 + .../shimmerresearch/driver/ShimmerDeviceCallbackAdapter.java | 5 +++++ .../java/com/shimmerresearch/verisense/VerisenseDevice.java | 5 +++-- 3 files changed, 9 insertions(+), 2 deletions(-) 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/driver/ShimmerDeviceCallbackAdapter.java b/ShimmerDriver/src/main/java/com/shimmerresearch/driver/ShimmerDeviceCallbackAdapter.java index e1a47e152..e0d8669c2 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() { + CallbackObject callBackObject = new CallbackObject(getMacId(), getComPort(), true); + 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/verisense/VerisenseDevice.java b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java index d98fb363f..4f9e6198b 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java @@ -1687,6 +1687,7 @@ public void isNowStreamLoggedDataCallback() { @Override public void hasStopStreamLoggedDataCallback() { + mDeviceCallbackAdapter.readLoggedDataCompleted(); // TODO Auto-generated method stub setBluetoothRadioState(BT_STATE.CONNECTED); } @@ -2187,7 +2188,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 +2196,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) { From b348161df25b18035f5c3a8ecc86e039e975cc01 Mon Sep 17 00:00:00 2001 From: JongChern Date: Thu, 31 Jul 2025 11:39:54 +0800 Subject: [PATCH 3/5] update --- .../java/com/shimmerresearch/verisense/VerisenseDevice.java | 6 ++++++ .../driver/ble/BleRadioByteCommunication.java | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java index 4f9e6198b..5beae6cd9 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java @@ -1941,6 +1941,12 @@ public void readLoggedData() throws ShimmerException { mapOfVerisenseProtocolByteCommunication.get(currentStreamingCommsRoute).readLoggedData(); } + public void deleteData() throws Exception { + + mapOfVerisenseProtocolByteCommunication.get(currentStreamingCommsRoute).eraseDataTask().waitForCompletion(); + + } + /** * @return Null if sensor not supported by current hardware * @see SensorLIS2DW12 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 { From c45db1dd63a43aa15d30dc261094f78429fa58e7 Mon Sep 17 00:00:00 2001 From: JongChern Date: Fri, 1 Aug 2025 14:41:13 +0800 Subject: [PATCH 4/5] parsing functional --- .../shimmerresearch/comms/radioProtocol/RadioListener.java | 2 +- .../shimmerresearch/driver/ShimmerDeviceCallbackAdapter.java | 4 ++-- .../com/shimmerresearch/driver/shimmer4sdk/Shimmer4sdk.java | 2 +- .../java/com/shimmerresearch/verisense/VerisenseDevice.java | 4 ++-- .../verisense/communication/SyncProgressDetails.java | 3 +++ .../communication/VerisenseProtocolByteCommunication.java | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) 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 e0d8669c2..f3e073943 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/driver/ShimmerDeviceCallbackAdapter.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/driver/ShimmerDeviceCallbackAdapter.java @@ -107,8 +107,8 @@ public void newSyncPayloadReceived(int payloadIndex, boolean crcError, double tr mShimmerDevice.sendCallBackMsg(ShimmerBluetooth.MSG_IDENTIFIER_SYNC_PROGRESS, callBackObject); } - public void readLoggedDataCompleted() { - CallbackObject callBackObject = new CallbackObject(getMacId(), getComPort(), true); + public void readLoggedDataCompleted(String binFilePath) { + CallbackObject callBackObject = new CallbackObject(getMacId(), getComPort(), new SyncProgressDetails(binFilePath)); mShimmerDevice.sendCallBackMsg(ShimmerBluetooth.MSG_IDENTIFIER_SYNC_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 5beae6cd9..d5d36af7b 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java @@ -1686,8 +1686,8 @@ public void isNowStreamLoggedDataCallback() { } @Override - public void hasStopStreamLoggedDataCallback() { - mDeviceCallbackAdapter.readLoggedDataCompleted(); + public void hasStopStreamLoggedDataCallback(String binFilePath) { + mDeviceCallbackAdapter.readLoggedDataCompleted(binFilePath); // TODO Auto-generated method stub setBluetoothRadioState(BT_STATE.CONNECTED); } 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()); } } From 645bd83ab8a58a9f52a45a0edb8b91f31bf6e153 Mon Sep 17 00:00:00 2001 From: JongChern Date: Fri, 1 Aug 2025 15:54:33 +0800 Subject: [PATCH 5/5] Update VerisenseDevice.java --- .../java/com/shimmerresearch/verisense/VerisenseDevice.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java index d5d36af7b..a2b83894e 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/verisense/VerisenseDevice.java @@ -1941,6 +1941,10 @@ 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();