Skip to content
Closed
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 @@ -785,6 +785,13 @@ public String toString() {
protected boolean mPastGSRFirstTime=true; // this is to fix a bug with SDLog v0.9

// ---------- GSR end ------------------

protected int mCorruptedTimestampSampleCount = 0;

public int getCorruptedTimestampSampleCount() {
return mCorruptedTimestampSampleCount;
}


public ObjectCluster setLSLTimeIfAvailable(ObjectCluster ojc) {
return ojc;
Expand Down Expand Up @@ -3828,21 +3835,24 @@ protected void retrieveBiophysicalCalibrationParametersFromPacket(byte[] bufferC
* @return
*/
protected double unwrapTimeStamp(double timeStampTicks){
//first convert to continuous time stamp
double timestampUnwrappedTicks = calculateTimeStampUnwrapped(timeStampTicks);

//Check if there was a roll-over
if (getLastReceivedTimeStampTicksUnwrapped()>timestampUnwrappedTicks){
mCurrentTimeStampCycle += 1;
//Recalculate timestamp
timestampUnwrappedTicks = calculateTimeStampUnwrapped(timeStampTicks);
}

setLastReceivedTimeStampTicksUnwrapped(timestampUnwrappedTicks);

return timestampUnwrappedTicks;
double expectedTicksPerSample = getRtcClockFreq() / getSamplingRateShimmer();
double candidateUnwrapped = calculateTimeStampUnwrapped(timeStampTicks);
double delta = candidateUnwrapped - getLastReceivedTimeStampTicksUnwrapped();

if (delta < 0) {
boolean looksLikeGenuineWrap = -delta > (mTimeStampTicksMaxValue - (10 * expectedTicksPerSample));
if (looksLikeGenuineWrap) {
mCurrentTimeStampCycle += 1;
candidateUnwrapped = calculateTimeStampUnwrapped(timeStampTicks);
} else {
candidateUnwrapped = getLastReceivedTimeStampTicksUnwrapped() + expectedTicksPerSample;
mCorruptedTimestampSampleCount++;
}
}
setLastReceivedTimeStampTicksUnwrapped(candidateUnwrapped);
return candidateUnwrapped;
}

private double calculateTimeStampUnwrapped(double timeStampTicks) {
return timeStampTicks+(mTimeStampTicksMaxValue*mCurrentTimeStampCycle);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -716,19 +716,28 @@ public void parseConfigMap(
* @return
*/
protected double unwrapTimeStamp(double timeStampTicks){
//first convert to continuous time stamp
double timestampUnwrappedTicks = calculateTimeStampUnwrapped(timeStampTicks);

//Check if there was a roll-over
if (getLastReceivedTimeStampTicksUnwrapped()>timestampUnwrappedTicks){
mCurrentTimeStampCycle += 1;
//Recalculate timestamp
timestampUnwrappedTicks = calculateTimeStampUnwrapped(timeStampTicks);
}

setLastReceivedTimeStampTicksUnwrapped(timestampUnwrappedTicks);
double expectedTicksPerSample = mShimmerDevice.getRtcClockFreq() / mShimmerDevice.getSamplingRateShimmer();
double candidateUnwrapped = calculateTimeStampUnwrapped(timeStampTicks);
double delta = candidateUnwrapped - getLastReceivedTimeStampTicksUnwrapped();

if (delta < 0) {
boolean looksLikeGenuineWrap = -delta > (mTimeStampTicksMaxValue - (10 * expectedTicksPerSample));
if (looksLikeGenuineWrap) {
mCurrentTimeStampCycle += 1;
candidateUnwrapped = calculateTimeStampUnwrapped(timeStampTicks);
} else {
candidateUnwrapped = getLastReceivedTimeStampTicksUnwrapped() + expectedTicksPerSample;
mCorruptedTimestampSampleCount++;
}
}
setLastReceivedTimeStampTicksUnwrapped(candidateUnwrapped);
return candidateUnwrapped;
}

protected int mCorruptedTimestampSampleCount = 0;

return timestampUnwrappedTicks;
public int getCorruptedTimestampSampleCount() {
return mCorruptedTimestampSampleCount;
}

private double calculateTimeStampUnwrapped(double timeStampTicks) {
Expand Down
Loading