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 @@ -1084,6 +1084,7 @@ public static class ObjectClusterSensorName{

public static String TIMESTAMP = SensorShimmerClock.ObjectClusterSensorName.TIMESTAMP;//"Timestamp";
public static String REAL_TIME_CLOCK = SensorShimmerClock.ObjectClusterSensorName.REAL_TIME_CLOCK;//"RealTime";
public static String SHIMMER_CLOCK = SensorShimmerClock.ObjectClusterSensorName.SHIMMER_CLOCK;//"RealTime";
// public static String REAL_TIME_CLOCK_SYNC = TimeSyncModule.ObjectClusterSensorName.REAL_TIME_CLOCK_SYNC;//"RealTime_Sync";
// public static String TIMESTAMP_SYNC = TimeSyncModule.ObjectClusterSensorName.TIMESTAMP_SYNC;//"Timestamp_Sync";
public static String SYSTEM_TIMESTAMP = SensorSystemTimeStamp.ObjectClusterSensorName.SYSTEM_TIMESTAMP;//"System_Timestamp";
Expand Down Expand Up @@ -1727,6 +1728,7 @@ public static class CompatibilityInfoForMaps{
aMap.put(SensorSystemTimeStamp.ObjectClusterSensorName.SYSTEM_TIMESTAMP_PLOT, SensorShimmerClock.channelSystemTimestampPlot);

aMap.put(SensorShimmerClock.ObjectClusterSensorName.REAL_TIME_CLOCK, SensorShimmerClock.channelRealTimeClock);
aMap.put(SensorShimmerClock.ObjectClusterSensorName.SHIMMER_CLOCK, SensorShimmerClock.channelShimmerClock3LSB);
// aMap.put(ShimmerClock.ObjectClusterSensorName.REAL_TIME_CLOCK, ShimmerClock.channelRealTimeClockSync);
aMap.put(SensorShimmerClock.ObjectClusterSensorName.TIMESTAMP_OFFSET, SensorShimmerClock.channelShimmerClockOffset);
// aMap.putAll(ShimmerClock.mChannelMapRef);
Expand Down Expand Up @@ -1773,6 +1775,7 @@ public static class CompatibilityInfoForMaps{
aMap.put(SensorSystemTimeStamp.ObjectClusterSensorName.SYSTEM_TIMESTAMP_PLOT, SensorShimmerClock.channelSystemTimestampPlot);

aMap.put(SensorShimmerClock.ObjectClusterSensorName.REAL_TIME_CLOCK, SensorShimmerClock.channelRealTimeClock);
aMap.put(SensorShimmerClock.ObjectClusterSensorName.SHIMMER_CLOCK, SensorShimmerClock.channelShimmerClock3LSB);
// aMap.put(ShimmerClock.ObjectClusterSensorName.REAL_TIME_CLOCK, ShimmerClock.channelRealTimeClockSync);
aMap.put(SensorShimmerClock.ObjectClusterSensorName.TIMESTAMP_OFFSET, SensorShimmerClock.channelShimmerClockOffset);
// aMap.putAll(ShimmerClock.mChannelMapRef);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2804,7 +2804,8 @@ else if (getHardwareVersion()==HW_ID.SHIMMER_2 || getHardwareVersion()==HW_ID.SH
protected void parseTimestampShimmer3(COMMUNICATION_TYPE fwType, ObjectCluster objectCluster, double[] uncalibratedData, String[] uncalibratedDataUnits, double[] calibratedData, String[] calibratedDataUnits, String[] sensorNames, long[] newPacketInt) {
int iTimeStamp=getSignalIndex(Configuration.Shimmer3.ObjectClusterSensorName.TIMESTAMP); //find index
double shimmerTimestampTicks = (double)newPacketInt[iTimeStamp];

objectCluster.addDataToMap(Shimmer3.ObjectClusterSensorName.SHIMMER_CLOCK,CHANNEL_TYPE.UNCAL.toString(),CHANNEL_UNITS.CLOCK_UNIT,shimmerTimestampTicks);
objectCluster.addDataToMap(Shimmer3.ObjectClusterSensorName.SHIMMER_CLOCK,CHANNEL_TYPE.CAL.toString(),CHANNEL_UNITS.CLOCK_UNIT,shimmerTimestampTicks);
if(mFirstTime && fwType==COMMUNICATION_TYPE.SD){
//this is to make sure the Raw starts from zero for SD data. See comment for mFirstTsOffsetFromInitialTsTicks.
mFirstTsOffsetFromInitialTsTicks = shimmerTimestampTicks;
Expand All @@ -2822,7 +2823,7 @@ protected void parseTimestampShimmer3(COMMUNICATION_TYPE fwType, ObjectCluster o

double timestampUnwrappedTicks = unwrapTimeStamp(shimmerTimestampTicks);
double timestampUnwrappedMilliSecs = timestampUnwrappedTicks/getRtcClockFreq()*1000; // to convert into mS

incrementPacketsReceivedCounters();
calculateTrialPacketLoss(timestampUnwrappedMilliSecs);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public static class ObjectClusterSensorName{

public static final String TIMESTAMP_DIFFERENCE = "Timestamp Difference";
public static final String REAL_TIME_CLOCK = "RealTime";

public static final String SHIMMER_CLOCK = "Clock 3_LSB";
public static final String TIMESTAMP_OFFSET = "Offset";
}

Expand All @@ -93,6 +93,7 @@ public static class DatabaseChannelHandles{
public static final String OFFSET_TIMESTAMP = "OFFSET";//"Offset";

public static final String REAL_TIME_CLOCK = "Real_Time_Clock";
public static final String SHIMMER_CLOCK = "Clock_3_LSB";
}

public static final class DatabaseConfigHandle{
Expand All @@ -106,7 +107,8 @@ public static final class DatabaseConfigHandle{
Arrays.asList(SensorShimmerClock.ObjectClusterSensorName.TIMESTAMP,
SensorShimmerClock.ObjectClusterSensorName.TIMESTAMP_DIFFERENCE,
SensorShimmerClock.ObjectClusterSensorName.REAL_TIME_CLOCK,
SensorShimmerClock.ObjectClusterSensorName.TIMESTAMP_OFFSET
SensorShimmerClock.ObjectClusterSensorName.TIMESTAMP_OFFSET,
SensorShimmerClock.ObjectClusterSensorName.SHIMMER_CLOCK
));
{
sensorShimmerClock.mIsApiSensor = true; // Even though TIMESTAMP channel is an API channel, there is no enabledSensor bit for it
Expand Down Expand Up @@ -220,6 +222,17 @@ public static final class DatabaseConfigHandle{
channelRealTimeClock.mChannelSource = CHANNEL_SOURCE.API;
}

public static final ChannelDetails channelShimmerClock3LSB = new ChannelDetails(
ObjectClusterSensorName.SHIMMER_CLOCK,
ObjectClusterSensorName.SHIMMER_CLOCK,
DatabaseChannelHandles.SHIMMER_CLOCK,
CHANNEL_UNITS.CLOCK_UNIT,
Arrays.asList(CHANNEL_TYPE.UNCAL ,CHANNEL_TYPE.CAL), false, true);
{
//TODO put into above constructor
channelRealTimeClock.mChannelSource = CHANNEL_SOURCE.API;
}

//TODO: Move to separate class
public static final ChannelDetails channelBattPercentage = new ChannelDetails(
Configuration.Shimmer3.ObjectClusterSensorName.BATT_PERCENTAGE,
Expand Down Expand Up @@ -301,9 +314,8 @@ public void generateSensorMap() {
channelMapRef.put(SensorShimmerClock.ObjectClusterSensorName.TIMESTAMP_DIFFERENCE, SensorShimmerClock.channelShimmerTsDiffernce);
channelMapRef.put(SensorShimmerClock.ObjectClusterSensorName.TIMESTAMP_OFFSET, SensorShimmerClock.channelShimmerClockOffset);
channelMapRef.put(SensorShimmerClock.ObjectClusterSensorName.REAL_TIME_CLOCK, SensorShimmerClock.channelRealTimeClock);

channelMapRef.put(SensorShimmerClock.ObjectClusterSensorName.SHIMMER_CLOCK, SensorShimmerClock.channelShimmerClock3LSB);
channelMapRef.put(SensorBattVoltage.ObjectClusterSensorName.BATT_PERCENTAGE, SensorShimmerClock.channelBattPercentage);

channelMapRef.put(ShimmerStreamingProperties.ObjectClusterSensorName.PACKET_RECEPTION_RATE_CURRENT, SensorShimmerClock.channelReceptionRateCurrent);
channelMapRef.put(ShimmerStreamingProperties.ObjectClusterSensorName.PACKET_RECEPTION_RATE_OVERALL, SensorShimmerClock.channelReceptionRateTrial);
}
Expand Down
Loading