diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4a48d2d..0ed6a72 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,68 @@ on: branches: - "master" -jobs: +jobs: + buildlinux: + name: Linux x64 + runs-on: ubuntu-20.04 + + steps: + - name: Prepare Environment + run: | + sudo apt-get install libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-randr0 libxkbcommon-x11-0 + + - name: Prepare Qt Libraries + uses: jurplel/install-qt-action@v3 + + - name: Clone + uses: actions/checkout@v3 + + - name: Compile + run: | + qmake CONFIG+=release PREFIX=/usr SavvyCAN.pro + make -j`grep -c ^processor /proc/cpuinfo` + + - name: Package + run: | + make INSTALL_ROOT=appdir install + wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" + chmod a+x linuxdeployqt-continuous-x86_64.AppImage + ./linuxdeployqt-continuous-x86_64.AppImage appdir/usr/share/applications/SavvyCAN.desktop -appimage -extra-plugins=iconengines,platformthemes/libqgtk3.so,canbus + + - uses: actions/upload-artifact@v4 + with: + name: SavvyCAN-Linux_x64.AppImage + path: SavvyCAN-*x86_64.AppImage + + buildmacos: + name: macOS x64 + runs-on: macos-12 + + steps: + - name: Prepare macOS Environment + run: | + brew install qt5 + brew link qt5 --force + + - name: Clone + uses: actions/checkout@v3 + + - name: Compile + run: | + qmake CONFIG+=release CONFIG+=sdk_no_version_check SavvyCAN.pro + make -j`sysctl kern.aioprocmax | awk '{print $2}'` + + - name: Package + run: | + mkdir -p SavvyCAN.app/Contents/MacOS/help + cp -R help/* SavvyCAN.app/Contents/MacOS/help + macdeployqt SavvyCAN.app -dmg + + - uses: actions/upload-artifact@v4 + with: + name: SavvyCAN-macOS_x64.dmg + path: SavvyCAN.dmg + buildwindows: name: Windows x64 runs-on: windows-2019 @@ -62,7 +123,7 @@ jobs: pre-release: name: "pre-release" runs-on: "ubuntu-latest" - needs: [buildwindows] + needs: [buildwindows, buildmacos, buildlinux] steps: - uses: actions/checkout@v3 @@ -78,5 +139,6 @@ jobs: prerelease: true title: "Development Build" files: | + SavvyCAN-Linux_x64.AppImage/SavvyCAN-*x86_64.AppImage SavvyCAN-Windows_x64_CIBuild.zip - + SavvyCAN-macOS_x64.dmg/SavvyCAN.dmg diff --git a/connections/canconmanager.cpp b/connections/canconmanager.cpp index f31e70a..9ac931f 100644 --- a/connections/canconmanager.cpp +++ b/connections/canconmanager.cpp @@ -222,7 +222,7 @@ bool CANConManager::sendFrame(const CANFrame& pFrame) workingFrame.isReceived = false; if (useSystemTime) { - workingFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch())); + workingFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul)); } else { diff --git a/connections/canserver.cpp b/connections/canserver.cpp index a8ad145..22daf59 100644 --- a/connections/canserver.cpp +++ b/connections/canserver.cpp @@ -214,7 +214,7 @@ void CANserver::readNetworkData() frame_p->setFrameType(QCanBusFrame::DataFrame); 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)); diff --git a/connections/gvretserial.cpp b/connections/gvretserial.cpp index 1b3dbc7..72eb637 100644 --- a/connections/gvretserial.cpp +++ b/connections/gvretserial.cpp @@ -685,7 +685,7 @@ void GVRetSerial::procRXChar(unsigned char c) buildTimestamp += timeBasis; if (useSystemTime) { - buildFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch())); + buildFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul)); } else { buildFrame.setTimeStamp(QCanBusFrame::TimeStamp(0, buildTimestamp)); } @@ -771,7 +771,7 @@ void GVRetSerial::procRXChar(unsigned char c) buildTimestamp += timeBasis; if (useSystemTime) { - buildFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch())); + buildFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul)); } else { buildFrame.setTimeStamp(QCanBusFrame::TimeStamp(0, buildTimestamp)); } diff --git a/connections/lawicel_serial.cpp b/connections/lawicel_serial.cpp index 37a078d..e45067d 100644 --- a/connections/lawicel_serial.cpp +++ b/connections/lawicel_serial.cpp @@ -493,7 +493,7 @@ void LAWICELSerial::readSerialData() if (useSystemTime) { - buildFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch())); + buildFrame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul)); } else { @@ -502,13 +502,13 @@ void LAWICELSerial::readSerialData() { //Four bytes after the end of the data bytes. buildTimestamp = mBuildLine.mid(5 + mBuildLine.mid(4, 1).toInt() * 2, 4).toInt(nullptr, 16) * 1000l; + buildFrame.setTimeStamp(QCanBusFrame::TimeStamp(0, buildTimestamp)); } else { //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()) diff --git a/connections/mqtt_bus.cpp b/connections/mqtt_bus.cpp index 86da138..a2e5b66 100644 --- a/connections/mqtt_bus.cpp +++ b/connections/mqtt_bus.cpp @@ -302,7 +302,7 @@ void MQTT_BUS::clientMessageReceived(const QMQTT::Message& message) frame_p->isReceived = true; if (useSystemTime) { - frame_p->setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch())); + frame_p->setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul)); } else frame_p->setTimeStamp(QCanBusFrame::TimeStamp(0, timeStamp)); diff --git a/connections/serialbusconnection.cpp b/connections/serialbusconnection.cpp index ad21817..4a17e3f 100644 --- a/connections/serialbusconnection.cpp +++ b/connections/serialbusconnection.cpp @@ -211,7 +211,7 @@ void SerialBusConnection::framesReceived() frame_p->isReceived = !recFrame.hasLocalEcho(); if (useSystemTime) { - frame_p->setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch())); + frame_p->setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(QDateTime::currentMSecsSinceEpoch() * 1000ul)); } else frame_p->setTimeStamp(QCanBusFrame::TimeStamp(0, (recFrame.timeStamp().seconds() * 1000000ul + recFrame.timeStamp().microSeconds()) - timeBasis));