diff --git a/accelerometer/java/AccelerometerParser.java b/accelerometer/java/AccelerometerParser.java index e79f9b93..b5a3d921 100644 --- a/accelerometer/java/AccelerometerParser.java +++ b/accelerometer/java/AccelerometerParser.java @@ -215,7 +215,7 @@ public static void main(String[] args) { } else if (accFile.toLowerCase().endsWith(".cwa.gz")) { AxivityReader.readCwaGzEpochs(accFile, timeZone, timeShift, epochWriter, verbose); } else if (accFile.toLowerCase().endsWith(".bin")) { - GENEActivReader.readGeneaEpochs(accFile, epochWriter, verbose); + GENEActivReader.readGeneaEpochs(accFile, timeZone, timeShift, epochWriter, verbose); } else if (accFile.toLowerCase().endsWith(".gt3x")) { ActigraphReader.readG3TXEpochs(accFile, epochWriter, verbose); } else if (accFile.toLowerCase().endsWith(".csv") || diff --git a/accelerometer/java/GENEActivReader.java b/accelerometer/java/GENEActivReader.java index fb992adf..f2e3b6ff 100644 --- a/accelerometer/java/GENEActivReader.java +++ b/accelerometer/java/GENEActivReader.java @@ -16,9 +16,13 @@ public class GENEActivReader extends DeviceReader { */ public static void readGeneaEpochs( String accFile, + String timeZone, + int timeShift, EpochWriter epochWriter, Boolean verbose) { + setTimeSettings(timeZone, timeShift); + int fileHeaderSize = 59; int linesToAxesCalibration = 47; int pageHeaderSize = 9; @@ -54,6 +58,11 @@ public static void readGeneaEpochs( header = readLine(rawAccReader); if (i == 3) { blockTime = LocalDateTime.parse(header.split("Time:")[1], timeFmt); + + if (pageCount == 1) { + setSessionStart(blockTime); + System.out.println("Session start: " + sessionStart); + } } else if (i == 5) { temperature = Double.parseDouble(header.split(":")[1]); } else if (i == 8) { @@ -69,6 +78,7 @@ public static void readGeneaEpochs( dataBlock = readLine(rawAccReader); // raw reading values + long t = 0; // Unix time in millis int hexPosition = 0; int xRaw = 0; int yRaw = 0; @@ -100,7 +110,8 @@ public static void readGeneaEpochs( y = (yRaw * 100.0d - mfrOffset[1]) / mfrGain[1]; z = (zRaw * 100.0d - mfrOffset[2]) / mfrGain[2]; - epochWriter.newValues(getEpochMillis(blockTime), x, y, z, temperature, errCounter); + t = zonedWithDSTCorrection(blockTime).toInstant().toEpochMilli(); + epochWriter.newValues(t, x, y, z, temperature, errCounter); hexPosition += 12; blockTime = blockTime.plusNanos(secs2Nanos(1.0 / sampleFreq)); @@ -166,4 +177,4 @@ private static String readLine(BufferedReader fReader) { } -} \ No newline at end of file +}