Skip to content

Commit 985d349

Browse files
committed
ASM-2211 #time 1h bug fix for data block splitting
1 parent 8160155 commit 985d349

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

ShimmerDriver/src/main/java/com/shimmerresearch/verisense/payloaddesign/PayloadContentsDetails.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public abstract class PayloadContentsDetails implements Serializable {
3535

3636
public static boolean DEBUG_ACCEL_ARRAYS = false;
3737
private static boolean DEBUG_DATA_BLOCKS = false;
38+
public static boolean SPLIT_CSVS_AT_MIDDAY_AND_MIDNIGHT = true;
3839

3940
protected transient List<DataBlockDetails> listOfDataBlocksInOrder = new ArrayList<DataBlockDetails>();
4041
public transient DatasetToSave datasetToSave = new DatasetToSave();

ShimmerDriver/src/main/java/com/shimmerresearch/verisense/payloaddesign/PayloadContentsDetailsV8orAbove.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public void parsePayloadContentsMetaData(int binFileByteIndex) throws IOExceptio
131131
}
132132

133133
// If midday/midnight transition detected within a payload, dive down deeper to find out where it is
134-
if(UtilVerisenseDriver.isTransitionMidDayOrMidnight(getStartTimeRwcMs(), getEndTimeRwcMs())) {
134+
if(SPLIT_CSVS_AT_MIDDAY_AND_MIDNIGHT && UtilVerisenseDriver.isTransitionMidDayOrMidnight(getStartTimeRwcMs(), getEndTimeRwcMs())) {
135135
splitDataBlocksAtMiddayMidnight(listOfDataBlocksInOrder, verisenseDevice.getMapOfSensorIdsPerDataBlock().keySet());
136136
}
137137

@@ -398,9 +398,11 @@ public void parsePayloadSensorData() {
398398
verisenseDevice.resetAlgorithmBuffersAssociatedWithSensor(sensorClassKey);
399399
}
400400
}
401-
402-
// Added offset for sensor ID byte and 3 bytes RTC ticks
403-
currentByteIndex += BYTE_COUNT.PAYLOAD_CONTENTS_GEN8_SENSOR_ID + BYTE_COUNT.PAYLOAD_CONTENTS_RTC_BYTES_TICKS;
401+
402+
// Added offset for sensor ID byte and 3 bytes RTC ticks (as long as it's not the second half of a split datablock)
403+
if(!dataBlockDetails.isSecondPartOfSplitDataBlock()) {
404+
currentByteIndex += BYTE_COUNT.PAYLOAD_CONTENTS_GEN8_SENSOR_ID + BYTE_COUNT.PAYLOAD_CONTENTS_RTC_BYTES_TICKS;
405+
}
404406

405407
if(dataBlockDetails.listOfSensorClassKeys.contains(sensorClassKey)) {
406408
verisenseDevice.parseDataBlockData(dataBlockDetails, byteBuffer, currentByteIndex, COMMUNICATION_TYPE.SD);

0 commit comments

Comments
 (0)