Merge pull request #909 from anegrin/timestamp-issue

FIX Issues 878 and 834 - usec overflow (using system clock)
This commit is contained in:
Collin Kidder
2025-05-05 18:33:38 -04:00
committed by GitHub
6 changed files with 13 additions and 11 deletions
+1 -1
View File
@@ -222,7 +222,7 @@ bool CANConManager::sendFrame(const CANFrame& pFrame)
workingFrame.isReceived = false; workingFrame.isReceived = false;
if (useSystemTime) if (useSystemTime)
{ {
workingFrame.setTimeStamp(QCanBusFrame::TimeStamp(0,QDateTime::currentMSecsSinceEpoch() * 1000)); workingFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul));
} }
else else
{ {
+1 -1
View File
@@ -214,7 +214,7 @@ void CANserver::readNetworkData()
frame_p->setFrameType(QCanBusFrame::DataFrame); frame_p->setFrameType(QCanBusFrame::DataFrame);
frame_p->isReceived = true; frame_p->isReceived = true;
frame_p->setTimeStamp(QCanBusFrame::TimeStamp(0, QDateTime::currentMSecsSinceEpoch() * 1000ul)); frame_p->setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul));
frame_p->setPayload(datagram.mid(dataByteLocation, length)); frame_p->setPayload(datagram.mid(dataByteLocation, length));
+6 -4
View File
@@ -685,9 +685,10 @@ void GVRetSerial::procRXChar(unsigned char c)
buildTimestamp += timeBasis; buildTimestamp += timeBasis;
if (useSystemTime) if (useSystemTime)
{ {
buildTimestamp = QDateTime::currentMSecsSinceEpoch() * 1000l; buildFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul));
} } else {
buildFrame.setTimeStamp(QCanBusFrame::TimeStamp(0, buildTimestamp)); buildFrame.setTimeStamp(QCanBusFrame::TimeStamp(0, buildTimestamp));
}
break; break;
case 4: case 4:
buildId = c; buildId = c;
@@ -770,9 +771,10 @@ void GVRetSerial::procRXChar(unsigned char c)
buildTimestamp += timeBasis; buildTimestamp += timeBasis;
if (useSystemTime) if (useSystemTime)
{ {
buildTimestamp = QDateTime::currentMSecsSinceEpoch() * 1000l; buildFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul));
} } else {
buildFrame.setTimeStamp(QCanBusFrame::TimeStamp(0, buildTimestamp)); buildFrame.setTimeStamp(QCanBusFrame::TimeStamp(0, buildTimestamp));
}
break; break;
case 4: case 4:
buildId = c; buildId = c;
+3 -3
View File
@@ -493,7 +493,7 @@ void LAWICELSerial::readSerialData()
if (useSystemTime) if (useSystemTime)
{ {
buildTimestamp = QDateTime::currentMSecsSinceEpoch() * 1000l; buildFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul));
} }
else else
{ {
@@ -502,14 +502,14 @@ void LAWICELSerial::readSerialData()
{ {
//Four bytes after the end of the data bytes. //Four bytes after the end of the data bytes.
buildTimestamp = mBuildLine.mid(5 + mBuildLine.mid(4, 1).toInt() * 2, 4).toInt(nullptr, 16) * 1000l; buildTimestamp = mBuildLine.mid(5 + mBuildLine.mid(4, 1).toInt() * 2, 4).toInt(nullptr, 16) * 1000l;
buildFrame.setTimeStamp(QCanBusFrame::TimeStamp(0, buildTimestamp));
} }
else else
{ {
//Default to system time if timestamps are disabled. //Default to system time if timestamps are disabled.
buildTimestamp = QDateTime::currentMSecsSinceEpoch() * 1000l; buildFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul));
} }
} }
buildFrame.setTimeStamp(QCanBusFrame::TimeStamp(0, buildTimestamp));
switch (mBuildLine[0].toLatin1()) switch (mBuildLine[0].toLatin1())
{ {
+1 -1
View File
@@ -302,7 +302,7 @@ void MQTT_BUS::clientMessageReceived(const QMQTT::Message& message)
frame_p->isReceived = true; frame_p->isReceived = true;
if (useSystemTime) if (useSystemTime)
{ {
frame_p->setTimeStamp(QCanBusFrame::TimeStamp(0, QDateTime::currentMSecsSinceEpoch() * 1000ul)); frame_p->setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul));
} }
else frame_p->setTimeStamp(QCanBusFrame::TimeStamp(0, timeStamp)); else frame_p->setTimeStamp(QCanBusFrame::TimeStamp(0, timeStamp));
+1 -1
View File
@@ -211,7 +211,7 @@ void SerialBusConnection::framesReceived()
frame_p->isReceived = !recFrame.hasLocalEcho(); frame_p->isReceived = !recFrame.hasLocalEcho();
if (useSystemTime) { if (useSystemTime) {
frame_p->setTimeStamp(QCanBusFrame::TimeStamp(0, QDateTime::currentMSecsSinceEpoch() * 1000ul)); frame_p->setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul));
} }
else frame_p->setTimeStamp(QCanBusFrame::TimeStamp(0, (recFrame.timeStamp().seconds() * 1000000ul + recFrame.timeStamp().microSeconds()) - timeBasis)); else frame_p->setTimeStamp(QCanBusFrame::TimeStamp(0, (recFrame.timeStamp().seconds() * 1000000ul + recFrame.timeStamp().microSeconds()) - timeBasis));