From ceb14883102e52daff611077adfe1b63837c3a76 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Fri, 20 Jan 2017 12:13:43 +0100 Subject: EDI input: decode timestamps --- src/EtiReader.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/EtiReader.cpp') diff --git a/src/EtiReader.cpp b/src/EtiReader.cpp index de23142..0b27126 100644 --- a/src/EtiReader.cpp +++ b/src/EtiReader.cpp @@ -291,6 +291,11 @@ bool EtiReader::sourceContainsTimestamp() /* See ETS 300 799, Annex C.2.2 */ } +void EtiReader::calculateTimestamp(struct frame_timestamp& ts) +{ + myTimestampDecoder.calculateTimestamp(ts); +} + uint32_t EtiReader::getPPSOffset() { if (!sourceContainsTimestamp()) { @@ -357,6 +362,7 @@ bool EdiReader::sourceContainsTimestamp() void EdiReader::calculateTimestamp(struct frame_timestamp& ts) { + m_timestamp_decoder.calculateTimestamp(ts); } bool EdiReader::isFrameReady() @@ -521,8 +527,12 @@ void EdiReader::assemble() /* According to Annex F * EDI = UTC + UTCO * We need UTC = EDI - UTCO + * + * The seconds value is given in number of seconds since + * 1.1.2000 */ - auto utc_ts = m_seconds - m_utco; + const std::time_t posix_timestamp_1_jan_2000 = 946684800; + auto utc_ts = posix_timestamp_1_jan_2000 + m_seconds - m_utco; m_timestamp_decoder.updateTimestampEdi( utc_ts, m_fc.tsta, m_fc.fct()); -- cgit v1.2.3