From 0f98f6c0a9e31fdc9bf4c8d25732b16d74a2e990 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 12 Mar 2023 19:54:25 +0100 Subject: [PATCH 001/332] fix camera resolution that won't fit, and added brightness control for my waveshare 7'QLED screen --- plugins/brightness/x/x.cpp | 11 ++--------- src/app/pages/camera.cpp | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index 2bbb2468..afc3829c 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -11,14 +11,7 @@ X::X() bool X::supported() { - if (this->screen != nullptr) { - // Check that we can execute xrandr - QProcess process(this); - process.start(QString("xrandr --version")); - process.waitForFinished(); - return process.exitCode() == 0; - } - return false; + return true; } uint8_t X::priority() @@ -30,7 +23,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - process.start(QString("xrandr --output %1 --brightness %2").arg(this->screen->name()).arg(brightness / 255.0)); + process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } } diff --git a/src/app/pages/camera.cpp b/src/app/pages/camera.cpp index dd1de836..3b6547c8 100644 --- a/src/app/pages/camera.cpp +++ b/src/app/pages/camera.cpp @@ -582,10 +582,12 @@ void CameraPage::connect_local_stream() qDebug() << "camera status: " << this->local_cam->status(); QSize res = this->choose_video_resolution(); + + qDebug() << "RES=" << res; DASH_LOG(info) << "[CameraPage] Creating GStreamer pipeline with " << this->config->get_cam_local_device().toStdString(); std::string pipeline = "v4l2src device=" + this->config->get_cam_local_device().toStdString() + - " ! capsfilter caps=\"video/x-raw,width=" + std::to_string(res.width()) + ",height=" + std::to_string(res.height()) + ";image/jpeg,width=" + std::to_string(res.width()) + ",height=" + std::to_string(res.height()) + "\"" + + " ! capsfilter caps=\"video/x-raw,width=" + std::to_string(res.width()) + ",height=" + std::to_string(res.height()) + ",colorimetry=bt601;image/jpeg,width=" + std::to_string(res.width()) + ",height=" + std::to_string(res.height()) + "\"" + " ! decodebin"; init_gstreamer_pipeline(pipeline); //emit the connected signal before we resize anything, so that videoContainer has had time to resize to the proper dimensions @@ -646,7 +648,8 @@ QSize CameraPage::choose_video_resolution() QSize window_size = this->size(); QCameraImageCapture imageCapture(this->local_cam); int min_gap = 10000, xgap, ygap; - QSize max_fit; + QSize max_fit, min_fit; + bool first = true; qDebug() << "camera: " << this->local_cam; qDebug() << "resolutions: " << imageCapture.supportedResolutions(); @@ -657,13 +660,21 @@ QSize CameraPage::choose_video_resolution() min_gap = xgap + ygap; max_fit = resolution; } + else{ + if(first){ + first=false; + min_fit=resolution; + } + } } if (max_fit.isValid()) { qDebug() << "Local cam auto resolution" << max_fit << "to fit in" << window_size; this->local_cam_settings.setResolution(max_fit); } else { - qDebug() << "No suitable resolutions found to fit in" << window_size; + qDebug() << "No suitable resolutions found to fit in" << window_size << ". I'll try with the lowest one " << min_fit; + this->local_cam_settings.setResolution(min_fit); + max_fit=min_fit; } if (this->config->get_cam_local_format_override() > 0) { From f5c090f5db6b45a164df0dfd68ef9142a4ab83d7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 12 Mar 2023 20:16:16 +0100 Subject: [PATCH 002/332] fixed camera stream too big and colorimetry setting --- plugins/brightness/x/x.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index afc3829c..2bbb2468 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -11,7 +11,14 @@ X::X() bool X::supported() { - return true; + if (this->screen != nullptr) { + // Check that we can execute xrandr + QProcess process(this); + process.start(QString("xrandr --version")); + process.waitForFinished(); + return process.exitCode() == 0; + } + return false; } uint8_t X::priority() @@ -23,7 +30,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); + process.start(QString("xrandr --output %1 --brightness %2").arg(this->screen->name()).arg(brightness / 255.0)); process.waitForFinished(); } } From e3b7964a54ae371fcceb537a2b734c62d3524da9 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 12 Mar 2023 20:18:33 +0100 Subject: [PATCH 003/332] edit brightness control to work with my waveshare 7' QLED screen --- plugins/brightness/x/x.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index 2bbb2468..afc3829c 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -11,14 +11,7 @@ X::X() bool X::supported() { - if (this->screen != nullptr) { - // Check that we can execute xrandr - QProcess process(this); - process.start(QString("xrandr --version")); - process.waitForFinished(); - return process.exitCode() == 0; - } - return false; + return true; } uint8_t X::priority() @@ -30,7 +23,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - process.start(QString("xrandr --output %1 --brightness %2").arg(this->screen->name()).arg(brightness / 255.0)); + process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } } From bcd393e75c0622638e422d0fd1fc6fbff8d1700a Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 21:21:10 +0200 Subject: [PATCH 004/332] prova qtcpsocket --- src/canbus/socketcanbus.cpp | 79 ++++++++++++++++++++++++++----------- 1 file changed, 57 insertions(+), 22 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 7d59a760..fdb3afe3 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -1,35 +1,57 @@ +#include #include "canbus/socketcanbus.hpp" SocketCANBus::SocketCANBus(QString canInterface) { - if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { + if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) + { DASH_LOG(info) << "[SocketCANBus] 'socketcan' Available"; socketCANAvailable = true; - QString errorString; + /*QString errorString; bus = QCanBus::instance()->createDevice( QStringLiteral("socketcan"), canInterface, &errorString); - if (!bus) { - DASH_LOG(error) <<"[SocketCANBus] Error creating CAN device, " << errorString.toStdString(); - } else { - DASH_LOG(info) <<"[SocketCANBus] Connecting CAN interface "<connectDevice(); connect(bus, &QCanBusDevice::framesReceived, - this, &SocketCANBus::framesAvailable); + this, &SocketCANBus::framesAvailable); + }*/ + + this->socket.connectToHost("127.0.0.1", 7070); + this->socket.waitForConnected(); + + if (this->socket.state() == QAbstractSocket::ConnectedState) + { + DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; } + else + { + DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; + } + } } SocketCANBus::~SocketCANBus() { - DASH_LOG(info) << "[SocketCANBus] Disconnecting and deleting bus"; - if(bus->state() == QCanBusDevice::ConnectedState){ + DASH_LOG(info) << "[SocketCANBus] Disconnessione da Carberry"; + /* if (bus->state() == QCanBusDevice::ConnectedState) + { bus->disconnectDevice(); - } + }*/ + + this->socket.close(); } bool SocketCANBus::writeFrame(QCanBusFrame frame) { - return bus->writeFrame(frame); + //return bus->writeFrame(frame); + this->socket.write(frame.toString()); } SocketCANBus *SocketCANBus::get_instance() @@ -39,9 +61,11 @@ SocketCANBus *SocketCANBus::get_instance() } // QSerialBus readAllFrames introduced in 5.12 - Pi OS is stuck on 5.11, so implement our own -QVector SocketCANBus::readAllFrames(int numFrames){ +/*QVector SocketCANBus::readAllFrames(int numFrames) +{ QVector frames = QVector(); - for(int i = 0; ireadFrame()); } return frames; @@ -50,30 +74,41 @@ QVector SocketCANBus::readAllFrames(int numFrames){ void SocketCANBus::framesAvailable() { int numFrames = bus->framesAvailable(); - if(numFrames>0){ - QVector frames = readAllFrames(numFrames); - for(int i = 0; i 0) + { + QVector frames = readAllFrames(numFrames); + for (int i = 0; i < frames.length(); i++) + { QCanBusFrame frame = frames.at(i); if (callbacks.find(frame.frameId()) != callbacks.end()) { - for(auto callback : callbacks[frame.frameId()]){ + for (auto callback : callbacks[frame.frameId()]) + { callback(frame.payload()); } } } } - -} - +}*/ void SocketCANBus::registerFrameHandler(int id, std::function callback) { + + QStringList list; + while (this->socket.canReadLine()) + { + QString data = QString(this->socket.readLine()); + DASH_LOG(info) << data; + list.append(data); + } + +/* callbacks[id].push_back(callback); QCanBusDevice::Filter filter; filter.frameId = id; filter.frameIdMask = 0xFFF; - filter.format=QCanBusDevice::Filter::MatchBaseAndExtendedFormat; + filter.format = QCanBusDevice::Filter::MatchBaseAndExtendedFormat; filter.type = QCanBusFrame::InvalidFrame; filterList.append(filter); - bus->setConfigurationParameter(QCanBusDevice::RawFilterKey, QVariant::fromValue(filterList)); + bus->setConfigurationParameter(QCanBusDevice::RawFilterKey, QVariant::fromValue(filterList));*/ } From 62f4546a21d76eede6848ff61ff66ef1afdda112 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 21:21:18 +0200 Subject: [PATCH 005/332] a --- include/canbus/socketcanbus.hpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index e8339fbc..6f8a6f3b 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "DashLog.hpp" #include "canbus/ICANBus.hpp" #include "app/config.hpp" @@ -21,14 +22,15 @@ class SocketCANBus : public ICANBus private: bool socketCANAvailable = false; + QTcpSocket socket; QCanBusDevice *bus; std::map>> callbacks; QList filterList; - QVector readAllFrames(int numFrames); + //QVector readAllFrames(int numFrames); - private slots: - void framesAvailable(); + //private slots: + //void framesAvailable(); }; From e1910280ffebcd31cc35b7e320eed83b52d15435 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:25:28 +0200 Subject: [PATCH 006/332] prova --- src/canbus/socketcanbus.cpp | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index fdb3afe3..d08aba3c 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -33,25 +33,25 @@ SocketCANBus::SocketCANBus(QString canInterface) { DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - } } SocketCANBus::~SocketCANBus() { DASH_LOG(info) << "[SocketCANBus] Disconnessione da Carberry"; - /* if (bus->state() == QCanBusDevice::ConnectedState) - { - bus->disconnectDevice(); - }*/ + /* if (bus->state() == QCanBusDevice::ConnectedState) + { + bus->disconnectDevice(); + }*/ this->socket.close(); } bool SocketCANBus::writeFrame(QCanBusFrame frame) { - //return bus->writeFrame(frame); - this->socket.write(frame.toString()); + // return bus->writeFrame(frame); + //this->socket.write(frame.toString()); + return true; } SocketCANBus *SocketCANBus::get_instance() @@ -98,17 +98,18 @@ void SocketCANBus::registerFrameHandler(int id, std::function while (this->socket.canReadLine()) { QString data = QString(this->socket.readLine()); - DASH_LOG(info) << data; + DASH_LOG(info) << data; list.append(data); - } + } -/* - callbacks[id].push_back(callback); - QCanBusDevice::Filter filter; - filter.frameId = id; - filter.frameIdMask = 0xFFF; - filter.format = QCanBusDevice::Filter::MatchBaseAndExtendedFormat; - filter.type = QCanBusFrame::InvalidFrame; - filterList.append(filter); - bus->setConfigurationParameter(QCanBusDevice::RawFilterKey, QVariant::fromValue(filterList));*/ + /* + callbacks[id].push_back(callback); + QCanBusDevice::Filter filter; + filter.frameId = id; + filter.frameIdMask = 0xFFF; + filter.format = QCanBusDevice::Filter::MatchBaseAndExtendedFormat; + filter.type = QCanBusFrame::InvalidFrame; + filterList.append(filter); + bus->setConfigurationParameter(QCanBusDevice::RawFilterKey, QVariant::fromValue(filterList)); + */ } From d03a6deed67a149f7f8ceda67ed0cd1091d2bc9f Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:30:09 +0200 Subject: [PATCH 007/332] prova --- include/canbus/socketcanbus.hpp | 2 +- src/canbus/socketcanbus.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 6f8a6f3b..08cc278f 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -25,7 +25,7 @@ class SocketCANBus : public ICANBus QTcpSocket socket; QCanBusDevice *bus; std::map>> callbacks; - QList filterList; + //QList filterList; //QVector readAllFrames(int numFrames); diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index d08aba3c..ee392fea 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -44,7 +44,7 @@ SocketCANBus::~SocketCANBus() bus->disconnectDevice(); }*/ - this->socket.close(); + //this->socket.close(); } bool SocketCANBus::writeFrame(QCanBusFrame frame) @@ -93,7 +93,7 @@ void SocketCANBus::framesAvailable() void SocketCANBus::registerFrameHandler(int id, std::function callback) { - +/* QStringList list; while (this->socket.canReadLine()) { @@ -102,7 +102,7 @@ void SocketCANBus::registerFrameHandler(int id, std::function list.append(data); } - /* + callbacks[id].push_back(callback); QCanBusDevice::Filter filter; filter.frameId = id; From 6a315c4daba78f3dd94dee44d76dda652d2e906a Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:32:33 +0200 Subject: [PATCH 008/332] prova --- src/canbus/socketcanbus.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index ee392fea..2266abf2 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -93,7 +93,7 @@ void SocketCANBus::framesAvailable() void SocketCANBus::registerFrameHandler(int id, std::function callback) { -/* + QStringList list; while (this->socket.canReadLine()) { @@ -102,7 +102,7 @@ void SocketCANBus::registerFrameHandler(int id, std::function list.append(data); } - + /* callbacks[id].push_back(callback); QCanBusDevice::Filter filter; filter.frameId = id; From a6adedffcd8985b21fd9b4890c0b37a934b69b7f Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:34:08 +0200 Subject: [PATCH 009/332] include --- src/canbus/socketcanbus.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 2266abf2..8fba31e0 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include "canbus/socketcanbus.hpp" SocketCANBus::SocketCANBus(QString canInterface) From 5ebe2073906a7a6eff434508e0e51f21a8b3e3de Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:35:40 +0200 Subject: [PATCH 010/332] senza qlist --- src/canbus/socketcanbus.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 8fba31e0..22893d0e 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -1,5 +1,5 @@ #include -#include +//#include #include #include "canbus/socketcanbus.hpp" @@ -96,12 +96,12 @@ void SocketCANBus::framesAvailable() void SocketCANBus::registerFrameHandler(int id, std::function callback) { - QStringList list; + //QStringList list; while (this->socket.canReadLine()) { QString data = QString(this->socket.readLine()); DASH_LOG(info) << data; - list.append(data); + //list.append(data); } /* From 5f6c848ce594323e17fd4be84cfc3f9bd4d80f3f Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:37:07 +0200 Subject: [PATCH 011/332] prova qstring --- src/canbus/socketcanbus.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 22893d0e..b1b56d2d 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -97,12 +97,12 @@ void SocketCANBus::registerFrameHandler(int id, std::function { //QStringList list; - while (this->socket.canReadLine()) - { - QString data = QString(this->socket.readLine()); + //while (this->socket.canReadLine()) + //{ + QString data = "QString(this->socket.readLine())"; DASH_LOG(info) << data; //list.append(data); - } + //} /* callbacks[id].push_back(callback); From 2916a4c29c2ca48fc34380dd54f4fb3707633c76 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:38:10 +0200 Subject: [PATCH 012/332] senza dash_log --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index b1b56d2d..24c5a52a 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -100,7 +100,7 @@ void SocketCANBus::registerFrameHandler(int id, std::function //while (this->socket.canReadLine()) //{ QString data = "QString(this->socket.readLine())"; - DASH_LOG(info) << data; + //DASH_LOG(info) << data; //list.append(data); //} From 45533a0101c7c32f61f49f1da0e1a3bd9da01a03 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:39:37 +0200 Subject: [PATCH 013/332] prova --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 24c5a52a..14451a97 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -100,7 +100,7 @@ void SocketCANBus::registerFrameHandler(int id, std::function //while (this->socket.canReadLine()) //{ QString data = "QString(this->socket.readLine())"; - //DASH_LOG(info) << data; + DASH_LOG(info) << "data"; //list.append(data); //} From 035a4c1578b002e6b5ae4c8854aa32cd15ef52a9 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:42:28 +0200 Subject: [PATCH 014/332] a --- src/canbus/socketcanbus.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 14451a97..75be2337 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -46,7 +46,7 @@ SocketCANBus::~SocketCANBus() bus->disconnectDevice(); }*/ - //this->socket.close(); + this->socket.close(); } bool SocketCANBus::writeFrame(QCanBusFrame frame) @@ -96,13 +96,13 @@ void SocketCANBus::framesAvailable() void SocketCANBus::registerFrameHandler(int id, std::function callback) { - //QStringList list; - //while (this->socket.canReadLine()) - //{ - QString data = "QString(this->socket.readLine())"; - DASH_LOG(info) << "data"; - //list.append(data); - //} + QStringList list; + while (this->socket.canReadLine()) + { + QString data = QString(this->socket.readLine()); + DASH_LOG(info) << data.toStdString(); + list.append(data); + } /* callbacks[id].push_back(callback); From ddf110e479815106c2560c9ece446a19b9fa0737 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:48:49 +0200 Subject: [PATCH 015/332] prova writeframe --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 75be2337..4c763ca0 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -52,7 +52,7 @@ SocketCANBus::~SocketCANBus() bool SocketCANBus::writeFrame(QCanBusFrame frame) { // return bus->writeFrame(frame); - //this->socket.write(frame.toString()); + this->socket.write(frame.toString()); return true; } From 277df934a02b03277e8436bf5f0f5d9e1c3007b6 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 22:55:13 +0200 Subject: [PATCH 016/332] a --- src/canbus/socketcanbus.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 4c763ca0..24b77329 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -52,8 +52,8 @@ SocketCANBus::~SocketCANBus() bool SocketCANBus::writeFrame(QCanBusFrame frame) { // return bus->writeFrame(frame); - this->socket.write(frame.toString()); - return true; + if(this->socket.write("p")>0) //maggiore di frame.lenght + return true; } SocketCANBus *SocketCANBus::get_instance() From 8e0ec5dcbafb41885b09620fd8d997131ff58f37 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 23:06:01 +0200 Subject: [PATCH 017/332] aggiunto carberry setup --- src/canbus/socketcanbus.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 24b77329..97742e82 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -1,5 +1,5 @@ #include -//#include +#include #include #include "canbus/socketcanbus.hpp" @@ -29,6 +29,21 @@ SocketCANBus::SocketCANBus(QString canInterface) if (this->socket.state() == QAbstractSocket::ConnectedState) { + QString allineamento = "CAN USER ALIGN RIGHT\r\n"; + this->socket.write(allineamento.toUtf8()); + + QString apertura = "CAN USER OPEN CH1 95K2\r\n"; + this->socket.write(apertura.toUtf8()); + + QString maschera = "CAN USER MASK CH1 0FFF\r\n"; + this->socket.write(maschera.toUtf8()); + + QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; + this->socket.write(filtro0.toUtf8()); + + QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; + this->socket.write(filtro1.toUtf8()); + DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; } else @@ -52,8 +67,9 @@ SocketCANBus::~SocketCANBus() bool SocketCANBus::writeFrame(QCanBusFrame frame) { // return bus->writeFrame(frame); - if(this->socket.write("p")>0) //maggiore di frame.lenght - return true; + if(this->socket.write("p")<0) //maggiore di frame.lenght + return false; + return true; } SocketCANBus *SocketCANBus::get_instance() From f18faf4095272fd42ccc4a76444e040828216f80 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 23:11:08 +0200 Subject: [PATCH 018/332] a --- src/canbus/socketcanbus.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 97742e82..623d6908 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -39,10 +39,10 @@ SocketCANBus::SocketCANBus(QString canInterface) this->socket.write(maschera.toUtf8()); QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; - this->socket.write(filtro0.toUtf8()); + this->socket.write(filtro10.toUtf8()); QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; - this->socket.write(filtro1.toUtf8()); + this->socket.write(filtro11.toUtf8()); DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; } From 9fb3d9e9c2cdfe395c7dbb44f72118c6d6dae8e0 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 6 Apr 2023 23:17:08 +0200 Subject: [PATCH 019/332] a --- src/canbus/socketcanbus.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 623d6908..2f0df436 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -66,9 +66,8 @@ SocketCANBus::~SocketCANBus() bool SocketCANBus::writeFrame(QCanBusFrame frame) { - // return bus->writeFrame(frame); - if(this->socket.write("p")<0) //maggiore di frame.lenght - return false; + //if(this->socket.write("p")<0) //maggiore di frame.lenght + //return false; return true; } From 68053acd9cb9ff5d20854fbca84bd0d07ec68ce8 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 7 Apr 2023 00:33:07 +0200 Subject: [PATCH 020/332] vedem se va obd --- include/app/arbiter.hpp | 2 + include/app/pages/vehicle.hpp | 51 ++++-- include/obd/conversions.hpp | 14 +- src/app/arbiter.cpp | 5 + src/app/pages/vehicle.cpp | 301 ++++++++++------------------------ src/canbus/socketcanbus.cpp | 49 ------ 6 files changed, 134 insertions(+), 288 deletions(-) diff --git a/include/app/arbiter.hpp b/include/app/arbiter.hpp index d76dbdbb..12c079d4 100644 --- a/include/app/arbiter.hpp +++ b/include/app/arbiter.hpp @@ -40,6 +40,7 @@ class Arbiter : public QObject { void set_action(Action *action, QString key); void send_openauto_button_press(aasdk::proto::enums::ButtonCode::Enum buttonCode, openauto::projection::WheelDirection wheelDirection = openauto::projection::WheelDirection::NONE); void send_openauto_full_screen(bool fullscreen = true); + void send_vehicle_data(QString gauge_id, int value); QMainWindow *window() { return this->window_; } QSettings &settings() { return this->session_.settings_; } @@ -70,4 +71,5 @@ class Arbiter : public QObject { void cursor_changed(bool enabled); void action_changed(Action *action, QString key); void openauto_full_screen(bool fullscreen); + void vehicle_update_data(QString gauge_id, int value); }; diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 0401dcc3..ddf1bf50 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -3,20 +3,43 @@ #include #include #include -#include #include "canbus/socketcanbus.hpp" #include "obd/message.hpp" -#include "obd/command.hpp" +#include "obd/conversions.hpp" + #include "app/widgets/selector.hpp" #include "app/widgets/dialog.hpp" - #include "app/pages/page.hpp" class Arbiter; -typedef std::function obd_decoder_t; typedef QPair units_t; +struct font_size_t { + int label; + int value; + int unit; +}; +typedef std::function unit_converter_t; + +struct GaugeConfig { + QString id; + QString description; + units_t units; + font_size_t font_size; + int precision; + unit_converter_t converter; +}; + +// typedef QList Gauges; +struct GaugesConfig { + GaugeConfig LOAD; + GaugeConfig COOLANT_TEMP; + GaugeConfig RPM; + GaugeConfig SPEED; + GaugeConfig INTAKE_TEMP; + GaugeConfig MPG; +}; class Gauge : public QWidget { Q_OBJECT @@ -24,25 +47,22 @@ class Gauge : public QWidget { public: enum Orientation { BOTTOM, RIGHT }; - Gauge(units_t units, QFont value_font, QFont unit_font, Orientation orientation, int rate, - std::vector cmds, int precision, obd_decoder_t decoder, QWidget *parent = nullptr); + Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Orientation orientation, QWidget *parent = nullptr); - inline void start() { this->timer->start(this->rate); } - inline void stop() { this->timer->stop(); } - void can_callback(QByteArray payload); + inline QString get_id() { return this->id; }; + void set_value(int value); private: QString format_value(double value); QString null_value(); QLabel *value_label; - obd_decoder_t decoder; - std::vector cmds; + unit_converter_t converter; + QString id; bool si; - int rate; int precision; - QTimer *timer; + units_t units; signals: void toggle_unit(bool si); @@ -67,7 +87,6 @@ class VehiclePage : public QTabWidget, public Page { QMap plugins; QStringList can_devices; QStringList serial_devices; - QMap paired_bt_devices; QPluginLoader *active_plugin; Selector *plugin_selector; Config *config; @@ -84,9 +103,7 @@ class DataTab : public QWidget { QWidget *speedo_tach_widget(); // QWidget *mileage_data_widget(); QWidget *engine_data_widget(); - QWidget *coolant_temp_widget(); - QWidget *engine_load_widget(); + QWidget *vehicle_data_widget(GaugeConfig cfg); std::vector gauges; }; - diff --git a/include/obd/conversions.hpp b/include/obd/conversions.hpp index 82d13f5f..617a426c 100644 --- a/include/obd/conversions.hpp +++ b/include/obd/conversions.hpp @@ -1,9 +1,15 @@ #pragma once -double kph_to_mph(double val) { return val * 0.621371; } +class Conversion +{ +public: + static double kph_to_mph(double val) { return val * 0.621371; }; -double c_to_f(double val) { return (val * 9 / 5) + 32; } + static double c_to_f(double val) { return (val * 9 / 5) + 32; }; -double gps_to_gph(double val) { return val * 0.0805; } + static double gps_to_gph(double val) { return val * 0.0805; }; -double gps_to_lph(double val) { return val * 3.6; } + static double gps_to_lph(double val) { return val * 3.6; }; + + static double l100km_to_mpg(double val) { return (val == 0 ? 0 : (235.214583 / val)); }; +}; \ No newline at end of file diff --git a/src/app/arbiter.cpp b/src/app/arbiter.cpp index da16eb98..ec01d2d3 100644 --- a/src/app/arbiter.cpp +++ b/src/app/arbiter.cpp @@ -200,3 +200,8 @@ void Arbiter::send_openauto_full_screen(bool fullscreen) { emit openauto_full_screen(fullscreen); } + +void Arbiter::send_vehicle_data(QString gauge_id, int value) +{ + emit vehicle_update_data(gauge_id, value); +} \ No newline at end of file diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 1193568e..9e9689f1 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -4,45 +4,43 @@ #include "app/config.hpp" #include "app/pages/vehicle.hpp" #include "app/window.hpp" -#include "obd/conversions.hpp" #include "canbus/elm327.hpp" #include "plugins/vehicle_plugin.hpp" -Gauge::Gauge(units_t units, QFont value_font, QFont unit_font, Gauge::Orientation orientation, int rate, - std::vector cmds, int precision, obd_decoder_t decoder, QWidget *parent) +GaugesConfig gauges_cfg = +{ + {"load", "Calculated Engine Load", {"%", "%"}, + {10, 16, 12}, 1, [](double x, bool _) { return x; } + }, + {"coolant_temp", "Engine Coolant Temperature", {"°F", "°C"}, + {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } + }, + {"rpm", "Engine Revolutions Per Minute (RPM)", {"x1000rpm", "x1000rpm"}, + {0, 24, 12}, 1, [](double x, bool _) { return x / 1000.0; } + }, + {"speed", "Vehicle Speed", {"mph", "km/h"}, + {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } + }, + {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, + {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } + }, + {"mpg", "Petrol consumption", {"mpg", "l/100km"}, + {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::l100km_to_mpg(x); } + } +}; + +Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) : QWidget(parent) { Config *config = Config::get_instance(); - ICANBus *bus; - switch(config->get_vehicle_can_bus()){ - //ELM327 USB - case ICANBus::VehicleBusType::ELM327USB: - bus = (ICANBus *)elm327::get_usb_instance(); - break; - //ELM327 Bluetooth - case ICANBus::VehicleBusType::ELM327BT: - bus = (ICANBus *)elm327::get_bt_instance(); - break; - //SocketCAN - case ICANBus::VehicleBusType::SocketCAN: - default: - bus = (ICANBus *)SocketCANBus::get_instance(); - break; - } - - using namespace std::placeholders; - std::function callback = std::bind(&Gauge::can_callback, this, std::placeholders::_1); - - bus->registerFrameHandler(cmds[0].frame.frameId()+0x9, callback); - DASH_LOG(info)<<"[Gauges] Registered frame handler for id "<<(cmds[0].frame.frameId()+0x9); + this->id = cfg.id; this->si = config->get_si_units(); - this->rate = rate; - this->precision = precision; + this->precision = cfg.precision; - this->cmds = cmds; - this->decoder = decoder; + this->units = cfg.units; + this->converter = cfg.converter; QBoxLayout *layout; if (orientation == BOTTOM) @@ -54,20 +52,13 @@ Gauge::Gauge(units_t units, QFont value_font, QFont unit_font, Gauge::Orientatio value_label->setFont(value_font); value_label->setAlignment(Qt::AlignCenter); - QLabel *unit_label = new QLabel(this->si ? units.second : units.first, this); + QLabel *unit_label = new QLabel(this->si ? this->units.second : this->units.first, this); unit_label->setFont(unit_font); unit_label->setAlignment(Qt::AlignCenter); - this->timer = new QTimer(this); - connect(this->timer, &QTimer::timeout, [this, bus, cmds]() { - for (auto cmd : cmds) { - bus->writeFrame(cmd.frame); - } - }); - - connect(config, &Config::si_units_changed, [this, units, unit_label](bool si) { + connect(config, &Config::si_units_changed, [this, unit_label](bool si) { this->si = si; - unit_label->setText(this->si ? units.second : units.first); + unit_label->setText(this->si ? this->units.second : this->units.first); value_label->setText(this->null_value()); }); @@ -78,13 +69,9 @@ Gauge::Gauge(units_t units, QFont value_font, QFont unit_font, Gauge::Orientatio layout->addStretch(4); } -void Gauge::can_callback(QByteArray payload){ - Response resp = Response(payload); - for(auto cmd : cmds){ - if(cmd.frame.payload().at(2) == resp.PID){ - value_label->setText(this->format_value(this->decoder(cmd.decoder(resp), this->si))); - } - } +void Gauge::set_value(int value){ + DASH_LOG(debug)<<"[Gauges] set_value: "<setText(this->format_value(this->converter(value, this->si))); } QString Gauge::format_value(double value) @@ -123,15 +110,6 @@ void VehiclePage::init() for (auto port : QSerialPortInfo::availablePorts()) this->serial_devices.append(port.systemLocation()); - connect(&this->arbiter.system().bluetooth, &Bluetooth::init, [this]{ - for (auto device: this->arbiter.system().bluetooth.get_devices()) - { - if(device->isPaired()){ - this->paired_bt_devices.insert(device->name(), device->address()); - } - } - }); - this->get_plugins(); this->active_plugin = new QPluginLoader(this); Dialog *dialog = new Dialog(this->arbiter, true, this->window()); @@ -161,61 +139,14 @@ QWidget *VehiclePage::dialog_body() layout->addWidget(Session::Forge::br(), 1); layout->addWidget(this->can_bus_toggle_row(), 1); - QStringList devices; - switch(config->get_vehicle_can_bus()){ - //ELM327 USB - case ICANBus::VehicleBusType::ELM327USB: - devices = this->serial_devices; - break; - //ELM327 Bluetooth - case ICANBus::VehicleBusType::ELM327BT: - - break; - //SocketCAN - case ICANBus::VehicleBusType::SocketCAN: - default: - devices = this->can_devices; - break; - } - + QStringList devices = this->config->get_vehicle_can_bus() ? this->can_devices : this->serial_devices; Selector *interface_selector = new Selector(devices, this->config->get_vehicle_interface(), this->arbiter.forge().font(14), this->arbiter, widget, "disabled"); - interface_selector->setVisible((this->can_devices.size() > 0) || (this->serial_devices.size() > 0) || (this->paired_bt_devices.size() > 0)); - connect(interface_selector, &Selector::item_changed, [this](QString item){ - if(this->config->get_vehicle_can_bus()==ICANBus::VehicleBusType::ELM327BT && item != QString("disabled")) - { - this->config->set_vehicle_interface(this->paired_bt_devices[item]); - } - else - { - this->config->set_vehicle_interface(item); - } + interface_selector->setVisible((this->can_devices.size() > 0) || (this->serial_devices.size() > 0)); + connect(interface_selector, &Selector::item_changed, [config = this->config](QString item){ + config->set_vehicle_interface(item); }); - connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](int state){ - switch(state){ - //ELM327 USB - case ICANBus::VehicleBusType::ELM327USB: - interface_selector->set_options(this->serial_devices); - break; - //ELM327 Bluetooth - case ICANBus::VehicleBusType::ELM327BT: - interface_selector->set_options(this->paired_bt_devices.keys()); - break; - //SocketCAN - case ICANBus::VehicleBusType::SocketCAN: - default: - interface_selector->set_options(this->can_devices); - break; - } - }); - connect(&this->arbiter.system().bluetooth, &Bluetooth::init, [this, interface_selector]{ - interface_selector->setVisible((this->can_devices.size() > 0) || (this->serial_devices.size() > 0) || (this->paired_bt_devices.size() > 0)); - if(this->config->get_vehicle_can_bus()==ICANBus::VehicleBusType::ELM327BT){ - QString current = this->config->get_vehicle_interface(); - interface_selector->set_options(this->paired_bt_devices.keys()); - if(current != "disabled") - interface_selector->set_current(this->paired_bt_devices.key(current)); - - } + connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state){ + interface_selector->set_options(state ? this->can_devices : this->serial_devices); }); layout->addWidget(interface_selector, 1); @@ -236,33 +167,21 @@ QWidget *VehiclePage::can_bus_toggle_row() QGroupBox *group = new QGroupBox(); QVBoxLayout *group_layout = new QVBoxLayout(group); - ICANBus::VehicleBusType can_bus_selected = this->config->get_vehicle_can_bus(); QRadioButton *socketcan_button = new QRadioButton("SocketCAN", group); - socketcan_button->setChecked(can_bus_selected==ICANBus::VehicleBusType::SocketCAN); + socketcan_button->setChecked(this->config->get_vehicle_can_bus()); socketcan_button->setEnabled(this->can_devices.size() > 0); connect(socketcan_button, &QRadioButton::clicked, [config = this->config]{ - config->set_vehicle_can_bus(ICANBus::VehicleBusType::SocketCAN); + config->set_vehicle_can_bus(true); }); group_layout->addWidget(socketcan_button); - QRadioButton *elm_usb_button = new QRadioButton("ELM327 (USB)", group); - elm_usb_button->setChecked(can_bus_selected==ICANBus::VehicleBusType::ELM327USB); - elm_usb_button->setEnabled(this->serial_devices.size() > 0); - connect(elm_usb_button, &QRadioButton::clicked, [config = this->config]{ - config->set_vehicle_can_bus(ICANBus::VehicleBusType::ELM327USB); - }); - group_layout->addWidget(elm_usb_button); - - QRadioButton *elm_bt_button = new QRadioButton("ELM327 (Bluetooth)", group); - elm_bt_button->setChecked(can_bus_selected==ICANBus::VehicleBusType::ELM327BT); - elm_bt_button->setEnabled(false); - connect(elm_bt_button, &QRadioButton::clicked, [config = this->config]{ - config->set_vehicle_can_bus(ICANBus::VehicleBusType::ELM327BT); - }); - connect(&this->arbiter.system().bluetooth, &Bluetooth::init, [this, elm_bt_button]{ - elm_bt_button->setEnabled(this->paired_bt_devices.size() > 0); + QRadioButton *elm_button = new QRadioButton("ELM327 (USB)", group); + elm_button->setChecked(!this->config->get_vehicle_can_bus()); + elm_button->setEnabled(this->serial_devices.size() > 0); + connect(elm_button, &QRadioButton::clicked, [config = this->config]{ + config->set_vehicle_can_bus(false); }); - group_layout->addWidget(elm_bt_button); + group_layout->addWidget(elm_button); layout->addWidget(group, 1, Qt::AlignHCenter); @@ -305,21 +224,7 @@ void VehiclePage::load_plugin() if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) { plugin->dashize(&this->arbiter); - switch(config->get_vehicle_can_bus()){ - //ELM327 USB - case ICANBus::VehicleBusType::ELM327USB: - plugin->init((ICANBus *)elm327::get_usb_instance()); - break; - //ELM327 Bluetooth - case ICANBus::VehicleBusType::ELM327BT: - plugin->init((ICANBus *)elm327::get_bt_instance()); - break; - //SocketCAN - case ICANBus::VehicleBusType::SocketCAN: - default: - plugin->init((ICANBus *)SocketCANBus::get_instance()); - break; - } + plugin->init((config->get_vehicle_can_bus())?((ICANBus *)SocketCANBus::get_instance()):((ICANBus *)elm327::get_instance())); for (QWidget *tab : plugin->widgets()) this->addTab(tab, tab->objectName()); } @@ -346,8 +251,16 @@ DataTab::DataTab(Arbiter &arbiter, QWidget *parent) QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); sp_right.setHorizontalStretch(2); engine_data->setSizePolicy(sp_right); - for (auto &gauge : this->gauges) - gauge->start(); + + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, int value){ + // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { + if(gauge->get_id() == gauge_id){ + // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); + gauge->set_value(value); + } + } + }); } QWidget *DataTab::speedo_tach_widget() @@ -357,33 +270,9 @@ QWidget *DataTab::speedo_tach_widget() layout->setContentsMargins(0, 0, 0, 0); layout->addStretch(3); - - QFont speed_value_font(this->arbiter.forge().font(36, true)); - - QFont speed_unit_font(this->arbiter.forge().font(16)); - speed_unit_font.setWeight(QFont::Light); - speed_unit_font.setItalic(true); - - Gauge *speed = new Gauge({"mph", "km/h"}, speed_value_font, speed_unit_font, - Gauge::BOTTOM, 100, {cmds.SPEED}, 0, - [](double x, bool si) { return si ? x : kph_to_mph(x); }, widget); - layout->addWidget(speed); - this->gauges.push_back(speed); - + layout->addWidget(this->vehicle_data_widget(gauges_cfg.SPEED)); layout->addStretch(2); - - QFont tach_value_font(this->arbiter.forge().font(24, true)); - - QFont tach_unit_font(this->arbiter.forge().font(12)); - tach_unit_font.setWeight(QFont::Light); - tach_unit_font.setItalic(true); - - Gauge *rpm = new Gauge({"x1000rpm", "x1000rpm"}, tach_value_font, - tach_unit_font, Gauge::BOTTOM, 100, {cmds.RPM}, 1, - [](double x, bool _) { return x / 1000.0; }, widget); - layout->addWidget(rpm); - this->gauges.push_back(rpm); - + layout->addWidget(this->vehicle_data_widget(gauges_cfg.RPM)); layout->addStretch(1); return widget; @@ -409,7 +298,7 @@ QWidget *DataTab::speedo_tach_widget() // unit_font.setItalic(true); // // Gauge *mileage = new Gauge({"mpg", "km/L"}, value_font, unit_font, -// Gauge::BOTTOM, 100, {cmds.SPEED, cmds.MAF}, 1, +// Gauge::BOTTOM, 100, {gauges_cfg.SPEED, gauges_cfg.MAF}, 1, // [](std::vector x, bool si) { // return (si ? x[0] : kph_to_mph(x[0])) / (si ? gps_to_lph(x[1]) : gps_to_gph(x[1])); // }, @@ -428,71 +317,47 @@ QWidget *DataTab::engine_data_widget() layout->setSpacing(0); layout->addStretch(); - layout->addWidget(this->coolant_temp_widget()); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.COOLANT_TEMP)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LOAD)); layout->addStretch(); layout->addWidget(Session::Forge::br()); layout->addStretch(); - layout->addWidget(this->engine_load_widget()); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.MPG)); layout->addStretch(); return widget; } -QWidget *DataTab::coolant_temp_widget() +QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) { QWidget *widget = new QWidget(this); QVBoxLayout *layout = new QVBoxLayout(widget); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - QFont value_font(this->arbiter.forge().font(16, true)); + QFont value_font(this->arbiter.forge().font(cfg.font_size.value, true)); - QFont unit_font(this->arbiter.forge().font(12)); + QFont unit_font(this->arbiter.forge().font(cfg.font_size.unit)); unit_font.setWeight(QFont::Light); unit_font.setItalic(true); - Gauge *coolant_temp = new Gauge( - {"°F", "°C"}, value_font, unit_font, Gauge::RIGHT, 5000, - {cmds.COOLANT_TEMP}, 1, [](double x, bool si) { return si ? x : c_to_f(x); }, widget); - layout->addWidget(coolant_temp); - this->gauges.push_back(coolant_temp); - - QFont label_font(this->arbiter.forge().font(10)); - label_font.setWeight(QFont::Light); - - QLabel *coolant_temp_label = new QLabel("coolant", widget); - coolant_temp_label->setFont(label_font); - coolant_temp_label->setAlignment(Qt::AlignHCenter); - layout->addWidget(coolant_temp_label); - - return widget; -} - -QWidget *DataTab::engine_load_widget() -{ - QWidget *widget = new QWidget(this); - QVBoxLayout *layout = new QVBoxLayout(widget); - layout->setContentsMargins(0, 0, 0, 0); - layout->setSpacing(0); - - QFont value_font(this->arbiter.forge().font(16, true)); + Gauge *gauge = new Gauge(cfg, + value_font, unit_font, Gauge::RIGHT, widget); + layout->addWidget(gauge); + this->gauges.push_back(gauge); - QFont unit_font(this->arbiter.forge().font(12)); - unit_font.setWeight(QFont::Light); - unit_font.setItalic(true); + if (cfg.font_size.label > 0) { + QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); + label_font.setWeight(QFont::Light); - Gauge *engine_load = - new Gauge({"%", "%"}, value_font, unit_font, Gauge::RIGHT, - 500, {cmds.LOAD}, 1, [](double x, bool _) { return x; }, widget); - layout->addWidget(engine_load); - this->gauges.push_back(engine_load); - - QFont label_font(this->arbiter.forge().font(10)); - label_font.setWeight(QFont::Light); + QLabel *gauge_label = new QLabel(cfg.description, widget); + gauge_label->setFont(label_font); + gauge_label->setAlignment(Qt::AlignHCenter); + layout->addWidget(gauge_label); + } - QLabel *engine_load_label = new QLabel("load", widget); - engine_load_label->setFont(label_font); - engine_load_label->setAlignment(Qt::AlignHCenter); - layout->addWidget(engine_load_label); return widget; -} +} \ No newline at end of file diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 2f0df436..6dbff04f 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -9,20 +9,6 @@ SocketCANBus::SocketCANBus(QString canInterface) { DASH_LOG(info) << "[SocketCANBus] 'socketcan' Available"; socketCANAvailable = true; - /*QString errorString; - bus = QCanBus::instance()->createDevice( - QStringLiteral("socketcan"), canInterface, &errorString); - if (!bus) - { - DASH_LOG(error) << "[SocketCANBus] Error creating CAN device, " << errorString.toStdString(); - } - else - { - DASH_LOG(info) << "[SocketCANBus] Connecting CAN interface " << canInterface.toStdString(); - bus->connectDevice(); - connect(bus, &QCanBusDevice::framesReceived, - this, &SocketCANBus::framesAvailable); - }*/ this->socket.connectToHost("127.0.0.1", 7070); this->socket.waitForConnected(); @@ -56,10 +42,6 @@ SocketCANBus::SocketCANBus(QString canInterface) SocketCANBus::~SocketCANBus() { DASH_LOG(info) << "[SocketCANBus] Disconnessione da Carberry"; - /* if (bus->state() == QCanBusDevice::ConnectedState) - { - bus->disconnectDevice(); - }*/ this->socket.close(); } @@ -77,37 +59,6 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -// QSerialBus readAllFrames introduced in 5.12 - Pi OS is stuck on 5.11, so implement our own -/*QVector SocketCANBus::readAllFrames(int numFrames) -{ - QVector frames = QVector(); - for (int i = 0; i < numFrames; i++) - { - frames.append(bus->readFrame()); - } - return frames; -} - -void SocketCANBus::framesAvailable() -{ - int numFrames = bus->framesAvailable(); - if (numFrames > 0) - { - QVector frames = readAllFrames(numFrames); - for (int i = 0; i < frames.length(); i++) - { - QCanBusFrame frame = frames.at(i); - if (callbacks.find(frame.frameId()) != callbacks.end()) - { - for (auto callback : callbacks[frame.frameId()]) - { - callback(frame.payload()); - } - } - } - } -}*/ - void SocketCANBus::registerFrameHandler(int id, std::function callback) { From 22605847f0e25e71992d5e019ed756c1ee421701 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 7 Apr 2023 01:33:06 +0200 Subject: [PATCH 021/332] fix icanbus --- include/app/config.hpp | 11 +++++------ include/obd/command.hpp | 26 ++++++++++++++++---------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/include/app/config.hpp b/include/app/config.hpp index 2c19face..db9d0600 100644 --- a/include/app/config.hpp +++ b/include/app/config.hpp @@ -1,7 +1,6 @@ #pragma once #include "openauto/Configuration/Configuration.hpp" -#include "canbus/ICANBus.hpp" #include #include @@ -64,8 +63,8 @@ class Config : public QObject { emit si_units_changed(this->si_units); } - inline ICANBus::VehicleBusType get_vehicle_can_bus() { return this->vehicle_can_bus; } - inline void set_vehicle_can_bus(ICANBus::VehicleBusType vehicle_can_bus) + inline bool get_vehicle_can_bus() { return this->vehicle_can_bus; } + inline void set_vehicle_can_bus(bool vehicle_can_bus) { this->vehicle_can_bus = vehicle_can_bus; this->settings.setValue("Pages/Vehicle/can_bus", this->vehicle_can_bus); @@ -186,7 +185,7 @@ class Config : public QObject { QString radio_plugin; QString media_home; bool si_units; - ICANBus::VehicleBusType vehicle_can_bus; + bool vehicle_can_bus; QString vehicle_interface; QString vehicle_plugin; QString cam_network_url; @@ -205,6 +204,6 @@ class Config : public QObject { void si_units_changed(bool si_units); void cam_autoconnect_changed(bool enabled); void cam_overlay_changed(bool enabled); - void vehicle_can_bus_changed(ICANBus::VehicleBusType state); + void vehicle_can_bus_changed(bool state); void vehicle_interface_changed(QString interface); -}; +}; \ No newline at end of file diff --git a/include/obd/command.hpp b/include/obd/command.hpp index b0ed59cc..e996945e 100644 --- a/include/obd/command.hpp +++ b/include/obd/command.hpp @@ -2,22 +2,28 @@ #include #include +#include #include #include "obd/message.hpp" +typedef std::function decoder_t; + struct Command { - std::string description; + QString id; QCanBusFrame frame; - std::function decoder; + decoder_t decoder; + QTimer *timer; + int rate; }; -struct Commands { - Command LOAD; - Command COOLANT_TEMP; - Command RPM; - Command SPEED; - Command INTAKE_TEMP; - Command MAF; -}; +typedef QList Commands; +// struct Commands { +// Command LOAD; +// Command COOLANT_TEMP; +// Command RPM; +// Command SPEED; +// Command INTAKE_TEMP; +// Command MAF; +// }; extern Commands cmds; From aa348e434794e2bd45874b6f8dd6efdc4d6aa39c Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 7 Apr 2023 01:50:55 +0200 Subject: [PATCH 022/332] a --- src/app/config.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/app/config.cpp b/src/app/config.cpp index bb9f4a24..e7baeee3 100644 --- a/src/app/config.cpp +++ b/src/app/config.cpp @@ -14,10 +14,7 @@ Config::Config() this->radio_plugin = this->settings.value("Pages/Media/Radio/plugin", "unloader").toString(); this->media_home = this->settings.value("Pages/Media/Local/home", QDir().absolutePath()).toString(); this->si_units = this->settings.value("Pages/Vehicle/si_units", false).toBool(); - // 0 - SocketCAN - // 1 - Elm 327 USB - // 2 - Elm 327 Bluetooth - this->vehicle_can_bus = (ICANBus::VehicleBusType)(this->settings.value("Pages/Vehicle/can_bus", ICANBus::VehicleBusType::SocketCAN).toInt()); + this->vehicle_can_bus = this->settings.value("Pages/Vehicle/can_bus", false).toBool(); this->vehicle_interface = this->settings.value("Pages/Vehicle/interface", "disabled").toString(); this->vehicle_plugin = this->settings.value("Pages/Vehicle/plugin", "unloader").toString(); this->cam_network_url = this->settings.value("Pages/Camera/stream_url", QString()).toString(); From 9a8f42695732c96f20c9695ee1b7a32666917627 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 7 Apr 2023 02:08:49 +0200 Subject: [PATCH 023/332] elm old --- include/canbus/elm327.hpp | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/include/canbus/elm327.hpp b/include/canbus/elm327.hpp index 6a15625b..eebda8cd 100644 --- a/include/canbus/elm327.hpp +++ b/include/canbus/elm327.hpp @@ -2,12 +2,9 @@ #include #include -#include -#include #include #include #include -#include #include #include #include @@ -24,29 +21,23 @@ #include "canbus/ICANBus.hpp" #include "app/config.hpp" -class elm327 : public ICANBus +class elm327 : public QObject, public ICANBus { Q_OBJECT public: - elm327(QString canInterface = "/dev/pts/1", bool bluetooth=false); + elm327(QString canInterface = "/dev/pts/1"); ~elm327(); - static elm327 *get_usb_instance(); - static elm327 *get_bt_instance(); + static elm327 *get_instance(); void registerFrameHandler(int id, std::function callback) override; bool writeFrame(QCanBusFrame frame) override; void connect(QString dev_path, speed_t baudrate); void initialize(); inline bool is_connected() { return this->connected; } - enum OBDType {USB, BT}; - inline OBDType get_adapter_type(){return this->adapterType;} private: bool connected; - OBDType adapterType; - QBluetoothSocket* btSocket; int fd; std::mutex elm_mutex; std::map>> callbacks; - QTimer* bluetooth_watchdog; void connect(std::string dev_path, speed_t baudrate); void handleFrame(QCanBusFrame frame); @@ -56,9 +47,6 @@ class elm327 : public ICANBus bool is_failed_response(std::string str); inline std::string raw_query(std::string cmd) { return (this->_write(cmd) > 0) ? this->_read() : ""; } - public slots: - void btConnected(); - void socketChanged(QBluetoothSocket::SocketState state); }; From 095860cf6eb420a6b46eaa32d9742ced8f83e1f7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 7 Apr 2023 02:18:41 +0200 Subject: [PATCH 024/332] elm cpp bastaa --- src/canbus/elm327.cpp | 93 +++++++------------------------------------ 1 file changed, 15 insertions(+), 78 deletions(-) diff --git a/src/canbus/elm327.cpp b/src/canbus/elm327.cpp index 7f9eed36..1ac58661 100755 --- a/src/canbus/elm327.cpp +++ b/src/canbus/elm327.cpp @@ -1,20 +1,10 @@ #include "canbus/elm327.hpp" -elm327::elm327(QString canInterface, bool bluetooth) +elm327::elm327(QString canInterface) { - DASH_LOG(info)<<"[ElM327] Attempting to connect to elm device: "<adapterType = BT; - btSocket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol); - QObject::connect(btSocket, &QBluetoothSocket::connected, this, &elm327::btConnected); - QObject::connect(btSocket, &QBluetoothSocket::stateChanged, this, &elm327::socketChanged); - btSocket->connectToService(QBluetoothAddress(canInterface), QBluetoothUuid(QString("00001101-0000-1000-8000-00805F9B34FB")), QIODevice::ReadWrite); - bluetooth_watchdog = new QTimer(this); - } - else{ - this->connect(canInterface, B115200); - if (this->connected) this->initialize(); - } + DASH_LOG(info)<<"[ELM327] Connecting elm "<connect(canInterface, B115200); + if (this->connected) this->initialize(); } elm327::~elm327() @@ -25,50 +15,17 @@ elm327::~elm327() this->connected = false; } -elm327 *elm327::get_usb_instance() -{ - static elm327 elm_usb(Config::get_instance()->get_vehicle_interface()); - return &elm_usb; -} - -elm327 *elm327::get_bt_instance() -{ - static elm327 elm_bt(Config::get_instance()->get_vehicle_interface(), true); - return &elm_bt; -} - -void elm327::btConnected() -{ - this->connected=true; - this->initialize(); -} - -void elm327::socketChanged(QBluetoothSocket::SocketState state) +elm327 *elm327::get_instance() { - switch(state){ - case(QBluetoothSocket::UnconnectedState): - DASH_LOG(info)<<"[ElM327][Bluetooth] Unconnected"; - break; - case(QBluetoothSocket::ConnectingState): - DASH_LOG(info)<<"[ElM327][Bluetooth] Connecting"; - break; - case(QBluetoothSocket::ConnectedState): - DASH_LOG(info)<<"[ElM327][Bluetooth] Connected"; - break; - case(QBluetoothSocket::ServiceLookupState): - DASH_LOG(info)<<"[ElM327][Bluetooth] Looking up Services"; - break; - default: - DASH_LOG(info)<<"[ElM327][Bluetooth] Unimplemented"; - } + static elm327 elm(Config::get_instance()->get_vehicle_interface()); + return &elm; } int elm327::_write(std::string str) { str += '\r'; int size; - if ((size = (adapterType==BT)?(::send(btSocket->socketDescriptor(), str.c_str(), str.length(), 0)):(write(this->fd, str.c_str(), str.length()))) < 0) - { + if ((size = write(this->fd, str.c_str(), str.length())) < 0) { DASH_LOG(error) << "[ELM327] failed write" << std::endl; this->connected = false; return 0; @@ -129,7 +86,7 @@ bool elm327::writeFrame(QCanBusFrame frame) //this is an obd message, so we can send it with the elm327 if(frame.frameId() == 0x7df){ - ss << std::hex << std::uppercase << std::setfill('0'); + ss << std::hex << std::setfill('0'); for(int i = 1; i<=frame.payload().at(0); i++){ ss << std::setw(2) << static_cast(frame.payload().at(i)); } @@ -169,6 +126,7 @@ QCanBusFrame elm327::receive() QCanBusFrame *retFrame = new QCanBusFrame(); std::string resp_str = this->_read(); + if (is_failed_response(resp_str)){ retFrame->setFrameType(QCanBusFrame::ErrorFrame); return *retFrame; @@ -212,39 +170,18 @@ std::string elm327::_read() { char buf[1]; std::string str; - - if(adapterType==BT) - bluetooth_watchdog->start(5000); while (true) { - - if (((adapterType==BT)?(::recv(btSocket->socketDescriptor(), (void *) buf, 1, 0)):(read(this->fd, (void *)buf, 1))) != 1) - { - if(adapterType != BT) - { - DASH_LOG(error) << "[ELM327] failed read"; - this->connected = false; - return ""; - } - else - { - if(bluetooth_watchdog->remainingTime() == 0) - { - DASH_LOG(error) << "[ELM327] Bluetooth watchdog expired, disconnecting"; - this->connected = false; - return ""; - } - continue; - } + if (read(this->fd, (void *)buf, 1) != 1) { + DASH_LOG(error) << "[ELM327] failed read"; + this->connected = false; + return ""; } if (buf[0] == '>') break; else str += buf[0]; - // feed watchdog - if(adapterType==BT) - bluetooth_watchdog->start(5000); } return str; -} +} \ No newline at end of file From 8dc0c1636da37c5af873eea0134895f33daba530 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 7 Apr 2023 02:38:46 +0200 Subject: [PATCH 025/332] rm elm --- include/canbus/ICANBus.hpp | 2 +- include/canbus/elm327.hpp | 52 ----------- src/app/pages/vehicle.cpp | 11 +-- src/canbus/elm327.cpp | 187 ------------------------------------- 4 files changed, 2 insertions(+), 250 deletions(-) delete mode 100644 include/canbus/elm327.hpp delete mode 100755 src/canbus/elm327.cpp diff --git a/include/canbus/ICANBus.hpp b/include/canbus/ICANBus.hpp index af617584..023f0943 100644 --- a/include/canbus/ICANBus.hpp +++ b/include/canbus/ICANBus.hpp @@ -8,6 +8,6 @@ class ICANBus : public QObject { public: virtual bool writeFrame(QCanBusFrame frame) = 0; virtual void registerFrameHandler(int id, std::function callback) = 0; - enum VehicleBusType { SocketCAN, ELM327USB, ELM327BT }; + enum VehicleBusType { SocketCAN}; Q_ENUM(VehicleBusType) }; \ No newline at end of file diff --git a/include/canbus/elm327.hpp b/include/canbus/elm327.hpp deleted file mode 100644 index eebda8cd..00000000 --- a/include/canbus/elm327.hpp +++ /dev/null @@ -1,52 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - - -#include "DashLog.hpp" -#include "canbus/ICANBus.hpp" -#include "app/config.hpp" - -class elm327 : public QObject, public ICANBus -{ - Q_OBJECT - public: - elm327(QString canInterface = "/dev/pts/1"); - ~elm327(); - static elm327 *get_instance(); - void registerFrameHandler(int id, std::function callback) override; - bool writeFrame(QCanBusFrame frame) override; - void connect(QString dev_path, speed_t baudrate); - void initialize(); - inline bool is_connected() { return this->connected; } - private: - bool connected; - int fd; - std::mutex elm_mutex; - std::map>> callbacks; - - void connect(std::string dev_path, speed_t baudrate); - void handleFrame(QCanBusFrame frame); - std::string _read(); - QCanBusFrame receive(); - int _write(std::string str); - bool is_failed_response(std::string str); - inline std::string raw_query(std::string cmd) { return (this->_write(cmd) > 0) ? this->_read() : ""; } - - -}; - diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 9e9689f1..ade4783f 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -4,7 +4,6 @@ #include "app/config.hpp" #include "app/pages/vehicle.hpp" #include "app/window.hpp" -#include "canbus/elm327.hpp" #include "plugins/vehicle_plugin.hpp" GaugesConfig gauges_cfg = @@ -175,14 +174,6 @@ QWidget *VehiclePage::can_bus_toggle_row() }); group_layout->addWidget(socketcan_button); - QRadioButton *elm_button = new QRadioButton("ELM327 (USB)", group); - elm_button->setChecked(!this->config->get_vehicle_can_bus()); - elm_button->setEnabled(this->serial_devices.size() > 0); - connect(elm_button, &QRadioButton::clicked, [config = this->config]{ - config->set_vehicle_can_bus(false); - }); - group_layout->addWidget(elm_button); - layout->addWidget(group, 1, Qt::AlignHCenter); return widget; @@ -224,7 +215,7 @@ void VehiclePage::load_plugin() if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) { plugin->dashize(&this->arbiter); - plugin->init((config->get_vehicle_can_bus())?((ICANBus *)SocketCANBus::get_instance()):((ICANBus *)elm327::get_instance())); + plugin->init(((ICANBus *)SocketCANBus::get_instance())); for (QWidget *tab : plugin->widgets()) this->addTab(tab, tab->objectName()); } diff --git a/src/canbus/elm327.cpp b/src/canbus/elm327.cpp deleted file mode 100755 index 1ac58661..00000000 --- a/src/canbus/elm327.cpp +++ /dev/null @@ -1,187 +0,0 @@ -#include "canbus/elm327.hpp" - -elm327::elm327(QString canInterface) -{ - DASH_LOG(info)<<"[ELM327] Connecting elm "<connect(canInterface, B115200); - if (this->connected) this->initialize(); - -} -elm327::~elm327() -{ - this->raw_query("ATZ"); - sleep(1); - close(this->fd); - this->connected = false; -} - -elm327 *elm327::get_instance() -{ - static elm327 elm(Config::get_instance()->get_vehicle_interface()); - return &elm; -} - -int elm327::_write(std::string str) -{ - str += '\r'; - int size; - if ((size = write(this->fd, str.c_str(), str.length())) < 0) { - DASH_LOG(error) << "[ELM327] failed write" << std::endl; - this->connected = false; - return 0; - } - - return size; -} - - -void elm327::connect(QString dev_path, speed_t baudrate) -{ - if (this->connected) return; - - this->fd = open(dev_path.toStdString().c_str(), O_RDWR | O_NOCTTY | O_NDELAY); - if (this->fd == -1) { - this->connected = false; - return; - } - - fcntl(this->fd, F_SETFL, 0); - - struct termios options; - tcgetattr(this->fd, &options); - - options.c_cflag |= (CLOCAL | CREAD); - options.c_lflag &= !(ICANON | ECHO | ECHOE | ISIG); - options.c_oflag &= !(OPOST); - options.c_cc[VMIN] = 0; - options.c_cc[VTIME] = 100; - - tcflush(this->fd, TCIOFLUSH); - tcsetattr(this->fd, TCSANOW, &options); - - cfsetispeed(&options, baudrate); - cfsetospeed(&options, baudrate); - tcsetattr(this->fd, TCSANOW, &options); - tcflush(this->fd, TCIOFLUSH); - - this->connected = true; -} -void elm327::initialize() -{ - DASH_LOG(info)<<"[ELM327] Initializing elm"; - - std::vector cmds = {"ATD", "ATZ", "ATE0", "ATL0", "ATS0", "AT H0", "ATSP0", "0100"}; - for (auto const cmd : cmds) { - this->raw_query(cmd); - usleep(500000); - } -} - - -bool elm327::writeFrame(QCanBusFrame frame) -{ - if(!this->connected) return false; - std::lock_guard guard(this->elm_mutex); - std::stringstream ss; - - //this is an obd message, so we can send it with the elm327 - if(frame.frameId() == 0x7df){ - ss << std::hex << std::setfill('0'); - for(int i = 1; i<=frame.payload().at(0); i++){ - ss << std::setw(2) << static_cast(frame.payload().at(i)); - } - if(this->_write(ss.str())>=0){ - QCanBusFrame retFrame = this->receive(); - if(retFrame.frameType()!=QCanBusFrame::ErrorFrame){ - handleFrame(retFrame); - } - } - else{ - DASH_LOG(error) << "[ELM327] Unable to send command"; - } - - - } - else{ - //not implementing elm327 support to send frames - return false; - } - - return true; -} - -bool elm327::is_failed_response(std::string str) -{ - std::vector failed_msgs = { - "UNABLE TO CONNECT", "BUS INIT...ERROR", "NO DATA", "STOPPED", "ERROR", "?"}; - - for (auto const &msg : failed_msgs) - if (str.find(msg) != std::string::npos) return true; - - return false; -} - -QCanBusFrame elm327::receive() -{ - QCanBusFrame *retFrame = new QCanBusFrame(); - std::string resp_str = this->_read(); - - - if (is_failed_response(resp_str)){ - retFrame->setFrameType(QCanBusFrame::ErrorFrame); - return *retFrame; - } - - std::string searching_phrase = "SEARCHING..."; - std::string::size_type i = resp_str.find(searching_phrase); - if (i != std::string::npos) resp_str.erase(i, searching_phrase.length()); - resp_str.erase( - std::remove_if(resp_str.begin(), resp_str.end(), [](auto const &c) -> bool { return !std::isalnum(c); }), - resp_str.end()); - - retFrame->setFrameId(0x7E8); - QByteArray payload = QByteArray::fromHex("0000000000000000"); - for( uint i=0; i < resp_str.length()/2; i++){ - payload[i+1] = std::stoi(resp_str.substr(2*i, 2), nullptr, 16); - } - payload[0] = resp_str.length()/2; - retFrame->setPayload(payload); - return *retFrame; -} -void elm327::handleFrame(QCanBusFrame frame) -{ - - if (callbacks.find(frame.frameId()) != callbacks.end()) - { - for(auto callback : callbacks[frame.frameId()]){ - callback(frame.payload()); - } - } - -} - - -void elm327::registerFrameHandler(int id, std::function callback) -{ - callbacks[id].push_back(callback); -} - -std::string elm327::_read() -{ - char buf[1]; - std::string str; - - while (true) { - if (read(this->fd, (void *)buf, 1) != 1) { - DASH_LOG(error) << "[ELM327] failed read"; - this->connected = false; - return ""; - } - if (buf[0] == '>') - break; - else - str += buf[0]; - } - - return str; -} \ No newline at end of file From 46e30ac89ed849a09d4906604706f52c28dd456b Mon Sep 17 00:00:00 2001 From: "gioekant@gmail.com" Date: Sun, 9 Apr 2023 15:26:33 +0200 Subject: [PATCH 026/332] prova da android --- src/canbus/socketcanbus.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 6dbff04f..acfc44d0 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -36,6 +36,25 @@ SocketCANBus::SocketCANBus(QString canInterface) { DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } + + while (this->socket.canReadLine()) + { + QString linea = QString(this->socket.readLine()); + DASH_LOG(info) << linea.toStdString(); + QStringList part = linea.split(" "); + QStringList fram = part[1].split("-"); + + if(part.at(0)=="RX1"){ + if(fram.at(0)=="0206"){ + + } + } + if(part.at(0)=="RX2"){ + + } + } + + } } From 9de1b2f86f046c6c7b606e08a4c0b668d1b6245e Mon Sep 17 00:00:00 2001 From: "gioekant@gmail.com" Date: Sun, 9 Apr 2023 15:34:02 +0200 Subject: [PATCH 027/332] da sistemare regex --- src/canbus/socketcanbus.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index acfc44d0..b7ad449f 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -43,6 +43,7 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(info) << linea.toStdString(); QStringList part = linea.split(" "); QStringList fram = part[1].split("-"); + QStringList hexx = fram[1].split(QRegularExpression("[\\s|,]"), QString::SkipEmptyParts); if(part.at(0)=="RX1"){ if(fram.at(0)=="0206"){ From 68d8fd302bd14969b8c46e446093a426ad4ec5c3 Mon Sep 17 00:00:00 2001 From: "gioekant@gmail.com" Date: Fri, 14 Apr 2023 17:07:56 +0200 Subject: [PATCH 028/332] boh da android --- src/canbus/socketcanbus.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index b7ad449f..ea69a5a1 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -1,4 +1,4 @@ -#include +#tiinclude #include #include #include "canbus/socketcanbus.hpp" @@ -43,6 +43,17 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(info) << linea.toStdString(); QStringList part = linea.split(" "); QStringList fram = part[1].split("-"); + + QStringList hexx; + int index = 0; + + for (int i = 0; i < fram[1].length(); i++) { + if(i%2==0){ + hexx[index] = + } + + } + QStringList hexx = fram[1].split(QRegularExpression("[\\s|,]"), QString::SkipEmptyParts); if(part.at(0)=="RX1"){ From 27e2809e64da174d22db8a12c5e74ade842a813a Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 14 Apr 2023 17:37:55 +0200 Subject: [PATCH 029/332] writeframe sistemato --- include/canbus/ICANBus.hpp | 2 +- include/canbus/socketcanbus.hpp | 2 +- src/canbus/socketcanbus.cpp | 39 +++++++++++---------------------- 3 files changed, 15 insertions(+), 28 deletions(-) diff --git a/include/canbus/ICANBus.hpp b/include/canbus/ICANBus.hpp index 023f0943..7521a9ad 100644 --- a/include/canbus/ICANBus.hpp +++ b/include/canbus/ICANBus.hpp @@ -6,7 +6,7 @@ class ICANBus : public QObject { Q_OBJECT public: - virtual bool writeFrame(QCanBusFrame frame) = 0; + virtual bool writeFrame(QString frame) = 0; virtual void registerFrameHandler(int id, std::function callback) = 0; enum VehicleBusType { SocketCAN}; Q_ENUM(VehicleBusType) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 08cc278f..5957f93d 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -18,7 +18,7 @@ class SocketCANBus : public ICANBus ~SocketCANBus(); static SocketCANBus *get_instance(); void registerFrameHandler(int id, std::function callback) override; - bool writeFrame(QCanBusFrame frame) override; + bool writeFrame(QString frame) override; private: bool socketCANAvailable = false; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 6dbff04f..7d9085f0 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,6 +37,16 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } } + + while (this->socket.canReadLine()) + { + QString data = QString(this->socket.readLine()); + DASH_LOG(info) << data.toStdString(); + + QStringList list = data.split(" "); + + if(list[0].compare()) + } } SocketCANBus::~SocketCANBus() @@ -46,10 +56,10 @@ SocketCANBus::~SocketCANBus() this->socket.close(); } -bool SocketCANBus::writeFrame(QCanBusFrame frame) +bool SocketCANBus::writeFrame(QString frame) { - //if(this->socket.write("p")<0) //maggiore di frame.lenght - //return false; + if(this->socket.write(frame.toUtf8())<0) + return false; return true; } @@ -58,26 +68,3 @@ SocketCANBus *SocketCANBus::get_instance() static SocketCANBus bus(Config::get_instance()->get_vehicle_interface()); return &bus; } - -void SocketCANBus::registerFrameHandler(int id, std::function callback) -{ - - QStringList list; - while (this->socket.canReadLine()) - { - QString data = QString(this->socket.readLine()); - DASH_LOG(info) << data.toStdString(); - list.append(data); - } - - /* - callbacks[id].push_back(callback); - QCanBusDevice::Filter filter; - filter.frameId = id; - filter.frameIdMask = 0xFFF; - filter.format = QCanBusDevice::Filter::MatchBaseAndExtendedFormat; - filter.type = QCanBusFrame::InvalidFrame; - filterList.append(filter); - bus->setConfigurationParameter(QCanBusDevice::RawFilterKey, QVariant::fromValue(filterList)); - */ -} From 15fda3138328d5c9c3895047d75fb54e8d43a286 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 14 Apr 2023 17:43:04 +0200 Subject: [PATCH 030/332] fix include --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index c37ceb73..bab9ed25 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -1,4 +1,4 @@ -#tiinclude +#include #include #include #include "canbus/socketcanbus.hpp" From 38f86c17984a0e5ebff5de13dd46714cc8a7f51e Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 15 Apr 2023 02:49:13 +0200 Subject: [PATCH 031/332] fatto --- src/canbus/socketcanbus.cpp | 171 +++++++++++++++++++++++++++--------- 1 file changed, 130 insertions(+), 41 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index bab9ed25..e12ed8e4 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -20,7 +20,7 @@ SocketCANBus::SocketCANBus(QString canInterface) QString apertura = "CAN USER OPEN CH1 95K2\r\n"; this->socket.write(apertura.toUtf8()); - + QString maschera = "CAN USER MASK CH1 0FFF\r\n"; this->socket.write(maschera.toUtf8()); @@ -36,47 +36,136 @@ SocketCANBus::SocketCANBus(QString canInterface) { DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - - while (this->socket.canReadLine()) - { - QString linea = QString(this->socket.readLine()); - DASH_LOG(info) << linea.toStdString(); - QStringList part = linea.split(" "); - QStringList fram = part[1].split("-"); - - QStringList hexx; - int index = 0; - - for (int i = 0; i < fram[1].length(); i++) { - if(i%2==0){ - hexx[index] = - } - - } - - QStringList hexx = fram[1].split(QRegularExpression("[\\s|,]"), QString::SkipEmptyParts); - - if(part.at(0)=="RX1"){ - if(fram.at(0)=="0206"){ - - } - } - if(part.at(0)=="RX2"){ - - } - } - - - } - while (this->socket.canReadLine()) - { - QString data = QString(this->socket.readLine()); - DASH_LOG(info) << data.toStdString(); - - QStringList list = data.split(" "); + int lumws = 10; + + while (this->socket.canReadLine()) + { + QString linea = QString(this->socket.readLine()); + DASH_LOG(info) << linea.toStdString(); + QStringList part = linea.split(" "); + QStringList fram = part[1].split("-"); + + QStringList hexx; + int index = 0; + + for (int i = 0; i < fram[1].length(); i++) + { + if (i % 2 == 0) + { + hexx[index] = fram[1].sliced(i - 2, 2); + index++; + } + } + + // MS-CAN + + if (part.at(0) == "RX1") + { + + // Esempio RX1 0206-008401 - if(list[0].compare()) + if (fram.at(0) == "0206") + { + if (hexx.at(0) == "00") + { + bool ok; + + uint temprem = hexx[2].toUInt(&ok, 16); + + if (ok == true && temprem > 64) + { + if (hexx.at(1) == "81") + DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; + if (hexx.at(1) == "82") + DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; + if (hexx.at(1) == "84") + DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; + if (hexx.at(1) == "91") + DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; + if (hexx.at(1) == "92") + DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; + } + else + { + if (hexx.at(1) == "81") + DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; + if (hexx.at(1) == "82") + DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + if (hexx.at(1) == "84") + DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; + if (hexx.at(1) == "91") + DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; + if (hexx.at(1) == "92") + DASH_LOG(info) << "Pulsante in basso a destra\r\n"; + } + } + if (hexx.at(0) == "08") + { + if (hexx.at(1) == "83") + { + if (hexx.at(2).at(1) == "F") + { + DASH_LOG(info) << "Manopola sinistra SU\r\n"; + } + else + { + DASH_LOG(info) << "Manopola sinistra GIU\r\n"; + } + } + + if (hexx.at(1) == "93") + { + if (hexx.at(2).at(1) == "F") + { + DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; + } + else + { + DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; + } + } + } + } + + // Esempio RX1 0450-460706FF + + if (fram.at(0) == "0450") + { + bool okk; + + uint luminosita_nuova = hexx[3].toUInt(&okk, 16); + int valore_ws = (int)(luminosita_nuova / 25.5); + + if (valore_ws != lumws) + { + /* + char query[73]; // 71 + + sprintf(query, "/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %d", valore_ws); + + if (system(query) == 0) + { + printf("%s\r\n", query); + } + else + { + printf("==== ERRORE LUMINOSITA ====\r\n"); + }*/ + + DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString()<< "\r\n"; + + lumws = valore_ws; + } + } + } + + // HS-CAN + + if (part.at(0) == "RX2") + { + } + } } } @@ -89,7 +178,7 @@ SocketCANBus::~SocketCANBus() bool SocketCANBus::writeFrame(QString frame) { - if(this->socket.write(frame.toUtf8())<0) + if (this->socket.write(frame.toUtf8()) < 0) return false; return true; } From 0b2c51cae43dda9e3e31223a8cf39edca1e66378 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 15 Apr 2023 02:57:02 +0200 Subject: [PATCH 032/332] sto cazzo di qt vecchioooooooooooooooooooooooooo --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index e12ed8e4..fdf500bf 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -53,7 +53,7 @@ SocketCANBus::SocketCANBus(QString canInterface) { if (i % 2 == 0) { - hexx[index] = fram[1].sliced(i - 2, 2); + hexx[index] = fram[1].mid(i - 2, 2); index++; } } From f60fe40d89edecfeee5e9589194a2b79e6efc772 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 15 Apr 2023 02:58:55 +0200 Subject: [PATCH 033/332] tolto rfh --- include/canbus/ICANBus.hpp | 1 - include/canbus/socketcanbus.hpp | 1 - 2 files changed, 2 deletions(-) diff --git a/include/canbus/ICANBus.hpp b/include/canbus/ICANBus.hpp index 7521a9ad..5c6cae29 100644 --- a/include/canbus/ICANBus.hpp +++ b/include/canbus/ICANBus.hpp @@ -7,7 +7,6 @@ class ICANBus : public QObject { Q_OBJECT public: virtual bool writeFrame(QString frame) = 0; - virtual void registerFrameHandler(int id, std::function callback) = 0; enum VehicleBusType { SocketCAN}; Q_ENUM(VehicleBusType) }; \ No newline at end of file diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 5957f93d..d1d60214 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -17,7 +17,6 @@ class SocketCANBus : public ICANBus SocketCANBus(QString canInterface = "can0"); ~SocketCANBus(); static SocketCANBus *get_instance(); - void registerFrameHandler(int id, std::function callback) override; bool writeFrame(QString frame) override; private: From 854d9aa1144602352b3ae58016af872cf4569e87 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 15 Apr 2023 03:09:58 +0200 Subject: [PATCH 034/332] a --- include/canbus/socketcanbus.hpp | 7 ------- plugins/vehicle/test/test.cpp | 2 +- src/canbus/socketcanbus.cpp | 3 +++ 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index d1d60214..bfa41ce2 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -24,12 +24,5 @@ class SocketCANBus : public ICANBus QTcpSocket socket; QCanBusDevice *bus; std::map>> callbacks; - //QList filterList; - - //QVector readAllFrames(int numFrames); - - - //private slots: - //void framesAvailable(); }; diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index af806311..1b4c4dcb 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -142,7 +142,7 @@ bool Test::init(ICANBus*) this->climate->right_temp((rand() % 20) + 60); } }); - timer2->start(1000); + timer2->start(100000); return true; } diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index fdf500bf..7ba80b39 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -41,6 +41,9 @@ SocketCANBus::SocketCANBus(QString canInterface) while (this->socket.canReadLine()) { + + DASH_LOG(info) << "[SocketCANBus] Comincio a leggere i CANBUS"; + QString linea = QString(this->socket.readLine()); DASH_LOG(info) << linea.toStdString(); QStringList part = linea.split(" "); From ba60c208458a648685e2de919bb74fb0f7e7fb65 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 16 Apr 2023 02:53:00 +0200 Subject: [PATCH 035/332] a --- include/canbus/socketcanbus.hpp | 29 ++-- src/canbus/socketcanbus.cpp | 232 ++++++++++++++++---------------- 2 files changed, 136 insertions(+), 125 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index bfa41ce2..02242e48 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -1,11 +1,12 @@ #pragma once -#include +#include #include #include #include #include #include +#include #include "DashLog.hpp" #include "canbus/ICANBus.hpp" #include "app/config.hpp" @@ -13,16 +14,20 @@ class SocketCANBus : public ICANBus { Q_OBJECT - public: - SocketCANBus(QString canInterface = "can0"); - ~SocketCANBus(); - static SocketCANBus *get_instance(); - bool writeFrame(QString frame) override; +public: + SocketCANBus(QString canInterface = "can0"); + ~SocketCANBus(); + static SocketCANBus *get_instance(); + bool writeFrame(QString frame) override; - private: - bool socketCANAvailable = false; - QTcpSocket socket; - QCanBusDevice *bus; - std::map>> callbacks; -}; +private: + bool socketCANAvailable = false; + QTcpSocket socket; + QCanBusDevice *bus; + std::map>> callbacks; + +signals: +public slots: + void readyRead(); +}; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 7ba80b39..b5770246 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,157 +37,163 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - int lumws = 10; + connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); + } +} - while (this->socket.canReadLine()) - { +SocketCANBus::~SocketCANBus() +{ + DASH_LOG(info) << "[SocketCANBus] Disconnessione da Carberry"; + + this->socket.close(); +} + +bool SocketCANBus::writeFrame(QString frame) +{ + if (this->socket.write(frame.toUtf8()) < 0) + return false; + return true; +} + +SocketCANBus *SocketCANBus::get_instance() +{ + static SocketCANBus bus(Config::get_instance()->get_vehicle_interface()); + return &bus; +} + +void SocketCANBus::readyRead() +{ + + int lumws = 10; + + while (this->socket.canReadLine()) + { - DASH_LOG(info) << "[SocketCANBus] Comincio a leggere i CANBUS"; + DASH_LOG(info) << "[SocketCANBus] Comincio a leggere i CANBUS"; - QString linea = QString(this->socket.readLine()); - DASH_LOG(info) << linea.toStdString(); - QStringList part = linea.split(" "); - QStringList fram = part[1].split("-"); + QString linea = QString(this->socket.readLine()); + DASH_LOG(info) << linea.toStdString(); + QStringList part = linea.split(" "); + QStringList fram = part[1].split("-"); - QStringList hexx; - int index = 0; + QStringList hexx; + int index = 0; - for (int i = 0; i < fram[1].length(); i++) + for (int i = 0; i < fram[1].length(); i++) + { + if (i % 2 == 0) { - if (i % 2 == 0) - { - hexx[index] = fram[1].mid(i - 2, 2); - index++; - } + hexx[index] = fram[1].mid(i - 2, 2); + index++; } + } - // MS-CAN + // MS-CAN - if (part.at(0) == "RX1") - { + if (part.at(0) == "RX1") + { - // Esempio RX1 0206-008401 + // Esempio RX1 0206-008401 - if (fram.at(0) == "0206") + if (fram.at(0) == "0206") + { + if (hexx.at(0) == "00") { - if (hexx.at(0) == "00") - { - bool ok; + bool ok; - uint temprem = hexx[2].toUInt(&ok, 16); + uint temprem = hexx[2].toUInt(&ok, 16); - if (ok == true && temprem > 64) + if (ok == true && temprem > 64) + { + if (hexx.at(1) == "81") + DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; + if (hexx.at(1) == "82") + DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; + if (hexx.at(1) == "84") + DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; + if (hexx.at(1) == "91") + DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; + if (hexx.at(1) == "92") + DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; + } + else + { + if (hexx.at(1) == "81") + DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; + if (hexx.at(1) == "82") + DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + if (hexx.at(1) == "84") + DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; + if (hexx.at(1) == "91") + DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; + if (hexx.at(1) == "92") + DASH_LOG(info) << "Pulsante in basso a destra\r\n"; + } + } + if (hexx.at(0) == "08") + { + if (hexx.at(1) == "83") + { + if (hexx.at(2).at(1) == "F") { - if (hexx.at(1) == "81") - DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; - if (hexx.at(1) == "82") - DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; - if (hexx.at(1) == "84") - DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; - if (hexx.at(1) == "91") - DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; - if (hexx.at(1) == "92") - DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; + DASH_LOG(info) << "Manopola sinistra SU\r\n"; } else { - if (hexx.at(1) == "81") - DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - if (hexx.at(1) == "82") - DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; - if (hexx.at(1) == "84") - DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; - if (hexx.at(1) == "91") - DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; - if (hexx.at(1) == "92") - DASH_LOG(info) << "Pulsante in basso a destra\r\n"; + DASH_LOG(info) << "Manopola sinistra GIU\r\n"; } } - if (hexx.at(0) == "08") + + if (hexx.at(1) == "93") { - if (hexx.at(1) == "83") + if (hexx.at(2).at(1) == "F") { - if (hexx.at(2).at(1) == "F") - { - DASH_LOG(info) << "Manopola sinistra SU\r\n"; - } - else - { - DASH_LOG(info) << "Manopola sinistra GIU\r\n"; - } + DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; } - - if (hexx.at(1) == "93") + else { - if (hexx.at(2).at(1) == "F") - { - DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - } - else - { - DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; - } + DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } } } + } - // Esempio RX1 0450-460706FF + // Esempio RX1 0450-460706FF - if (fram.at(0) == "0450") - { - bool okk; + if (fram.at(0) == "0450") + { + bool okk; - uint luminosita_nuova = hexx[3].toUInt(&okk, 16); - int valore_ws = (int)(luminosita_nuova / 25.5); + uint luminosita_nuova = hexx[3].toUInt(&okk, 16); + int valore_ws = (int)(luminosita_nuova / 25.5); - if (valore_ws != lumws) - { - /* - char query[73]; // 71 + if (valore_ws != lumws) + { + /* + char query[73]; // 71 - sprintf(query, "/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %d", valore_ws); + sprintf(query, "/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %d", valore_ws); - if (system(query) == 0) - { - printf("%s\r\n", query); - } - else - { - printf("==== ERRORE LUMINOSITA ====\r\n"); - }*/ + if (system(query) == 0) + { + printf("%s\r\n", query); + } + else + { + printf("==== ERRORE LUMINOSITA ====\r\n"); + }*/ - DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString()<< "\r\n"; + DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; - lumws = valore_ws; - } + lumws = valore_ws; } } + } - // HS-CAN + // HS-CAN - if (part.at(0) == "RX2") - { - } + if (part.at(0) == "RX2") + { } } -} - -SocketCANBus::~SocketCANBus() -{ - DASH_LOG(info) << "[SocketCANBus] Disconnessione da Carberry"; - - this->socket.close(); -} - -bool SocketCANBus::writeFrame(QString frame) -{ - if (this->socket.write(frame.toUtf8()) < 0) - return false; - return true; -} - -SocketCANBus *SocketCANBus::get_instance() -{ - static SocketCANBus bus(Config::get_instance()->get_vehicle_interface()); - return &bus; -} +} \ No newline at end of file From 1a2a55cf053452000839de61842ae2c58ee13450 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 16 Apr 2023 03:02:19 +0200 Subject: [PATCH 036/332] thissocket --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index b5770246..3576be66 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,7 +37,7 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); + connect(this->socket, SIGNAL(readyRead()), this, SLOT(readyRead())); } } From 647349ebadcbc7b4ee161f6374665d6afde01034 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 16 Apr 2023 03:11:54 +0200 Subject: [PATCH 037/332] noabstract --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 02242e48..137b608a 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -6,7 +6,7 @@ #include #include #include -#include +//#include #include "DashLog.hpp" #include "canbus/ICANBus.hpp" #include "app/config.hpp" From 5d672e6956ccfc424133ca3cff1cfa0e89cb59d3 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 16 Apr 2023 03:19:16 +0200 Subject: [PATCH 038/332] prova --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 3576be66..99c478ef 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,7 +37,7 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - connect(this->socket, SIGNAL(readyRead()), this, SLOT(readyRead())); + this->connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); } } From f9a17f9b61e1da9e8743a12a0f29ad64123a5a6e Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 16 Apr 2023 03:21:49 +0200 Subject: [PATCH 039/332] a --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 137b608a..c2172428 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -28,6 +28,6 @@ class SocketCANBus : public ICANBus signals: -public slots: +private slots: void readyRead(); }; From ae2b7071bf6906ccbd934e353458f8907d98e6de Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 13:22:22 +0200 Subject: [PATCH 040/332] senza this --- include/canbus/socketcanbus.hpp | 4 ++-- src/canbus/socketcanbus.cpp | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index c2172428..fc9617a8 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -6,7 +6,7 @@ #include #include #include -//#include +// #include #include "DashLog.hpp" #include "canbus/ICANBus.hpp" #include "app/config.hpp" @@ -24,7 +24,7 @@ class SocketCANBus : public ICANBus bool socketCANAvailable = false; QTcpSocket socket; QCanBusDevice *bus; - std::map>> callbacks; + int lumws = 10; signals: diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 99c478ef..7716a496 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,7 +37,7 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - this->connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); + connect(socket, SIGNAL(readyRead()), SLOT(readyRead())); } } @@ -64,8 +64,6 @@ SocketCANBus *SocketCANBus::get_instance() void SocketCANBus::readyRead() { - int lumws = 10; - while (this->socket.canReadLine()) { From 01e81f431c84f613f9d6f8e3dcb81647dcb4e75f Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 13:35:10 +0200 Subject: [PATCH 041/332] prova --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 7716a496..280af7d4 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,7 +37,7 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - connect(socket, SIGNAL(readyRead()), SLOT(readyRead())); + QObject::connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); } } From b15051ca65ac7e3f8178f985f38831da2c0f0832 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 13:41:24 +0200 Subject: [PATCH 042/332] vediamo --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 280af7d4..deb83c7a 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,7 +37,7 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - QObject::connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); + ::connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); } } From 05697983bfa28dfda5121269f157c3e86abe6a06 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 13:48:44 +0200 Subject: [PATCH 043/332] prova --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index deb83c7a..22132200 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,7 +37,7 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - ::connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); + connect(this->socket, SIGNAL(readyRead()), SLOT(readyRead())); } } From 059608fdb02f8e7be30703599142f354c8ee078c Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 13:51:26 +0200 Subject: [PATCH 044/332] prova --- src/canbus/socketcanbus.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 22132200..91f1228b 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,7 +37,7 @@ SocketCANBus::SocketCANBus(QString canInterface) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - connect(this->socket, SIGNAL(readyRead()), SLOT(readyRead())); + connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); } } @@ -61,7 +61,7 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void SocketCANBus::readyRead() +void readyRead() { while (this->socket.canReadLine()) From f40ae0f1a8b0be6df9ef0b5abc62d01ee11019cf Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 13:59:12 +0200 Subject: [PATCH 045/332] prova --- include/canbus/socketcanbus.hpp | 4 ++-- src/canbus/socketcanbus.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index fc9617a8..2d12efef 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -11,11 +11,11 @@ #include "canbus/ICANBus.hpp" #include "app/config.hpp" -class SocketCANBus : public ICANBus +class SocketCANBus : public ICANBus//, public QObject { Q_OBJECT public: - SocketCANBus(QString canInterface = "can0"); + SocketCANBus(QObject *parent = 0, QString canInterface = "can0"); ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame) override; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 91f1228b..02cea9e0 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -3,7 +3,7 @@ #include #include "canbus/socketcanbus.hpp" -SocketCANBus::SocketCANBus(QString canInterface) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { @@ -61,7 +61,7 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void readyRead() +void SocketCANBus::readyRead() { while (this->socket.canReadLine()) From c1b0c86493096aba34dd415b5a202a047354ee8f Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 14:03:15 +0200 Subject: [PATCH 046/332] provaaaaaaaaaaaaaa --- include/canbus/socketcanbus.hpp | 2 +- src/canbus/socketcanbus.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 2d12efef..abbaa383 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -11,7 +11,7 @@ #include "canbus/ICANBus.hpp" #include "app/config.hpp" -class SocketCANBus : public ICANBus//, public QObject +class SocketCANBus : public ICANBus, public QObject { Q_OBJECT public: diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 02cea9e0..cbc4553e 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -2,6 +2,7 @@ #include #include #include "canbus/socketcanbus.hpp" +#include SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) { From b1575a7e546f8db0888c6bcbd5b693f2c6f44304 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 14:04:44 +0200 Subject: [PATCH 047/332] no abstract --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index cbc4553e..d87e96e3 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -2,7 +2,7 @@ #include #include #include "canbus/socketcanbus.hpp" -#include +//#include SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) { From 4ca5189848ff306bfb80354e42722b9aafa7a8fa Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 14:05:40 +0200 Subject: [PATCH 048/332] no qobject --- include/canbus/socketcanbus.hpp | 2 +- src/canbus/socketcanbus.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index abbaa383..2d12efef 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -11,7 +11,7 @@ #include "canbus/ICANBus.hpp" #include "app/config.hpp" -class SocketCANBus : public ICANBus, public QObject +class SocketCANBus : public ICANBus//, public QObject { Q_OBJECT public: diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index d87e96e3..cbc4553e 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -2,7 +2,7 @@ #include #include #include "canbus/socketcanbus.hpp" -//#include +#include SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) { From 52500ca3193f2184821c5e5d76c07fa51f806eeb Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 14:13:06 +0200 Subject: [PATCH 049/332] vedem --- include/canbus/socketcanbus.hpp | 4 ++-- src/canbus/socketcanbus.cpp | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 2d12efef..bad23c4a 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -11,7 +11,7 @@ #include "canbus/ICANBus.hpp" #include "app/config.hpp" -class SocketCANBus : public ICANBus//, public QObject +class SocketCANBus : public ICANBus { Q_OBJECT public: @@ -29,5 +29,5 @@ class SocketCANBus : public ICANBus//, public QObject signals: private slots: - void readyRead(); + void readFrame(); }; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index cbc4553e..56f3a924 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -4,7 +4,7 @@ #include "canbus/socketcanbus.hpp" #include -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface): QObject(parent), socket(this) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { @@ -38,7 +38,8 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); + //connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } } @@ -62,7 +63,7 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void SocketCANBus::readyRead() +void SocketCANBus::readFrame() { while (this->socket.canReadLine()) From a5186043437d804746726115af9f6bfedbaff463 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 14:27:46 +0200 Subject: [PATCH 050/332] icanbus to qobject --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index bad23c4a..f94921d2 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -11,7 +11,7 @@ #include "canbus/ICANBus.hpp" #include "app/config.hpp" -class SocketCANBus : public ICANBus +class SocketCANBus : public QObject { Q_OBJECT public: From a7a654ead2be74dd81c065a5731db23b4dab80b4 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 14:28:48 +0200 Subject: [PATCH 051/332] tolto override --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index f94921d2..7f074246 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -18,7 +18,7 @@ class SocketCANBus : public QObject SocketCANBus(QObject *parent = 0, QString canInterface = "can0"); ~SocketCANBus(); static SocketCANBus *get_instance(); - bool writeFrame(QString frame) override; + bool writeFrame(QString frame); private: bool socketCANAvailable = false; From 03379d8d847d217eef06e79413673bfd106c2497 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 14:33:27 +0200 Subject: [PATCH 052/332] tolto get instance --- include/canbus/ICANBus.hpp | 1 - include/canbus/socketcanbus.hpp | 3 +- src/canbus/socketcanbus.cpp | 57 ++++++++++++++------------------- 3 files changed, 25 insertions(+), 36 deletions(-) diff --git a/include/canbus/ICANBus.hpp b/include/canbus/ICANBus.hpp index 5c6cae29..65b0ba0d 100644 --- a/include/canbus/ICANBus.hpp +++ b/include/canbus/ICANBus.hpp @@ -6,7 +6,6 @@ class ICANBus : public QObject { Q_OBJECT public: - virtual bool writeFrame(QString frame) = 0; enum VehicleBusType { SocketCAN}; Q_ENUM(VehicleBusType) }; \ No newline at end of file diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 7f074246..1dc41c28 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -6,7 +6,7 @@ #include #include #include -// #include +#include #include "DashLog.hpp" #include "canbus/ICANBus.hpp" #include "app/config.hpp" @@ -17,7 +17,6 @@ class SocketCANBus : public QObject public: SocketCANBus(QObject *parent = 0, QString canInterface = "can0"); ~SocketCANBus(); - static SocketCANBus *get_instance(); bool writeFrame(QString frame); private: diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 56f3a924..a601155e 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -4,43 +4,40 @@ #include "canbus/socketcanbus.hpp" #include -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface): QObject(parent), socket(this) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this) { - if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) - { - DASH_LOG(info) << "[SocketCANBus] 'socketcan' Available"; - socketCANAvailable = true; - this->socket.connectToHost("127.0.0.1", 7070); - this->socket.waitForConnected(); + DASH_LOG(info) << "[SocketCANBus] 'socketcan' Available"; + socketCANAvailable = true; - if (this->socket.state() == QAbstractSocket::ConnectedState) - { - QString allineamento = "CAN USER ALIGN RIGHT\r\n"; - this->socket.write(allineamento.toUtf8()); + this->socket.connectToHost("127.0.0.1", 7070); + this->socket.waitForConnected(); - QString apertura = "CAN USER OPEN CH1 95K2\r\n"; - this->socket.write(apertura.toUtf8()); + if (this->socket.state() == QAbstractSocket::ConnectedState) + { + QString allineamento = "CAN USER ALIGN RIGHT\r\n"; + this->socket.write(allineamento.toUtf8()); - QString maschera = "CAN USER MASK CH1 0FFF\r\n"; - this->socket.write(maschera.toUtf8()); + QString apertura = "CAN USER OPEN CH1 95K2\r\n"; + this->socket.write(apertura.toUtf8()); - QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; - this->socket.write(filtro10.toUtf8()); + QString maschera = "CAN USER MASK CH1 0FFF\r\n"; + this->socket.write(maschera.toUtf8()); - QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; - this->socket.write(filtro11.toUtf8()); + QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; + this->socket.write(filtro10.toUtf8()); - DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; - } - else - { - DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; - } + QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; + this->socket.write(filtro11.toUtf8()); - //connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); + DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; } + else + { + DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; + } + + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } SocketCANBus::~SocketCANBus() @@ -57,12 +54,6 @@ bool SocketCANBus::writeFrame(QString frame) return true; } -SocketCANBus *SocketCANBus::get_instance() -{ - static SocketCANBus bus(Config::get_instance()->get_vehicle_interface()); - return &bus; -} - void SocketCANBus::readFrame() { From 56e33a7656b9682395ee120bdb0e545afcfbd49f Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 14:44:13 +0200 Subject: [PATCH 053/332] a --- src/canbus/socketcanbus.cpp | 57 +++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index a601155e..56f3a924 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -4,40 +4,43 @@ #include "canbus/socketcanbus.hpp" #include -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface): QObject(parent), socket(this) { + if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) + { + DASH_LOG(info) << "[SocketCANBus] 'socketcan' Available"; + socketCANAvailable = true; - DASH_LOG(info) << "[SocketCANBus] 'socketcan' Available"; - socketCANAvailable = true; + this->socket.connectToHost("127.0.0.1", 7070); + this->socket.waitForConnected(); - this->socket.connectToHost("127.0.0.1", 7070); - this->socket.waitForConnected(); + if (this->socket.state() == QAbstractSocket::ConnectedState) + { + QString allineamento = "CAN USER ALIGN RIGHT\r\n"; + this->socket.write(allineamento.toUtf8()); - if (this->socket.state() == QAbstractSocket::ConnectedState) - { - QString allineamento = "CAN USER ALIGN RIGHT\r\n"; - this->socket.write(allineamento.toUtf8()); + QString apertura = "CAN USER OPEN CH1 95K2\r\n"; + this->socket.write(apertura.toUtf8()); - QString apertura = "CAN USER OPEN CH1 95K2\r\n"; - this->socket.write(apertura.toUtf8()); + QString maschera = "CAN USER MASK CH1 0FFF\r\n"; + this->socket.write(maschera.toUtf8()); - QString maschera = "CAN USER MASK CH1 0FFF\r\n"; - this->socket.write(maschera.toUtf8()); + QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; + this->socket.write(filtro10.toUtf8()); - QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; - this->socket.write(filtro10.toUtf8()); + QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; + this->socket.write(filtro11.toUtf8()); - QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; - this->socket.write(filtro11.toUtf8()); + DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; + } + else + { + DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; + } - DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; + //connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } - else - { - DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; - } - - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } SocketCANBus::~SocketCANBus() @@ -54,6 +57,12 @@ bool SocketCANBus::writeFrame(QString frame) return true; } +SocketCANBus *SocketCANBus::get_instance() +{ + static SocketCANBus bus(Config::get_instance()->get_vehicle_interface()); + return &bus; +} + void SocketCANBus::readFrame() { From fd5026af718ea933369606c88d1c3643459597f3 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 14:44:34 +0200 Subject: [PATCH 054/332] refresh --- src/canbus/socketcanbus.cpp | 57 ++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 33 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 56f3a924..a601155e 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -4,43 +4,40 @@ #include "canbus/socketcanbus.hpp" #include -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface): QObject(parent), socket(this) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this) { - if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) - { - DASH_LOG(info) << "[SocketCANBus] 'socketcan' Available"; - socketCANAvailable = true; - this->socket.connectToHost("127.0.0.1", 7070); - this->socket.waitForConnected(); + DASH_LOG(info) << "[SocketCANBus] 'socketcan' Available"; + socketCANAvailable = true; - if (this->socket.state() == QAbstractSocket::ConnectedState) - { - QString allineamento = "CAN USER ALIGN RIGHT\r\n"; - this->socket.write(allineamento.toUtf8()); + this->socket.connectToHost("127.0.0.1", 7070); + this->socket.waitForConnected(); - QString apertura = "CAN USER OPEN CH1 95K2\r\n"; - this->socket.write(apertura.toUtf8()); + if (this->socket.state() == QAbstractSocket::ConnectedState) + { + QString allineamento = "CAN USER ALIGN RIGHT\r\n"; + this->socket.write(allineamento.toUtf8()); - QString maschera = "CAN USER MASK CH1 0FFF\r\n"; - this->socket.write(maschera.toUtf8()); + QString apertura = "CAN USER OPEN CH1 95K2\r\n"; + this->socket.write(apertura.toUtf8()); - QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; - this->socket.write(filtro10.toUtf8()); + QString maschera = "CAN USER MASK CH1 0FFF\r\n"; + this->socket.write(maschera.toUtf8()); - QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; - this->socket.write(filtro11.toUtf8()); + QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; + this->socket.write(filtro10.toUtf8()); - DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; - } - else - { - DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; - } + QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; + this->socket.write(filtro11.toUtf8()); - //connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); + DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; } + else + { + DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; + } + + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } SocketCANBus::~SocketCANBus() @@ -57,12 +54,6 @@ bool SocketCANBus::writeFrame(QString frame) return true; } -SocketCANBus *SocketCANBus::get_instance() -{ - static SocketCANBus bus(Config::get_instance()->get_vehicle_interface()); - return &bus; -} - void SocketCANBus::readFrame() { From b98a840e2bfaade742f70f84a8ff77472fc5a986 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 14:44:37 +0200 Subject: [PATCH 055/332] a --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index ade4783f..33a884f8 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -215,7 +215,7 @@ void VehiclePage::load_plugin() if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) { plugin->dashize(&this->arbiter); - plugin->init(((ICANBus *)SocketCANBus::get_instance())); + //plugin->init(((ICANBus *)SocketCANBus::get_instance())); for (QWidget *tab : plugin->widgets()) this->addTab(tab, tab->objectName()); } From 76b0ff6a24c9001f5cb0cf1f4a7cbf55d4482ef9 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 15:03:43 +0200 Subject: [PATCH 056/332] rimesso get instance --- include/canbus/socketcanbus.hpp | 1 + src/canbus/socketcanbus.cpp | 57 +++++++++++++++++++-------------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 1dc41c28..73ae9883 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -17,6 +17,7 @@ class SocketCANBus : public QObject public: SocketCANBus(QObject *parent = 0, QString canInterface = "can0"); ~SocketCANBus(); + static SocketCANBus *get_instance(); bool writeFrame(QString frame); private: diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index a601155e..56f3a924 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -4,40 +4,43 @@ #include "canbus/socketcanbus.hpp" #include -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface): QObject(parent), socket(this) { + if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) + { + DASH_LOG(info) << "[SocketCANBus] 'socketcan' Available"; + socketCANAvailable = true; - DASH_LOG(info) << "[SocketCANBus] 'socketcan' Available"; - socketCANAvailable = true; + this->socket.connectToHost("127.0.0.1", 7070); + this->socket.waitForConnected(); - this->socket.connectToHost("127.0.0.1", 7070); - this->socket.waitForConnected(); + if (this->socket.state() == QAbstractSocket::ConnectedState) + { + QString allineamento = "CAN USER ALIGN RIGHT\r\n"; + this->socket.write(allineamento.toUtf8()); - if (this->socket.state() == QAbstractSocket::ConnectedState) - { - QString allineamento = "CAN USER ALIGN RIGHT\r\n"; - this->socket.write(allineamento.toUtf8()); + QString apertura = "CAN USER OPEN CH1 95K2\r\n"; + this->socket.write(apertura.toUtf8()); - QString apertura = "CAN USER OPEN CH1 95K2\r\n"; - this->socket.write(apertura.toUtf8()); + QString maschera = "CAN USER MASK CH1 0FFF\r\n"; + this->socket.write(maschera.toUtf8()); - QString maschera = "CAN USER MASK CH1 0FFF\r\n"; - this->socket.write(maschera.toUtf8()); + QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; + this->socket.write(filtro10.toUtf8()); - QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; - this->socket.write(filtro10.toUtf8()); + QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; + this->socket.write(filtro11.toUtf8()); - QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; - this->socket.write(filtro11.toUtf8()); + DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; + } + else + { + DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; + } - DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; + //connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } - else - { - DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; - } - - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } SocketCANBus::~SocketCANBus() @@ -54,6 +57,12 @@ bool SocketCANBus::writeFrame(QString frame) return true; } +SocketCANBus *SocketCANBus::get_instance() +{ + static SocketCANBus bus(Config::get_instance()->get_vehicle_interface()); + return &bus; +} + void SocketCANBus::readFrame() { From b024b64e472496362963f36a629375a4adcd269a Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 15:07:36 +0200 Subject: [PATCH 057/332] prova --- include/canbus/socketcanbus.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 73ae9883..6ce80dea 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -7,11 +7,12 @@ #include #include #include +#include #include "DashLog.hpp" #include "canbus/ICANBus.hpp" #include "app/config.hpp" -class SocketCANBus : public QObject +class SocketCANBus : public ICANBus { Q_OBJECT public: From d099fd89e32c0354cfdf6111cfdf5d2bab2836e0 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:03:12 +0200 Subject: [PATCH 058/332] tolto icanbus --- include/canbus/socketcanbus.hpp | 3 +-- include/plugins/vehicle_plugin.hpp | 2 +- plugins/vehicle/test/test.cpp | 2 +- plugins/vehicle/test/test.hpp | 2 +- src/app/pages/vehicle.cpp | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 6ce80dea..c978d78f 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -9,10 +9,9 @@ #include #include #include "DashLog.hpp" -#include "canbus/ICANBus.hpp" #include "app/config.hpp" -class SocketCANBus : public ICANBus +class SocketCANBus : public QObject { Q_OBJECT public: diff --git a/include/plugins/vehicle_plugin.hpp b/include/plugins/vehicle_plugin.hpp index 91ce03b6..3db45ff0 100644 --- a/include/plugins/vehicle_plugin.hpp +++ b/include/plugins/vehicle_plugin.hpp @@ -7,7 +7,7 @@ class VehiclePlugin : public Plugin { public: VehiclePlugin() { this->settings.beginGroup("Vehicle"); } virtual ~VehiclePlugin() = default; - virtual bool init(ICANBus* canbus) = 0; + virtual bool init(SocketCANBus* canbus) = 0; }; #define VehiclePlugin_iid "openDsh.plugins.VehiclePlugin" diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 1b4c4dcb..cbe9296f 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -19,7 +19,7 @@ QList Test::widgets() return tabs; } -bool Test::init(ICANBus*) +bool Test::init(SocketCANBus*) { if (this->arbiter) { this->vehicle = new Vehicle(*this->arbiter); diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 51495288..dc6a32f8 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -15,7 +15,7 @@ class Test : public QObject, VehiclePlugin { Test() {}; ~Test(); QList widgets() override; - bool init(ICANBus*) override; + bool init(SocketCANBus*) override; private: Climate *climate; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 33a884f8..f06d8ddb 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -215,7 +215,7 @@ void VehiclePage::load_plugin() if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) { plugin->dashize(&this->arbiter); - //plugin->init(((ICANBus *)SocketCANBus::get_instance())); + plugin->init(((SocketCANBus *)SocketCANBus::get_instance())); for (QWidget *tab : plugin->widgets()) this->addTab(tab, tab->objectName()); } From 3c8289195de92db86958e05eb4df7d739f1741e5 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:05:18 +0200 Subject: [PATCH 059/332] a --- include/canbus/socketcanbus.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index c978d78f..5ab2c629 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include "DashLog.hpp" #include "app/config.hpp" From 6ba188b78fe094c666157dcb6446e85dedb9097a Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:10:07 +0200 Subject: [PATCH 060/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 56f3a924..02a27190 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -59,7 +59,7 @@ bool SocketCANBus::writeFrame(QString frame) SocketCANBus *SocketCANBus::get_instance() { - static SocketCANBus bus(Config::get_instance()->get_vehicle_interface()); + static SocketCANBus bus(0, Config::get_instance()->get_vehicle_interface()); return &bus; } From 6c2b7749d907befe5a1053ffc8f1093c2b678723 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:18:55 +0200 Subject: [PATCH 061/332] prova --- src/canbus/socketcanbus.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 02a27190..23ca7ec3 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -66,6 +66,8 @@ SocketCANBus *SocketCANBus::get_instance() void SocketCANBus::readFrame() { +DASH_LOG(info) << "[SocketCANBus] Comincio a leggere i CANBUS"; +/* while (this->socket.canReadLine()) { @@ -169,19 +171,7 @@ void SocketCANBus::readFrame() if (valore_ws != lumws) { - /* - char query[73]; // 71 - - sprintf(query, "/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %d", valore_ws); - - if (system(query) == 0) - { - printf("%s\r\n", query); - } - else - { - printf("==== ERRORE LUMINOSITA ====\r\n"); - }*/ + DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; @@ -196,4 +186,5 @@ void SocketCANBus::readFrame() { } } + */ } \ No newline at end of file From de08f39d0255e796753956532895f756e4e5c094 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:26:31 +0200 Subject: [PATCH 062/332] prova --- src/canbus/socketcanbus.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 23ca7ec3..a5735404 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -38,7 +38,6 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface): QObject(paren DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - //connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } } @@ -63,18 +62,16 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void SocketCANBus::readFrame() +void SocketCANBus::readFrame(), socket(this) { -DASH_LOG(info) << "[SocketCANBus] Comincio a leggere i CANBUS"; -/* while (this->socket.canReadLine()) { - DASH_LOG(info) << "[SocketCANBus] Comincio a leggere i CANBUS"; + DASH_LOG(info) << "[SocketCANBus] CAN-BUS = "; QString linea = QString(this->socket.readLine()); - DASH_LOG(info) << linea.toStdString(); + DASH_LOG(info) << linea.toStdString() << "\n"; QStringList part = linea.split(" "); QStringList fram = part[1].split("-"); @@ -171,7 +168,19 @@ DASH_LOG(info) << "[SocketCANBus] Comincio a leggere i CANBUS"; if (valore_ws != lumws) { - + /* + char query[73]; // 71 + + sprintf(query, "/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %d", valore_ws); + + if (system(query) == 0) + { + printf("%s\r\n", query); + } + else + { + printf("==== ERRORE LUMINOSITA ====\r\n"); + }*/ DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; @@ -186,5 +195,4 @@ DASH_LOG(info) << "[SocketCANBus] Comincio a leggere i CANBUS"; { } } - */ } \ No newline at end of file From c3c319935efcb337f4c14e3c74a19267f373fc85 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:29:58 +0200 Subject: [PATCH 063/332] prova --- src/canbus/socketcanbus.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index a5735404..cd13105e 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -62,15 +62,15 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void SocketCANBus::readFrame(), socket(this) +void SocketCANBus::readFrame() { - while (this->socket.canReadLine()) + while (socket.canReadLine()) { DASH_LOG(info) << "[SocketCANBus] CAN-BUS = "; - QString linea = QString(this->socket.readLine()); + QString linea = QString(socket.readLine()); DASH_LOG(info) << linea.toStdString() << "\n"; QStringList part = linea.split(" "); QStringList fram = part[1].split("-"); From d38a4dbb959c83f575f7f1137af8e59532e03ba9 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:35:34 +0200 Subject: [PATCH 064/332] a --- src/canbus/socketcanbus.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index cd13105e..5530b99a 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -65,12 +65,16 @@ SocketCANBus *SocketCANBus::get_instance() void SocketCANBus::readFrame() { - while (socket.canReadLine()) + DASH_LOG(info) << socket; +QBuffer* buffer = buffers.value(socket); +DASH_LOG(info) << buffer; + + while (this->socket.canReadLine()) { DASH_LOG(info) << "[SocketCANBus] CAN-BUS = "; - QString linea = QString(socket.readLine()); + QString linea = QString(this->socket.readLine()); DASH_LOG(info) << linea.toStdString() << "\n"; QStringList part = linea.split(" "); QStringList fram = part[1].split("-"); From 9ce96294576ca7c85344261aace2695d21a94272 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:37:58 +0200 Subject: [PATCH 065/332] q --- src/canbus/socketcanbus.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 5530b99a..ff1d20af 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -66,8 +66,7 @@ void SocketCANBus::readFrame() { DASH_LOG(info) << socket; -QBuffer* buffer = buffers.value(socket); -DASH_LOG(info) << buffer; + while (this->socket.canReadLine()) { From fd8c6651442d9595cba5625881d063d9a741d0cf Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:39:35 +0200 Subject: [PATCH 066/332] no canreadline --- src/canbus/socketcanbus.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index ff1d20af..aea6d119 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -65,11 +65,8 @@ SocketCANBus *SocketCANBus::get_instance() void SocketCANBus::readFrame() { - DASH_LOG(info) << socket; - - - while (this->socket.canReadLine()) - { + //while (this->socket.canReadLine()) + //{ DASH_LOG(info) << "[SocketCANBus] CAN-BUS = "; @@ -197,5 +194,5 @@ void SocketCANBus::readFrame() if (part.at(0) == "RX2") { } - } + //} } \ No newline at end of file From 4969ab681c8ceb9f139d4b90e93b83fac482cfbc Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:41:28 +0200 Subject: [PATCH 067/332] a --- src/canbus/socketcanbus.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index aea6d119..961b2f83 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -68,10 +68,8 @@ void SocketCANBus::readFrame() //while (this->socket.canReadLine()) //{ - DASH_LOG(info) << "[SocketCANBus] CAN-BUS = "; - QString linea = QString(this->socket.readLine()); - DASH_LOG(info) << linea.toStdString() << "\n"; + DASH_LOG(info) << "[SocketCANBus] CAN-BUS = " << linea.toStdString() << "\n"; QStringList part = linea.split(" "); QStringList fram = part[1].split("-"); From da5a1ee24287678be387ebed68df293936118904 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:43:08 +0200 Subject: [PATCH 068/332] rimetto while --- src/canbus/socketcanbus.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 961b2f83..5e40d895 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -65,8 +65,8 @@ SocketCANBus *SocketCANBus::get_instance() void SocketCANBus::readFrame() { - //while (this->socket.canReadLine()) - //{ + while (this->socket.canReadLine()) + { QString linea = QString(this->socket.readLine()); DASH_LOG(info) << "[SocketCANBus] CAN-BUS = " << linea.toStdString() << "\n"; @@ -192,5 +192,5 @@ void SocketCANBus::readFrame() if (part.at(0) == "RX2") { } - //} + } } \ No newline at end of file From 7776d9dedbe1a36a18e144bd02d9209d75c263e0 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:45:18 +0200 Subject: [PATCH 069/332] dopo --- src/canbus/socketcanbus.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 5e40d895..d1a1bce5 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -73,6 +73,8 @@ void SocketCANBus::readFrame() QStringList part = linea.split(" "); QStringList fram = part[1].split("-"); + DASH_LOG(info) << "DOPO SPLIT"; + QStringList hexx; int index = 0; @@ -85,6 +87,8 @@ void SocketCANBus::readFrame() } } + DASH_LOG(info) << "DOPO HEXX"; + // MS-CAN if (part.at(0) == "RX1") From c31f43764546b48d13e2acd8f14c0d8a3a0c3cc3 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:50:20 +0200 Subject: [PATCH 070/332] prova --- src/canbus/socketcanbus.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index d1a1bce5..d008150e 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -73,8 +73,6 @@ void SocketCANBus::readFrame() QStringList part = linea.split(" "); QStringList fram = part[1].split("-"); - DASH_LOG(info) << "DOPO SPLIT"; - QStringList hexx; int index = 0; @@ -82,13 +80,12 @@ void SocketCANBus::readFrame() { if (i % 2 == 0) { + DASH_LOG(info) << "NUMER" << fram[1].mid(i - 2, 2).toStdString(); hexx[index] = fram[1].mid(i - 2, 2); index++; } } - DASH_LOG(info) << "DOPO HEXX"; - // MS-CAN if (part.at(0) == "RX1") From 9a434ef2882f77822a842e48ce183b365084394d Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:54:39 +0200 Subject: [PATCH 071/332] prova --- src/canbus/socketcanbus.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index d008150e..9948715d 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -80,8 +80,8 @@ void SocketCANBus::readFrame() { if (i % 2 == 0) { - DASH_LOG(info) << "NUMER" << fram[1].mid(i - 2, 2).toStdString(); - hexx[index] = fram[1].mid(i - 2, 2); + DASH_LOG(info) << "NUMER" << fram[1].mid(i - 1, 2).toStdString(); + hexx[index] = fram[1].mid(i - 1, 2); index++; } } From 3f269bb96dcaf144530b0e79fb384ecb7db065cf Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 16:57:33 +0200 Subject: [PATCH 072/332] gghhggh --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 9948715d..f199efa4 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -80,7 +80,7 @@ void SocketCANBus::readFrame() { if (i % 2 == 0) { - DASH_LOG(info) << "NUMER" << fram[1].mid(i - 1, 2).toStdString(); + DASH_LOG(info) << "NUMER" << fram[1].toStdString(); hexx[index] = fram[1].mid(i - 1, 2); index++; } From b95a8a9e1fe490c30200fba65516923933270d05 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 17:06:48 +0200 Subject: [PATCH 073/332] ok --- src/canbus/socketcanbus.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index f199efa4..0f8eb0a3 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -4,7 +4,7 @@ #include "canbus/socketcanbus.hpp" #include -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface): QObject(parent), socket(this) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { @@ -78,12 +78,11 @@ void SocketCANBus::readFrame() for (int i = 0; i < fram[1].length(); i++) { + hexx[index].append(fram.at(1).at(i)); + DASH_LOG(info) << "NUMER" << hexx[index].toStdString(); + if (i % 2 == 0) - { - DASH_LOG(info) << "NUMER" << fram[1].toStdString(); - hexx[index] = fram[1].mid(i - 1, 2); index++; - } } // MS-CAN From e286d8618ce79b3fd1a5ed054c0ffe4f2a700c3b Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 17:15:52 +0200 Subject: [PATCH 074/332] prova --- src/canbus/socketcanbus.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 0f8eb0a3..454d2c05 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -78,11 +78,12 @@ void SocketCANBus::readFrame() for (int i = 0; i < fram[1].length(); i++) { - hexx[index].append(fram.at(1).at(i)); - DASH_LOG(info) << "NUMER" << hexx[index].toStdString(); - - if (i % 2 == 0) + if (i % 2 == 0 && i != 0) index++; + + DASH_LOG(info) << "NUMER" << fram.at(1).at(i).toStdString(); + hexx[index].append(fram.at(1).at(i)); + DASH_LOG(info) << "NUMER" << hexx[index].toStdString(); } // MS-CAN From 6d453e027f85f8d81b1087309edb029ef82f8554 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 17:19:00 +0200 Subject: [PATCH 075/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 454d2c05..41e7cffb 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -81,7 +81,7 @@ void SocketCANBus::readFrame() if (i % 2 == 0 && i != 0) index++; - DASH_LOG(info) << "NUMER" << fram.at(1).at(i).toStdString(); + DASH_LOG(info) << "NUMER" << fram.at(1).at(i); hexx[index].append(fram.at(1).at(i)); DASH_LOG(info) << "NUMER" << hexx[index].toStdString(); } From 93c4d67fd59f00dc509ff43bcf5700c97c8c3245 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 17:33:32 +0200 Subject: [PATCH 076/332] a --- src/canbus/socketcanbus.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 41e7cffb..fdcd9947 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -81,8 +81,7 @@ void SocketCANBus::readFrame() if (i % 2 == 0 && i != 0) index++; - DASH_LOG(info) << "NUMER" << fram.at(1).at(i); - hexx[index].append(fram.at(1).at(i)); + hexx[index].append(fram[1][i]); DASH_LOG(info) << "NUMER" << hexx[index].toStdString(); } From a4d30c9eae3920705e892e89f15a328187507ff8 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 17:46:10 +0200 Subject: [PATCH 077/332] a --- src/canbus/socketcanbus.cpp | 55 +++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index fdcd9947..d34e6670 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -70,68 +70,71 @@ void SocketCANBus::readFrame() QString linea = QString(this->socket.readLine()); DASH_LOG(info) << "[SocketCANBus] CAN-BUS = " << linea.toStdString() << "\n"; - QStringList part = linea.split(" "); - QStringList fram = part[1].split("-"); - QStringList hexx; + QString canbus = linea.split(" ")[0]; + QString id = linea.split(" ")[1].split("-")[0]; + QString data = linea.split(" ")[1].split("-")[1]; + + QStringList dataHex; + int index = 0; - for (int i = 0; i < fram[1].length(); i++) + for (int i = 0; i < data.length(); i++) { if (i % 2 == 0 && i != 0) index++; - hexx[index].append(fram[1][i]); - DASH_LOG(info) << "NUMER" << hexx[index].toStdString(); + dataHex[index].append(data[i]); + DASH_LOG(info) << "NUMER" << dataHex[index].toStdString(); } // MS-CAN - if (part.at(0) == "RX1") + if (canbus == "RX1") { // Esempio RX1 0206-008401 - if (fram.at(0) == "0206") + if (id == "0206") { - if (hexx.at(0) == "00") + if (dataHex.at(0) == "00") { bool ok; - uint temprem = hexx[2].toUInt(&ok, 16); + uint temprem = dataHex[2].toUInt(&ok, 16); if (ok == true && temprem > 64) { - if (hexx.at(1) == "81") + if (dataHex.at(1) == "81") DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; - if (hexx.at(1) == "82") + if (dataHex.at(1) == "82") DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; - if (hexx.at(1) == "84") + if (dataHex.at(1) == "84") DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; - if (hexx.at(1) == "91") + if (dataHex.at(1) == "91") DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; - if (hexx.at(1) == "92") + if (dataHex.at(1) == "92") DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; } else { - if (hexx.at(1) == "81") + if (dataHex.at(1) == "81") DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - if (hexx.at(1) == "82") + if (dataHex.at(1) == "82") DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; - if (hexx.at(1) == "84") + if (dataHex.at(1) == "84") DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; - if (hexx.at(1) == "91") + if (dataHex.at(1) == "91") DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; - if (hexx.at(1) == "92") + if (dataHex.at(1) == "92") DASH_LOG(info) << "Pulsante in basso a destra\r\n"; } } - if (hexx.at(0) == "08") + if (dataHex.at(0) == "08") { - if (hexx.at(1) == "83") + if (dataHex.at(1) == "83") { - if (hexx.at(2).at(1) == "F") + if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola sinistra SU\r\n"; } @@ -141,9 +144,9 @@ void SocketCANBus::readFrame() } } - if (hexx.at(1) == "93") + if (dataHex.at(1) == "93") { - if (hexx.at(2).at(1) == "F") + if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; } @@ -161,7 +164,7 @@ void SocketCANBus::readFrame() { bool okk; - uint luminosita_nuova = hexx[3].toUInt(&okk, 16); + uint luminosita_nuova = dataHex[3].toUInt(&okk, 16); int valore_ws = (int)(luminosita_nuova / 25.5); if (valore_ws != lumws) From 9c30ce4b5a2eb97e726afe58fa7b02d43beba655 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 17:47:43 +0200 Subject: [PATCH 078/332] a --- src/canbus/socketcanbus.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index d34e6670..7f455c88 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -160,7 +160,7 @@ void SocketCANBus::readFrame() // Esempio RX1 0450-460706FF - if (fram.at(0) == "0450") + if (id == "0450") { bool okk; @@ -192,7 +192,7 @@ void SocketCANBus::readFrame() // HS-CAN - if (part.at(0) == "RX2") + if (canbus == "RX2") { } } From 559e1c6648304535683ff622d5a3548dd0228f3d Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 19:32:26 +0200 Subject: [PATCH 079/332] duo --- src/canbus/socketcanbus.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 7f455c88..c3f2a98d 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -78,14 +78,17 @@ void SocketCANBus::readFrame() QStringList dataHex; int index = 0; + QString duo; for (int i = 0; i < data.length(); i++) { - if (i % 2 == 0 && i != 0) - index++; - - dataHex[index].append(data[i]); - DASH_LOG(info) << "NUMER" << dataHex[index].toStdString(); + if (i % 2 == 0 && i != 0){ + dataHex[index] = duo; + index++; + } + + duo.append(data[i]); + DASH_LOG(info) << "DUO = " << duo.toStdString()<< "\n"; } // MS-CAN From 47c9cd0c9855a42cefa6f377b48410bd23e72e72 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 19:37:45 +0200 Subject: [PATCH 080/332] ora funzioni eh --- src/canbus/socketcanbus.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index c3f2a98d..f1863f0a 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -77,16 +77,15 @@ void SocketCANBus::readFrame() QStringList dataHex; - int index = 0; QString duo; for (int i = 0; i < data.length(); i++) { if (i % 2 == 0 && i != 0){ - dataHex[index] = duo; - index++; + dataHex.append(duo); + duo = ""; } - + duo.append(data[i]); DASH_LOG(info) << "DUO = " << duo.toStdString()<< "\n"; } From 48b5876dac338675e47e1e23f36d6a98f36cd2cb Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 19:48:46 +0200 Subject: [PATCH 081/332] funziona tutto, bisogna fare process brightness e scegliere pulsanti --- src/canbus/socketcanbus.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index f1863f0a..e8fc0ec3 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -85,9 +85,7 @@ void SocketCANBus::readFrame() dataHex.append(duo); duo = ""; } - duo.append(data[i]); - DASH_LOG(info) << "DUO = " << duo.toStdString()<< "\n"; } // MS-CAN From d96a2864d4db8ecd19d62ef8fdc2579fd6dee231 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 20:22:03 +0200 Subject: [PATCH 082/332] controllo --- src/canbus/socketcanbus.cpp | 173 +++++++++++++++++++----------------- 1 file changed, 89 insertions(+), 84 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index e8fc0ec3..40b95555 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -75,125 +75,130 @@ void SocketCANBus::readFrame() QString id = linea.split(" ")[1].split("-")[0]; QString data = linea.split(" ")[1].split("-")[1]; - QStringList dataHex; - - QString duo; - - for (int i = 0; i < data.length(); i++) + if (data.length > 1) { - if (i % 2 == 0 && i != 0){ - dataHex.append(duo); - duo = ""; - } - duo.append(data[i]); - } - - // MS-CAN - if (canbus == "RX1") - { + QStringList dataHex; - // Esempio RX1 0206-008401 + QString duo; - if (id == "0206") + for (int i = 0; i < data.length(); i++) { - if (dataHex.at(0) == "00") + if (i % 2 == 0 && i != 0) { - bool ok; + dataHex.append(duo); + duo = ""; + } + duo.append(data[i]); + } - uint temprem = dataHex[2].toUInt(&ok, 16); + // MS-CAN - if (ok == true && temprem > 64) - { - if (dataHex.at(1) == "81") - DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; - if (dataHex.at(1) == "82") - DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; - if (dataHex.at(1) == "84") - DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; - if (dataHex.at(1) == "91") - DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; - if (dataHex.at(1) == "92") - DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; - } - else - { - if (dataHex.at(1) == "81") - DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - if (dataHex.at(1) == "82") - DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; - if (dataHex.at(1) == "84") - DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; - if (dataHex.at(1) == "91") - DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; - if (dataHex.at(1) == "92") - DASH_LOG(info) << "Pulsante in basso a destra\r\n"; - } - } - if (dataHex.at(0) == "08") + if (canbus == "RX1") + { + + // Esempio RX1 0206-008401 + + if (id == "0206") { - if (dataHex.at(1) == "83") + if (dataHex.at(0) == "00") { - if (dataHex.at(2).at(1) == "F") + bool ok; + + uint temprem = dataHex[2].toUInt(&ok, 16); + + if (ok == true && temprem > 64) { - DASH_LOG(info) << "Manopola sinistra SU\r\n"; + if (dataHex.at(1) == "81") + DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; + if (dataHex.at(1) == "82") + DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; + if (dataHex.at(1) == "84") + DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; + if (dataHex.at(1) == "91") + DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; + if (dataHex.at(1) == "92") + DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; } else { - DASH_LOG(info) << "Manopola sinistra GIU\r\n"; + if (dataHex.at(1) == "81") + DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; + if (dataHex.at(1) == "82") + DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + if (dataHex.at(1) == "84") + DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; + if (dataHex.at(1) == "91") + DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; + if (dataHex.at(1) == "92") + DASH_LOG(info) << "Pulsante in basso a destra\r\n"; } } - - if (dataHex.at(1) == "93") + if (dataHex.at(0) == "08") { - if (dataHex.at(2).at(1) == "F") + if (dataHex.at(1) == "83") { - DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; + if (dataHex.at(2).at(1) == "F") + { + DASH_LOG(info) << "Manopola sinistra SU\r\n"; + } + else + { + DASH_LOG(info) << "Manopola sinistra GIU\r\n"; + } } - else + + if (dataHex.at(1) == "93") { - DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; + if (dataHex.at(2).at(1) == "F") + { + DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; + } + else + { + DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; + } } } } - } - - // Esempio RX1 0450-460706FF - - if (id == "0450") - { - bool okk; - uint luminosita_nuova = dataHex[3].toUInt(&okk, 16); - int valore_ws = (int)(luminosita_nuova / 25.5); + // Esempio RX1 0450-460706FF - if (valore_ws != lumws) + if (id == "0450") { - /* - char query[73]; // 71 + bool okk; - sprintf(query, "/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %d", valore_ws); + uint luminosita_nuova = dataHex[3].toUInt(&okk, 16); + int valore_ws = (int)(luminosita_nuova / 25.5); - if (system(query) == 0) - { - printf("%s\r\n", query); - } - else + if (valore_ws != lumws) { - printf("==== ERRORE LUMINOSITA ====\r\n"); - }*/ + /* + char query[73]; // 71 - DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; + sprintf(query, "/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %d", valore_ws); - lumws = valore_ws; + if (system(query) == 0) + { + printf("%s\r\n", query); + } + else + { + printf("==== ERRORE LUMINOSITA ====\r\n"); + }*/ + + DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; + + lumws = valore_ws; + } } } - } - // HS-CAN + // HS-CAN - if (canbus == "RX2") - { + if (canbus == "RX2") + { + } } } } \ No newline at end of file From 96dc66e78dd12c4f68c324ef65012bc1ff2efe6e Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 20:23:05 +0200 Subject: [PATCH 083/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 40b95555..b48edeca 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -75,7 +75,7 @@ void SocketCANBus::readFrame() QString id = linea.split(" ")[1].split("-")[0]; QString data = linea.split(" ")[1].split("-")[1]; - if (data.length > 1) + if (data.length() > 1) { QStringList dataHex; From 1b0ad9303094f6429d1720692f8b9dd1455cbd14 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 20:29:27 +0200 Subject: [PATCH 084/332] a --- src/canbus/socketcanbus.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index b48edeca..1123d2a5 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -71,13 +71,13 @@ void SocketCANBus::readFrame() QString linea = QString(this->socket.readLine()); DASH_LOG(info) << "[SocketCANBus] CAN-BUS = " << linea.toStdString() << "\n"; - QString canbus = linea.split(" ")[0]; - QString id = linea.split(" ")[1].split("-")[0]; - QString data = linea.split(" ")[1].split("-")[1]; - - if (data.length() > 1) + if (linea.contains(" ") && linea.contains("-")) // senza controlli split fa crashare tutto se la stringa non contiene i caratteri richiesti { + QString canbus = linea.split(" ")[0]; + QString id = linea.split(" ")[1].split("-")[0]; + QString data = linea.split(" ")[1].split("-")[1]; + QStringList dataHex; QString duo; From 685f66933bfa8b1ffe049d22c36ae97fb06387a4 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 20:32:05 +0200 Subject: [PATCH 085/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 1123d2a5..4a68129d 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -71,7 +71,7 @@ void SocketCANBus::readFrame() QString linea = QString(this->socket.readLine()); DASH_LOG(info) << "[SocketCANBus] CAN-BUS = " << linea.toStdString() << "\n"; - if (linea.contains(" ") && linea.contains("-")) // senza controlli split fa crashare tutto se la stringa non contiene i caratteri richiesti + if (linea.contains(" ") == true && linea.contains("-") == true) // senza controlli split fa crashare tutto se la stringa non contiene i caratteri richiesti { QString canbus = linea.split(" ")[0]; From ae888b6c3a654f8d5d05b2cba14dd692fcb2ce9d Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 20:34:47 +0200 Subject: [PATCH 086/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 4a68129d..c5a1564d 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -71,7 +71,7 @@ void SocketCANBus::readFrame() QString linea = QString(this->socket.readLine()); DASH_LOG(info) << "[SocketCANBus] CAN-BUS = " << linea.toStdString() << "\n"; - if (linea.contains(" ") == true && linea.contains("-") == true) // senza controlli split fa crashare tutto se la stringa non contiene i caratteri richiesti + if (linea.contains("-")) // senza controlli split fa crashare tutto se la stringa non contiene i caratteri richiesti { QString canbus = linea.split(" ")[0]; From a408d93907b5d2fe167b3d4bc9fdd8d28103ad7d Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 17 Apr 2023 20:37:23 +0200 Subject: [PATCH 087/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index c5a1564d..a31b6b91 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -71,7 +71,7 @@ void SocketCANBus::readFrame() QString linea = QString(this->socket.readLine()); DASH_LOG(info) << "[SocketCANBus] CAN-BUS = " << linea.toStdString() << "\n"; - if (linea.contains("-")) // senza controlli split fa crashare tutto se la stringa non contiene i caratteri richiesti + if (linea.contains(" ") && linea.contains("-")) // checks to avoid a split crash { QString canbus = linea.split(" ")[0]; From aa0f63820145814c538e7334061592d042ffca35 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 18 Apr 2023 11:57:29 +0200 Subject: [PATCH 088/332] prova arbiter --- src/canbus/socketcanbus.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index a31b6b91..d0668a51 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -156,6 +156,7 @@ void SocketCANBus::readFrame() } else { + arbiter.increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } } From de4b55f581a233d67efccf0d3ffd1d38b5a54dff Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 18 Apr 2023 11:59:39 +0200 Subject: [PATCH 089/332] a --- include/canbus/socketcanbus.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 5ab2c629..7eb97399 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -12,6 +12,7 @@ #include #include "DashLog.hpp" #include "app/config.hpp" +#include "app/arbiter.hpp" class SocketCANBus : public QObject { @@ -27,6 +28,7 @@ class SocketCANBus : public QObject QTcpSocket socket; QCanBusDevice *bus; int lumws = 10; + Arbiter arbiter; signals: From eaa912a5136301d239c9633aabe8b244d4a6d90d Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 18 Apr 2023 18:51:19 +0200 Subject: [PATCH 090/332] aa --- include/canbus/socketcanbus.hpp | 1 - src/canbus/socketcanbus.cpp | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 7eb97399..f078a08f 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -28,7 +28,6 @@ class SocketCANBus : public QObject QTcpSocket socket; QCanBusDevice *bus; int lumws = 10; - Arbiter arbiter; signals: diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index d0668a51..ecd9f7f9 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -156,7 +156,7 @@ void SocketCANBus::readFrame() } else { - arbiter.increase_brightness(18); + this->arbiter->increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } } From 124f259aaaf4e7d33009ec3669e23b07e31d6e06 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 18 Apr 2023 18:56:47 +0200 Subject: [PATCH 091/332] a --- include/canbus/socketcanbus.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index f078a08f..f2efed62 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -13,6 +13,7 @@ #include "DashLog.hpp" #include "app/config.hpp" #include "app/arbiter.hpp" +#include "openauto/Service/InputService.hpp" class SocketCANBus : public QObject { From 823e997ec817945ab9e6d2ee42157cc2f1766e60 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 18 Apr 2023 19:00:26 +0200 Subject: [PATCH 092/332] a --- src/canbus/socketcanbus.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index ecd9f7f9..bd2216e0 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -156,7 +156,8 @@ void SocketCANBus::readFrame() } else { - this->arbiter->increase_brightness(18); + this->arbiter->vehicle_update_data("mpg", 18.5); + //this->arbiter->increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } } From 6ee7364219756cb060da2c7b60536b1ab60f54aa Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 18 Apr 2023 19:48:36 +0200 Subject: [PATCH 093/332] a --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index f2efed62..582fb500 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -13,7 +13,6 @@ #include "DashLog.hpp" #include "app/config.hpp" #include "app/arbiter.hpp" -#include "openauto/Service/InputService.hpp" class SocketCANBus : public QObject { @@ -23,6 +22,7 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); + Arbiter arbiter; private: bool socketCANAvailable = false; From 7e8d54cbfe1381618c3b901e56a3395203563ed4 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 18 Apr 2023 19:52:56 +0200 Subject: [PATCH 094/332] a --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 582fb500..36f801b0 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -22,13 +22,13 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - Arbiter arbiter; private: bool socketCANAvailable = false; QTcpSocket socket; QCanBusDevice *bus; int lumws = 10; + Arbiter &arbiter; signals: From d4663728287404d86b408c44e26c168a18ecbcc9 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 18 Apr 2023 19:55:28 +0200 Subject: [PATCH 095/332] a --- include/canbus/socketcanbus.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 36f801b0..a7f4efa4 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -14,6 +14,8 @@ #include "app/config.hpp" #include "app/arbiter.hpp" +class Arbiter; + class SocketCANBus : public QObject { Q_OBJECT From e37244ba92c5a395ad5b567ead2f8bb195530f39 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 18 Apr 2023 19:57:46 +0200 Subject: [PATCH 096/332] a --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index a7f4efa4..8ca8fb94 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -30,7 +30,7 @@ class SocketCANBus : public QObject QTcpSocket socket; QCanBusDevice *bus; int lumws = 10; - Arbiter &arbiter; + Arbiter arbiter; signals: From 2a2229b4d4f686ac7e03cdd3d40eba58b1bc881a Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 18 Apr 2023 20:01:27 +0200 Subject: [PATCH 097/332] a --- src/canbus/socketcanbus.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index bd2216e0..e85cebc3 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -3,6 +3,7 @@ #include #include "canbus/socketcanbus.hpp" #include +#include "app/arbiter.hpp" SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this) { From b2592290682e978682400df2b937c381304f2dd7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 20 Apr 2023 16:57:12 +0200 Subject: [PATCH 098/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index e85cebc3..88351312 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -157,7 +157,7 @@ void SocketCANBus::readFrame() } else { - this->arbiter->vehicle_update_data("mpg", 18.5); + arbiter.vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } From 84a8f8f9a1122a2568581552c3a234b212913ee0 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 20 Apr 2023 17:14:06 +0200 Subject: [PATCH 099/332] a --- include/canbus/socketcanbus.hpp | 3 +-- src/canbus/socketcanbus.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 8ca8fb94..75025c80 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -12,7 +12,6 @@ #include #include "DashLog.hpp" #include "app/config.hpp" -#include "app/arbiter.hpp" class Arbiter; @@ -30,7 +29,7 @@ class SocketCANBus : public QObject QTcpSocket socket; QCanBusDevice *bus; int lumws = 10; - Arbiter arbiter; + Arbiter &arbiter; signals: diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 88351312..4629787f 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -157,7 +157,7 @@ void SocketCANBus::readFrame() } else { - arbiter.vehicle_update_data("mpg", 18.5); + this->arbiter.vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } From bb9c68ccf680318dfca29e277bf695c555c67ce0 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 20 Apr 2023 17:19:28 +0200 Subject: [PATCH 100/332] a --- include/canbus/socketcanbus.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 75025c80..a7f4efa4 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -12,6 +12,7 @@ #include #include "DashLog.hpp" #include "app/config.hpp" +#include "app/arbiter.hpp" class Arbiter; From 6430e1ab1127dd2feb7327b84e16ad0a8bdf1834 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 20 Apr 2023 17:28:35 +0200 Subject: [PATCH 101/332] a --- include/canbus/socketcanbus.hpp | 5 +---- src/canbus/socketcanbus.cpp | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index a7f4efa4..d5f065f6 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -8,14 +8,11 @@ #include #include #include -#include #include #include "DashLog.hpp" #include "app/config.hpp" #include "app/arbiter.hpp" -class Arbiter; - class SocketCANBus : public QObject { Q_OBJECT @@ -30,7 +27,7 @@ class SocketCANBus : public QObject QTcpSocket socket; QCanBusDevice *bus; int lumws = 10; - Arbiter &arbiter; + Arbiter arbiter; signals: diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 4629787f..a24911e6 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -63,7 +63,7 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void SocketCANBus::readFrame() +void SocketCANBus::readFrame(), arbiter(this) { while (this->socket.canReadLine()) From 9b3f16186725110d91f995cc6ba4b57ea0ee1e5c Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Sat, 22 Apr 2023 22:22:09 +0200 Subject: [PATCH 102/332] Update README.md --- README.md | 45 ++++++--------------------------------------- 1 file changed, 6 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 218998cb..174aba25 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,9 @@ -# OpenDash +# astraDash -OpenDash is a Qt-based infotainment center for your Linux OpenAuto installation! -The OpenDash project includes OpenAuto, AASDK, and Dash. +astraDash is a Qt-based infotainment center for your Linux OpenAuto installation! +The astraDash project includes OpenAuto, AASDK, and OpenDash. -Main features of Dash include: +Main added features of astraDash include: -* Embedded OpenAuto `Windowed/Fullscreen` -* Wireless OpenAuto Capability -* On-screen Volume, Brightness, & Theme Control -* Responsive Scalable UI `Adjustable for screen size` -* Bluetooth Media Control -* Real-Time Vehicle OBD-II Data & SocketCAN Capabilities -* Theming `Dark/Light mode` `Customizable RGB Accent Color` -* True Raspberry Pi 7” Official Touchscreen Brightness Control -* App-Launcher built in -* Camera Access `Streaming/Local` `Backup` `Dash` -* Keyboard Shortcuts `GPIO Triggerable` - -![](docs/imgs/opendash-ui.gif) - -# Getting Started - -## Video walk through -_steps may be slightly different such as ia (intelligent-auto) has been renamed to dash, the UI has changed, etc..._ - -https://youtu.be/CIdEN2JNAzw - -## Install Script - -Dash can be built automatically utilizing an included script. - -The install script included in the dash repo will install all the required packages and compile all portions of the OpenDash project. - -### 1. Clone the repo, Run the install script -``` -git clone https://github.com/openDsh/dash - -cd dash - -./install.sh -``` +* Read CanBus frames from localhost +* Camera size fix and brightness control \ No newline at end of file From 1363d5c229fa2cb579eef379f20fb7e1a64a366a Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 17:52:16 +0200 Subject: [PATCH 103/332] prova --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index a24911e6..a788c7f8 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -63,7 +63,7 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void SocketCANBus::readFrame(), arbiter(this) +void SocketCANBus::readFrame(), arbiter(0) { while (this->socket.canReadLine()) From 3271d2c8e4bd2663872855cce9fd79f4530cfe8e Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 17:59:25 +0200 Subject: [PATCH 104/332] prova --- include/canbus/socketcanbus.hpp | 2 +- src/canbus/socketcanbus.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index d5f065f6..2dd19ce9 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -27,7 +27,7 @@ class SocketCANBus : public QObject QTcpSocket socket; QCanBusDevice *bus; int lumws = 10; - Arbiter arbiter; + Arbiter arbiter_; signals: diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index a788c7f8..5ab109d2 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -63,7 +63,7 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void SocketCANBus::readFrame(), arbiter(0) +void SocketCANBus::readFrame(), arbiter_(0) { while (this->socket.canReadLine()) @@ -157,7 +157,7 @@ void SocketCANBus::readFrame(), arbiter(0) } else { - this->arbiter.vehicle_update_data("mpg", 18.5); + this->arbiter_.vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } From 1b2e2d6c2c3a401f747a7fdad3f38c5dfe0ad7c0 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 18:03:23 +0200 Subject: [PATCH 105/332] pubb --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 2dd19ce9..ff33a328 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -21,13 +21,13 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); + Arbiter arbiter_; private: bool socketCANAvailable = false; QTcpSocket socket; QCanBusDevice *bus; int lumws = 10; - Arbiter arbiter_; signals: From b62c7773d5f356f5c3e4bcefe7bbb76790b362f9 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 18:08:54 +0200 Subject: [PATCH 106/332] a --- include/canbus/socketcanbus.hpp | 2 +- src/canbus/socketcanbus.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index ff33a328..12ddb2ef 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -21,7 +21,7 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - Arbiter arbiter_; + Arbiter arbiter_ = new Arbiter(0); private: bool socketCANAvailable = false; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 5ab109d2..1a78e717 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -63,7 +63,7 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void SocketCANBus::readFrame(), arbiter_(0) +void SocketCANBus::readFrame() { while (this->socket.canReadLine()) From 0248ecd06065d153450bc20b19ec45debf11b7b7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 18:25:23 +0200 Subject: [PATCH 107/332] a --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 12ddb2ef..c5c26596 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -21,7 +21,7 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - Arbiter arbiter_ = new Arbiter(0); + Arbiter arbiter_ = new Arbiter(nullptr); private: bool socketCANAvailable = false; From a9cd14ba122243b3d1f448be966df243d19a1728 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 18:32:39 +0200 Subject: [PATCH 108/332] a --- include/canbus/socketcanbus.hpp | 2 +- src/canbus/socketcanbus.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index c5c26596..f1878cee 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -21,7 +21,7 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - Arbiter arbiter_ = new Arbiter(nullptr); + Arbiter* arbiter_ = Arbiter(nullptr); private: bool socketCANAvailable = false; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 1a78e717..53108932 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -157,7 +157,7 @@ void SocketCANBus::readFrame() } else { - this->arbiter_.vehicle_update_data("mpg", 18.5); + arbiter_->vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } From 37447a20853767228699728543d736402aa912e9 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 18:33:58 +0200 Subject: [PATCH 109/332] a --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index f1878cee..25b5e45d 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -21,7 +21,7 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - Arbiter* arbiter_ = Arbiter(nullptr); + Arbiter arbiter_ = Arbiter(nullptr); private: bool socketCANAvailable = false; From 63ceab416989b9227746769b5564d70def830cbf Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 18:44:48 +0200 Subject: [PATCH 110/332] a --- include/canbus/socketcanbus.hpp | 5 +++-- src/canbus/socketcanbus.cpp | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 25b5e45d..479db17c 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -13,6 +13,8 @@ #include "app/config.hpp" #include "app/arbiter.hpp" +class Arbiter; + class SocketCANBus : public QObject { Q_OBJECT @@ -21,7 +23,6 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - Arbiter arbiter_ = Arbiter(nullptr); private: bool socketCANAvailable = false; @@ -32,5 +33,5 @@ class SocketCANBus : public QObject signals: private slots: - void readFrame(); + void readFrame(Arbiter &arbiter); }; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 53108932..56903c4e 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -63,7 +63,7 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void SocketCANBus::readFrame() +void SocketCANBus::readFrame(Arbiter &arbiter) { while (this->socket.canReadLine()) @@ -157,7 +157,7 @@ void SocketCANBus::readFrame() } else { - arbiter_->vehicle_update_data("mpg", 18.5); + arbiter.vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } From 5aaabd5e84b386da5fdca1f9ef970e6f219f3acd Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 18:49:55 +0200 Subject: [PATCH 111/332] a --- include/canbus/socketcanbus.hpp | 2 +- src/canbus/socketcanbus.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 479db17c..131fb054 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -19,7 +19,7 @@ class SocketCANBus : public QObject { Q_OBJECT public: - SocketCANBus(QObject *parent = 0, QString canInterface = "can0"); + SocketCANBus(QObject *parent = 0, QString canInterface = "can0", Arbiter &arbiter); ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 56903c4e..49f8ee39 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface, Arbiter &arbiter) : QObject(parent), socket(this) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { @@ -39,7 +39,7 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame(&arbiter)); } } From 8ef3143be349c88b93d4598b2d161f1a98c1ede8 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 20:41:22 +0200 Subject: [PATCH 112/332] a --- include/canbus/socketcanbus.hpp | 2 +- src/canbus/socketcanbus.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 131fb054..7428e311 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -19,7 +19,7 @@ class SocketCANBus : public QObject { Q_OBJECT public: - SocketCANBus(QObject *parent = 0, QString canInterface = "can0", Arbiter &arbiter); + SocketCANBus(Arbiter &arbiter, QObject *parent = 0, QString canInterface = "can0"); ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 49f8ee39..2dd262a5 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface, Arbiter &arbiter) : QObject(parent), socket(this) +SocketCANBus::SocketCANBus(Arbiter &arbiter, QObject *parent, QString canInterface) : QObject(parent), socket(this) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From 93fab19afd671e1f18dbcdfc4d42a4de809c84df Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 20:46:00 +0200 Subject: [PATCH 113/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 2dd262a5..38ee7b67 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -39,7 +39,7 @@ SocketCANBus::SocketCANBus(Arbiter &arbiter, QObject *parent, QString canInterfa DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame(&arbiter)); + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame(*arbiter)); } } From 0f37fb8f2f60cf5634ef7fc9d4a3e0f8873f04f5 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 21:01:54 +0200 Subject: [PATCH 114/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 38ee7b67..9771dbbf 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -39,7 +39,7 @@ SocketCANBus::SocketCANBus(Arbiter &arbiter, QObject *parent, QString canInterfa DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame(*arbiter)); + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame(arbiter)); } } From 5dc25e3583160a6bb5fb4e4f4de9319f310d708b Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 21:20:53 +0200 Subject: [PATCH 115/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 9771dbbf..2dd262a5 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -39,7 +39,7 @@ SocketCANBus::SocketCANBus(Arbiter &arbiter, QObject *parent, QString canInterfa DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame(arbiter)); + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame(&arbiter)); } } From 668eb6d30b1def304e8edab47368a294ae0092e2 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 21:25:29 +0200 Subject: [PATCH 116/332] a --- include/canbus/socketcanbus.hpp | 2 +- src/canbus/socketcanbus.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 7428e311..0c60f559 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -33,5 +33,5 @@ class SocketCANBus : public QObject signals: private slots: - void readFrame(Arbiter &arbiter); + void readFrame(); }; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 2dd262a5..9b398c92 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -39,7 +39,7 @@ SocketCANBus::SocketCANBus(Arbiter &arbiter, QObject *parent, QString canInterfa DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame(&arbiter)); + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } } @@ -63,7 +63,7 @@ SocketCANBus *SocketCANBus::get_instance() return &bus; } -void SocketCANBus::readFrame(Arbiter &arbiter) +void SocketCANBus::readFrame() { while (this->socket.canReadLine()) @@ -157,7 +157,7 @@ void SocketCANBus::readFrame(Arbiter &arbiter) } else { - arbiter.vehicle_update_data("mpg", 18.5); + this->arbiter.vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } From 45e6ce5dd32abec2fcc40de178786a5f66794246 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 21:28:11 +0200 Subject: [PATCH 117/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 9b398c92..136f2e51 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -59,7 +59,7 @@ bool SocketCANBus::writeFrame(QString frame) SocketCANBus *SocketCANBus::get_instance() { - static SocketCANBus bus(0, Config::get_instance()->get_vehicle_interface()); + static SocketCANBus bus(this, 0, Config::get_instance()->get_vehicle_interface()); return &bus; } From 7bc6ae83061bc0d0ef6074740203b65936c91f22 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 23 Apr 2023 21:30:58 +0200 Subject: [PATCH 118/332] a --- include/canbus/socketcanbus.hpp | 1 + src/canbus/socketcanbus.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 0c60f559..b76712f9 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -23,6 +23,7 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); + Arbiter &arbiter; private: bool socketCANAvailable = false; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 136f2e51..d62832ae 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -59,7 +59,7 @@ bool SocketCANBus::writeFrame(QString frame) SocketCANBus *SocketCANBus::get_instance() { - static SocketCANBus bus(this, 0, Config::get_instance()->get_vehicle_interface()); + static SocketCANBus bus(nullptr, 0, Config::get_instance()->get_vehicle_interface()); return &bus; } From 3741182d777ce949adf34176c42e453bf67b6e73 Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Sun, 23 Apr 2023 22:05:41 +0200 Subject: [PATCH 119/332] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 174aba25..46b9225c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # astraDash -astraDash is a Qt-based infotainment center for your Linux OpenAuto installation! +astraDash is a Qt-based infotainment center for my Opel Astra H GTC Linux setup! The astraDash project includes OpenAuto, AASDK, and OpenDash. Main added features of astraDash include: From d94f61600c8f1d4b76c5974177477e9bd0dd64c0 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 15:00:56 +0200 Subject: [PATCH 120/332] vedem --- include/canbus/socketcanbus.hpp | 4 ++-- src/canbus/socketcanbus.cpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index b76712f9..76d99305 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -19,11 +19,11 @@ class SocketCANBus : public QObject { Q_OBJECT public: - SocketCANBus(Arbiter &arbiter, QObject *parent = 0, QString canInterface = "can0"); + SocketCANBus(QObject *parent = 0, QString canInterface = "can0"); ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - Arbiter &arbiter; + Arbiter *arbiter = nullptr; private: bool socketCANAvailable = false; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index d62832ae..88351312 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(Arbiter &arbiter, QObject *parent, QString canInterface) : QObject(parent), socket(this) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { @@ -59,7 +59,7 @@ bool SocketCANBus::writeFrame(QString frame) SocketCANBus *SocketCANBus::get_instance() { - static SocketCANBus bus(nullptr, 0, Config::get_instance()->get_vehicle_interface()); + static SocketCANBus bus(0, Config::get_instance()->get_vehicle_interface()); return &bus; } @@ -157,7 +157,7 @@ void SocketCANBus::readFrame() } else { - this->arbiter.vehicle_update_data("mpg", 18.5); + arbiter.vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } From e4baf45e44d7df4789d2c8d46ca30af8d75cd6d7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 15:03:57 +0200 Subject: [PATCH 121/332] se va non ci credo --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 88351312..ce313c3d 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -157,7 +157,7 @@ void SocketCANBus::readFrame() } else { - arbiter.vehicle_update_data("mpg", 18.5); + arbiter->vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } From dd26a6698733a04459adfd8138b4bb47caaff0a2 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 15:10:32 +0200 Subject: [PATCH 122/332] prova --- src/canbus/socketcanbus.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index ce313c3d..e6484753 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -154,12 +154,14 @@ void SocketCANBus::readFrame() if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; + arbiter->vehicle_update_data("mpg", 18.5); + } else { + DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; arbiter->vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); - DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; } } } From 7fa4a81b21e774dd0562fdcc624dfd853dfe85dc Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 15:13:01 +0200 Subject: [PATCH 123/332] prova con this --- src/canbus/socketcanbus.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index e6484753..1ae5ac3d 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -154,13 +154,13 @@ void SocketCANBus::readFrame() if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - arbiter->vehicle_update_data("mpg", 18.5); + this->arbiter->vehicle_update_data("mpg", 18.5); } else { DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; - arbiter->vehicle_update_data("mpg", 18.5); + this->arbiter->vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); } } From 039be9be72fda999833cf679705e3e40cfaea745 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 15:15:58 +0200 Subject: [PATCH 124/332] provaa --- src/canbus/socketcanbus.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 1ae5ac3d..d53b733f 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -154,13 +154,13 @@ void SocketCANBus::readFrame() if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - this->arbiter->vehicle_update_data("mpg", 18.5); + this->arbiter.vehicle_update_data("mpg", 18.5); } else { DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; - this->arbiter->vehicle_update_data("mpg", 18.5); + this->arbiter.vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); } } From 02d526741ff22dd0952b674db2bc11e83565d50b Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 19:23:11 +0200 Subject: [PATCH 125/332] a --- include/canbus/socketcanbus.hpp | 1 - src/canbus/socketcanbus.cpp | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 76d99305..a10bd5af 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -13,7 +13,6 @@ #include "app/config.hpp" #include "app/arbiter.hpp" -class Arbiter; class SocketCANBus : public QObject { diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index d53b733f..ba3373b0 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -160,7 +160,7 @@ void SocketCANBus::readFrame() else { DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; - this->arbiter.vehicle_update_data("mpg", 18.5); + arbiter->vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); } } From 7a6d2b8c6f8cb5a6547ca394653b87ce4ee5710a Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 19:30:29 +0200 Subject: [PATCH 126/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index ba3373b0..e6484753 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -154,7 +154,7 @@ void SocketCANBus::readFrame() if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - this->arbiter.vehicle_update_data("mpg", 18.5); + arbiter->vehicle_update_data("mpg", 18.5); } else From 53bad9c6204ae931dc27a7b602a1a3e8eb890661 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 19:33:11 +0200 Subject: [PATCH 127/332] a --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index a10bd5af..4db0e899 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -22,7 +22,7 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - Arbiter *arbiter = nullptr; + Arbiter *arbiter; private: bool socketCANAvailable = false; From aeadc8371950d0d4469ab90d4350d43ba01aada3 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 19:33:34 +0200 Subject: [PATCH 128/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index e6484753..11dc6a63 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -154,7 +154,7 @@ void SocketCANBus::readFrame() if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - arbiter->vehicle_update_data("mpg", 18.5); + arbiter->increase_brightness(18); } else From c2b333ed5873f1978a1040cbfb1b0f8f35e8ee77 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 20:36:38 +0200 Subject: [PATCH 129/332] prova --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 4db0e899..bb0d3234 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -22,7 +22,7 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - Arbiter *arbiter; + Arbiter &arbiter; private: bool socketCANAvailable = false; From 3c93081f63736fd6439b8185847328aeb180e0d6 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 20:42:31 +0200 Subject: [PATCH 130/332] dashize --- include/canbus/socketcanbus.hpp | 7 +++++++ src/canbus/socketcanbus.cpp | 8 +++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index bb0d3234..72cdd26c 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -23,6 +23,13 @@ class SocketCANBus : public QObject static SocketCANBus *get_instance(); bool writeFrame(QString frame); Arbiter &arbiter; + Arbiter *arbiter_; + + inline void dashize(Arbiter *arbiter) + { + if (!this->arbiter_) + this->arbiter_ = arbiter; + } private: bool socketCANAvailable = false; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 11dc6a63..2c42393b 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this), arbiter(nullptr) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { @@ -39,6 +39,8 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } + dashize(&this->arbiter); + QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } } @@ -154,13 +156,13 @@ void SocketCANBus::readFrame() if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - arbiter->increase_brightness(18); + arbiter_->increase_brightness(18); } else { DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; - arbiter->vehicle_update_data("mpg", 18.5); + arbiter_->vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); } } From 0ec3c99cefef0009545f461162df9524f2e292b4 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 20:49:46 +0200 Subject: [PATCH 131/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 2c42393b..637432e7 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this), arbiter(nullptr) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), QObject(parent), arbiter(*nullptr) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From 98e36ba3cf91b05e6dac806aefab3dbbe6b067b1 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 20:51:10 +0200 Subject: [PATCH 132/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 637432e7..bfcff104 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), QObject(parent), arbiter(*nullptr) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), QObject(parent), arbiter(nullptr_t) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From fed0fc1e5cce1719e1483c8f33a60eb301b45cd3 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 20:54:43 +0200 Subject: [PATCH 133/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index bfcff104..a02fb486 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), QObject(parent), arbiter(nullptr_t) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(std::nullptr_t), QObject(parent) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From 57357096e015bf2e50b90bd31cbe0a5c01c82f77 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 20:56:47 +0200 Subject: [PATCH 134/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index a02fb486..be6e50c1 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(std::nullptr_t), QObject(parent) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(NULL), QObject(parent) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From bdb7b7f93090c09255516c1cb998f4361eec7d28 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 20:57:04 +0200 Subject: [PATCH 135/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index be6e50c1..31ff24f6 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -61,7 +61,7 @@ bool SocketCANBus::writeFrame(QString frame) SocketCANBus *SocketCANBus::get_instance() { - static SocketCANBus bus(0, Config::get_instance()->get_vehicle_interface()); + static SocketCANBus bus(NULL, Config::get_instance()->get_vehicle_interface()); return &bus; } From 146d460ba02a419a007bded52d7c8aae994276a7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 20:59:17 +0200 Subject: [PATCH 136/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 31ff24f6..129c87e4 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(NULL), QObject(parent) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(&this), QObject(parent) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From b6d6364d57ab90a5a6c7c35172a4481a1f299be5 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 21:07:02 +0200 Subject: [PATCH 137/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 129c87e4..9b7e8f1e 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(&this), QObject(parent) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(this), QObject(parent) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From 94506651caa834e45d3a48c35280b88a52e4f881 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 21:12:35 +0200 Subject: [PATCH 138/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 9b7e8f1e..77e1df73 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(this), QObject(parent) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(QMainWindow()), QObject(parent) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From 6a58e718723912bf030a7b315ab137e7b70febbf Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 21:13:58 +0200 Subject: [PATCH 139/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 77e1df73..9eda15cd 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(QMainWindow()), QObject(parent) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), QMainWindow(), arbiter(this), QObject(parent) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From f9e6163d84e603690e74ed0fba2f826713416214 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 21:24:09 +0200 Subject: [PATCH 140/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 9eda15cd..e2656979 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), QMainWindow(), arbiter(this), QObject(parent) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(*this), QObject(parent) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From 17528968c6420a3be05a4725bb67fc8e359c0688 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 21:40:19 +0200 Subject: [PATCH 141/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index e2656979..1249e338 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(*this), QObject(parent) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(), QObject(parent) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From 4695fa502b1d540b3ac715ea576e761f2b6c7968 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 24 Apr 2023 21:45:05 +0200 Subject: [PATCH 142/332] a --- src/canbus/socketcanbus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 1249e338..a2e2971c 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -5,7 +5,7 @@ #include #include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(), QObject(parent) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(parent), QObject(parent) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From d95fb4d5eeca3ea0c958856b3bc58bcde20606c5 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 25 Apr 2023 17:14:07 +0200 Subject: [PATCH 143/332] a --- include/canbus/socketcanbus.hpp | 10 +--------- src/canbus/socketcanbus.cpp | 9 +++------ 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 72cdd26c..613247cd 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -11,7 +11,7 @@ #include #include "DashLog.hpp" #include "app/config.hpp" -#include "app/arbiter.hpp" +#include "plugins/vehicle_plugin.hpp" class SocketCANBus : public QObject @@ -22,14 +22,6 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - Arbiter &arbiter; - Arbiter *arbiter_; - - inline void dashize(Arbiter *arbiter) - { - if (!this->arbiter_) - this->arbiter_ = arbiter; - } private: bool socketCANAvailable = false; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index a2e2971c..51e6ec4c 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -3,9 +3,8 @@ #include #include "canbus/socketcanbus.hpp" #include -#include "app/arbiter.hpp" -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), arbiter(parent), QObject(parent) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), QObject(parent) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { @@ -39,8 +38,6 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this) DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - dashize(&this->arbiter); - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } } @@ -156,13 +153,13 @@ void SocketCANBus::readFrame() if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - arbiter_->increase_brightness(18); + this->arbiter.increase_brightness(18); } else { DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; - arbiter_->vehicle_update_data("mpg", 18.5); + this->arbiter->vehicle_update_data("mpg", 18.5); //this->arbiter->increase_brightness(18); } } From 7e43da839d98c8811676b85585adf66916f96008 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 25 Apr 2023 17:16:52 +0200 Subject: [PATCH 144/332] a --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 613247cd..936186b8 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -11,7 +11,7 @@ #include #include "DashLog.hpp" #include "app/config.hpp" -#include "plugins/vehicle_plugin.hpp" +//#include "plugins/vehicle_plugin.hpp" class SocketCANBus : public QObject From e6d003e6ad6a90230d1e117e434c07d4455a900c Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 25 Apr 2023 17:18:46 +0200 Subject: [PATCH 145/332] a --- include/canbus/socketcanbus.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 936186b8..22425009 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -11,7 +11,7 @@ #include #include "DashLog.hpp" #include "app/config.hpp" -//#include "plugins/vehicle_plugin.hpp" +#include "plugins/plugin.hpp" class SocketCANBus : public QObject From be48af0e8a1fde07b6b83c7985166acc8f0bdaca Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 25 Apr 2023 17:28:30 +0200 Subject: [PATCH 146/332] a --- include/canbus/socketcanbus.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 22425009..13e4ff3d 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -11,6 +11,7 @@ #include #include "DashLog.hpp" #include "app/config.hpp" +#include "app/arbiter.hpp" #include "plugins/plugin.hpp" From 28e09bece1d938ce24ee8d5feaad2895e74c2f44 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 25 Apr 2023 17:31:13 +0200 Subject: [PATCH 147/332] a --- include/canbus/socketcanbus.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 13e4ff3d..80f622ed 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -12,8 +12,7 @@ #include "DashLog.hpp" #include "app/config.hpp" #include "app/arbiter.hpp" -#include "plugins/plugin.hpp" - +#include "plugins/vehicle_plugin.hpp" class SocketCANBus : public QObject { From 0067707a67196602e3e32111dc1dec13da6fc78c Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 25 Apr 2023 17:33:33 +0200 Subject: [PATCH 148/332] a --- include/canbus/socketcanbus.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index 80f622ed..e0136ca9 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -22,6 +22,8 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); + virtual bool init(SocketCANBus*); + private: bool socketCANAvailable = false; From 59e64ee83684acffb273d6a99cd5e4dbe80d4eab Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 15:55:07 +0200 Subject: [PATCH 149/332] prova --- include/canbus/socketcanbus.hpp | 12 +-- plugins/vehicle/test/test.cpp | 171 ++++++++++++++++++++++++++++++-- plugins/vehicle/test/test.hpp | 18 +++- src/canbus/socketcanbus.cpp | 147 --------------------------- 4 files changed, 176 insertions(+), 172 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index e0136ca9..e12445df 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -11,8 +11,6 @@ #include #include "DashLog.hpp" #include "app/config.hpp" -#include "app/arbiter.hpp" -#include "plugins/vehicle_plugin.hpp" class SocketCANBus : public QObject { @@ -22,17 +20,9 @@ class SocketCANBus : public QObject ~SocketCANBus(); static SocketCANBus *get_instance(); bool writeFrame(QString frame); - virtual bool init(SocketCANBus*); - + QTcpSocket socket; private: bool socketCANAvailable = false; - QTcpSocket socket; QCanBusDevice *bus; - int lumws = 10; - -signals: - -private slots: - void readFrame(); }; diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index cbe9296f..b9bcd5ee 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -1,5 +1,7 @@ #include #include +#include +#include #include "test.hpp" @@ -19,9 +21,14 @@ QList Test::widgets() return tabs; } -bool Test::init(SocketCANBus*) +bool Test::init(SocketCANBus *bus) { - if (this->arbiter) { + + QObject::connect(&socket, &QTcpSocket::readyRead, this, &Test::readFrame(&bus)); + + /* + if (this->arbiter) + { this->vehicle = new Vehicle(*this->arbiter); this->vehicle->pressure_init("psi", 35); this->vehicle->disable_sensors(); @@ -31,7 +38,8 @@ bool Test::init(SocketCANBus*) this->climate->max_fan_speed(4); auto timer = new QTimer(this); - connect(timer, &QTimer::timeout, [this]{ + connect(timer, &QTimer::timeout, [this] + { static bool toggle = false; switch(rand() % 50) { @@ -131,21 +139,166 @@ bool Test::init(SocketCANBus*) default: toggle = !toggle; break; - } - }); + } }); timer->start(1000); auto timer2 = new QTimer(this); - connect(timer2, &QTimer::timeout, [this]{ + connect(timer2, &QTimer::timeout, [this] + { if (rand() % 10 == 1) { this->climate->left_temp((rand() % 20) + 60); this->climate->right_temp((rand() % 20) + 60); - } - }); + } }); timer2->start(100000); return true; } + */ + + return true;//false; +} + +void Test::readFrame(SocketCANBus *bus) +{ + + while (bus->socket.canReadLine()) + { + + QString linea = QString(bus->socket.readLine()); + DASH_LOG(info) << "[PLUGIN] CAN-BUS = " << linea.toStdString() << "\n"; + + if (linea.contains(" ") && linea.contains("-")) // checks to avoid a split crash + { + + QString canbus = linea.split(" ")[0]; + QString id = linea.split(" ")[1].split("-")[0]; + QString data = linea.split(" ")[1].split("-")[1]; + + QStringList dataHex; + + QString duo; + + for (int i = 0; i < data.length(); i++) + { + if (i % 2 == 0 && i != 0) + { + dataHex.append(duo); + duo = ""; + } + duo.append(data[i]); + } + + // MS-CAN + + if (canbus == "RX1") + { - return false; + // Esempio RX1 0206-008401 + + if (id == "0206") + { + if (dataHex.at(0) == "00") + { + bool ok; + + uint temprem = dataHex[2].toUInt(&ok, 16); + + if (ok == true && temprem > 64) + { + if (dataHex.at(1) == "81") + DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; + if (dataHex.at(1) == "82") + DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; + if (dataHex.at(1) == "84") + DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; + if (dataHex.at(1) == "91") + DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; + if (dataHex.at(1) == "92") + DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; + } + else + { + if (dataHex.at(1) == "81") + DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; + if (dataHex.at(1) == "82") + DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + if (dataHex.at(1) == "84") + DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; + if (dataHex.at(1) == "91") + DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; + if (dataHex.at(1) == "92") + DASH_LOG(info) << "Pulsante in basso a destra\r\n"; + } + } + if (dataHex.at(0) == "08") + { + if (dataHex.at(1) == "83") + { + if (dataHex.at(2).at(1) == "F") + { + DASH_LOG(info) << "Manopola sinistra SU\r\n"; + } + else + { + DASH_LOG(info) << "Manopola sinistra GIU\r\n"; + } + } + + if (dataHex.at(1) == "93") + { + if (dataHex.at(2).at(1) == "F") + { + DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; + this->arbiter.increase_brightness(18); + + } + else + { + DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; + this->arbiter->vehicle_update_data("mpg", 18.5); + //this->arbiter->increase_brightness(18); + } + } + } + } + + // Esempio RX1 0450-460706FF + + if (id == "0450") + { + bool okk; + + uint luminosita_nuova = dataHex[3].toUInt(&okk, 16); + int valore_ws = (int)(luminosita_nuova / 25.5); + + if (valore_ws != lumws) + { + /* + char query[73]; // 71 + + sprintf(query, "/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %d", valore_ws); + + if (system(query) == 0) + { + printf("%s\r\n", query); + } + else + { + printf("==== ERRORE LUMINOSITA ====\r\n"); + }*/ + + DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; + + lumws = valore_ws; + } + } + } + + // HS-CAN + + if (canbus == "RX2") + { + } + } + } } diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index dc6a32f8..9cb2d3a3 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -1,23 +1,31 @@ #pragma once #include +#include #include "plugins/vehicle_plugin.hpp" #include "app/widgets/climate.hpp" #include "app/widgets/vehicle.hpp" #include "canbus/socketcanbus.hpp" -class Test : public QObject, VehiclePlugin { +class Test : public QObject, VehiclePlugin +{ Q_OBJECT Q_PLUGIN_METADATA(IID VehiclePlugin_iid FILE "test.json") Q_INTERFACES(VehiclePlugin) - public: - Test() {}; +public: + Test(){}; ~Test(); QList widgets() override; - bool init(SocketCANBus*) override; + bool init(SocketCANBus *bus) override; - private: +private: Climate *climate; Vehicle *vehicle; + int lumws = 10; + +signals: + +private slots: + void readFrame(SocketCANBus *bus); }; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 51e6ec4c..ca19f544 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,8 +37,6 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this) { DASH_LOG(error) << "[SocketCANBus] Errore di connessione a Carberry"; } - - QObject::connect(&socket, &QTcpSocket::readyRead, this, &SocketCANBus::readFrame); } } @@ -60,149 +58,4 @@ SocketCANBus *SocketCANBus::get_instance() { static SocketCANBus bus(NULL, Config::get_instance()->get_vehicle_interface()); return &bus; -} - -void SocketCANBus::readFrame() -{ - - while (this->socket.canReadLine()) - { - - QString linea = QString(this->socket.readLine()); - DASH_LOG(info) << "[SocketCANBus] CAN-BUS = " << linea.toStdString() << "\n"; - - if (linea.contains(" ") && linea.contains("-")) // checks to avoid a split crash - { - - QString canbus = linea.split(" ")[0]; - QString id = linea.split(" ")[1].split("-")[0]; - QString data = linea.split(" ")[1].split("-")[1]; - - QStringList dataHex; - - QString duo; - - for (int i = 0; i < data.length(); i++) - { - if (i % 2 == 0 && i != 0) - { - dataHex.append(duo); - duo = ""; - } - duo.append(data[i]); - } - - // MS-CAN - - if (canbus == "RX1") - { - - // Esempio RX1 0206-008401 - - if (id == "0206") - { - if (dataHex.at(0) == "00") - { - bool ok; - - uint temprem = dataHex[2].toUInt(&ok, 16); - - if (ok == true && temprem > 64) - { - if (dataHex.at(1) == "81") - DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; - if (dataHex.at(1) == "82") - DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; - if (dataHex.at(1) == "84") - DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; - if (dataHex.at(1) == "91") - DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; - if (dataHex.at(1) == "92") - DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; - } - else - { - if (dataHex.at(1) == "81") - DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - if (dataHex.at(1) == "82") - DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; - if (dataHex.at(1) == "84") - DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; - if (dataHex.at(1) == "91") - DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; - if (dataHex.at(1) == "92") - DASH_LOG(info) << "Pulsante in basso a destra\r\n"; - } - } - if (dataHex.at(0) == "08") - { - if (dataHex.at(1) == "83") - { - if (dataHex.at(2).at(1) == "F") - { - DASH_LOG(info) << "Manopola sinistra SU\r\n"; - } - else - { - DASH_LOG(info) << "Manopola sinistra GIU\r\n"; - } - } - - if (dataHex.at(1) == "93") - { - if (dataHex.at(2).at(1) == "F") - { - DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - this->arbiter.increase_brightness(18); - - } - else - { - DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; - this->arbiter->vehicle_update_data("mpg", 18.5); - //this->arbiter->increase_brightness(18); - } - } - } - } - - // Esempio RX1 0450-460706FF - - if (id == "0450") - { - bool okk; - - uint luminosita_nuova = dataHex[3].toUInt(&okk, 16); - int valore_ws = (int)(luminosita_nuova / 25.5); - - if (valore_ws != lumws) - { - /* - char query[73]; // 71 - - sprintf(query, "/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %d", valore_ws); - - if (system(query) == 0) - { - printf("%s\r\n", query); - } - else - { - printf("==== ERRORE LUMINOSITA ====\r\n"); - }*/ - - DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; - - lumws = valore_ws; - } - } - } - - // HS-CAN - - if (canbus == "RX2") - { - } - } - } } \ No newline at end of file From f9ae48b87af5e0c1a2e96aca4cd1dc464008c521 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 15:59:41 +0200 Subject: [PATCH 150/332] prova --- plugins/vehicle/test/test.cpp | 4 ++-- src/canbus/socketcanbus.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index b9bcd5ee..c43d88d8 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -24,7 +24,7 @@ QList Test::widgets() bool Test::init(SocketCANBus *bus) { - QObject::connect(&socket, &QTcpSocket::readyRead, this, &Test::readFrame(&bus)); + QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame(bus)); /* if (this->arbiter) @@ -249,7 +249,7 @@ void Test::readFrame(SocketCANBus *bus) if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - this->arbiter.increase_brightness(18); + this->arbiter->increase_brightness(18); } else diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index ca19f544..b9ba0a51 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -4,7 +4,7 @@ #include "canbus/socketcanbus.hpp" #include -SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : socket(this), QObject(parent) +SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(parent), socket(this) { if (QCanBus::instance()->plugins().contains(QStringLiteral("socketcan"))) { From 04492c265d46d6b2d688f71c002e716e95496140 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 16:02:24 +0200 Subject: [PATCH 151/332] prova --- plugins/vehicle/test/test.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index c43d88d8..fe3ec8ea 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -23,10 +23,6 @@ QList Test::widgets() bool Test::init(SocketCANBus *bus) { - - QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame(bus)); - - /* if (this->arbiter) { this->vehicle = new Vehicle(*this->arbiter); @@ -151,11 +147,12 @@ bool Test::init(SocketCANBus *bus) } }); timer2->start(100000); + QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame(&&bus)); + return true; } - */ - return true;//false; + return false; } void Test::readFrame(SocketCANBus *bus) From ad0771eb9681e4b19539edcbc70714ce26874a4d Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 16:05:25 +0200 Subject: [PATCH 152/332] prova --- plugins/vehicle/test/test.cpp | 4 ++-- plugins/vehicle/test/test.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index fe3ec8ea..a061ef40 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -147,7 +147,7 @@ bool Test::init(SocketCANBus *bus) } }); timer2->start(100000); - QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame(&&bus)); + QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame(bus)); return true; } @@ -155,7 +155,7 @@ bool Test::init(SocketCANBus *bus) return false; } -void Test::readFrame(SocketCANBus *bus) +void Test::readFrame(SocketCANBus &bus) { while (bus->socket.canReadLine()) diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 9cb2d3a3..7765d376 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -27,5 +27,5 @@ class Test : public QObject, VehiclePlugin signals: private slots: - void readFrame(SocketCANBus *bus); + void readFrame(SocketCANBus &bus); }; From dad6c6ef6d9380543f290a6440611cae2d74c6ca Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 16:06:56 +0200 Subject: [PATCH 153/332] prova --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index a061ef40..d04c36ed 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -147,7 +147,7 @@ bool Test::init(SocketCANBus *bus) } }); timer2->start(100000); - QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame(bus)); + QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame(*bus)); return true; } From 52760b18ecbaad2e51747d97f87357d589eb6a18 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 16:09:20 +0200 Subject: [PATCH 154/332] a --- plugins/vehicle/test/test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index d04c36ed..b9190044 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -147,7 +147,7 @@ bool Test::init(SocketCANBus *bus) } }); timer2->start(100000); - QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame(*bus)); + QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame(bus)); return true; } @@ -155,7 +155,7 @@ bool Test::init(SocketCANBus *bus) return false; } -void Test::readFrame(SocketCANBus &bus) +void Test::readFrame(SocketCANBus bus) { while (bus->socket.canReadLine()) From 7d162e3c064ec2e8f5707c72e8780e8a57c166ec Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 16:13:52 +0200 Subject: [PATCH 155/332] prova --- plugins/vehicle/test/test.cpp | 5 +++-- plugins/vehicle/test/test.hpp | 9 ++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index b9190044..f0880fda 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -147,7 +147,8 @@ bool Test::init(SocketCANBus *bus) } }); timer2->start(100000); - QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame(bus)); + socketcan(&bus); + QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame); return true; } @@ -155,7 +156,7 @@ bool Test::init(SocketCANBus *bus) return false; } -void Test::readFrame(SocketCANBus bus) +void Test::readFrame() { while (bus->socket.canReadLine()) diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 7765d376..264a69f2 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -19,13 +19,20 @@ class Test : public QObject, VehiclePlugin QList widgets() override; bool init(SocketCANBus *bus) override; + inline void socketcan(SocketCANBus *bus) + { + if (!this->bus) + this->bus = bus; + } + private: Climate *climate; Vehicle *vehicle; int lumws = 10; + SocketCANBus *bus = nullptr; signals: private slots: - void readFrame(SocketCANBus &bus); + void readFrame(); }; From 9a4da46b09aa7ae6405c4de16fa92da663aba045 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 16:15:43 +0200 Subject: [PATCH 156/332] a --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index f0880fda..171c68d4 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -147,7 +147,7 @@ bool Test::init(SocketCANBus *bus) } }); timer2->start(100000); - socketcan(&bus); + socketcan(bus); QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame); return true; From bdf5c0b38fb77ea347696b8b5be5119b94f9151e Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 16:19:49 +0200 Subject: [PATCH 157/332] a --- plugins/vehicle/test/test.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 171c68d4..ca09456c 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -148,6 +148,7 @@ bool Test::init(SocketCANBus *bus) timer2->start(100000); socketcan(bus); + this->arbiter->increase_brightness(18); QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame); return true; @@ -247,14 +248,13 @@ void Test::readFrame() if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - this->arbiter->increase_brightness(18); - + this->arbiter->increase_brightness(18); } else { DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; - this->arbiter->vehicle_update_data("mpg", 18.5); - //this->arbiter->increase_brightness(18); + this->arbiter->vehicle_update_data("mpg", 18.5); + // this->arbiter->increase_brightness(18); } } } From 8b020880e58a640337d4185a07dadb2b90509975 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 16:23:29 +0200 Subject: [PATCH 158/332] prova --- plugins/vehicle/test/test.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 264a69f2..9109b7c8 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -6,6 +6,7 @@ #include "app/widgets/climate.hpp" #include "app/widgets/vehicle.hpp" #include "canbus/socketcanbus.hpp" +#include "app/arbiter.hpp" class Test : public QObject, VehiclePlugin { From cc52221738da6f2e3b8f170c6589a5ebe10332b1 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 16:25:36 +0200 Subject: [PATCH 159/332] a --- plugins/vehicle/test/test.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index ca09456c..70779bad 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -148,7 +148,6 @@ bool Test::init(SocketCANBus *bus) timer2->start(100000); socketcan(bus); - this->arbiter->increase_brightness(18); QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame); return true; From 629551440658f32931de108c4d6460479a96917a Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:00:37 +0200 Subject: [PATCH 160/332] prova --- plugins/vehicle/test/test.cpp | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 70779bad..be99c5c1 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -204,28 +204,50 @@ void Test::readFrame() if (ok == true && temprem > 64) { if (dataHex.at(1) == "81") + { DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; + } if (dataHex.at(1) == "82") + { DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; + } if (dataHex.at(1) == "84") + { DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; + } if (dataHex.at(1) == "91") + { DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; + } if (dataHex.at(1) == "92") + { DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; + } } else { if (dataHex.at(1) == "81") + { DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; + this->arbiter->set_curr_page(1); + } if (dataHex.at(1) == "82") + { DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + // this->arbiter->vehicle_update_data("mpg", 18.5); + } if (dataHex.at(1) == "84") + { DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; + } if (dataHex.at(1) == "91") + { DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; + } if (dataHex.at(1) == "92") + { DASH_LOG(info) << "Pulsante in basso a destra\r\n"; + } } } if (dataHex.at(0) == "08") @@ -247,13 +269,12 @@ void Test::readFrame() if (dataHex.at(2).at(1) == "F") { DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; - this->arbiter->increase_brightness(18); + this->arbiter->decrease_volume(10); } else { DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; - this->arbiter->vehicle_update_data("mpg", 18.5); - // this->arbiter->increase_brightness(18); + this->arbiter->increase_volume(10); } } } @@ -295,6 +316,7 @@ void Test::readFrame() if (canbus == "RX2") { + // this->arbiter->vehicle_update_data("mpg", 18.5); } } } From 922fc3c250d2ac1b443708c14429abf521b92315 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:34:55 +0200 Subject: [PATCH 161/332] prova --- plugins/brightness/x/x.cpp | 1 + plugins/brightness/x/x.hpp | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index afc3829c..9513b94e 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -23,6 +23,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); + DASH_LOG(info) << "[LUM] BARRA = " << brightness.toStdString() << " RISULTATO" << (int)(brightness / 25.5).toStdString() << "\n"; process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } diff --git a/plugins/brightness/x/x.hpp b/plugins/brightness/x/x.hpp index ccb4265b..86b87d02 100644 --- a/plugins/brightness/x/x.hpp +++ b/plugins/brightness/x/x.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include "plugins/brightness_plugin.hpp" class X : public QObject, BrightnessPlugin { From 1de19e27457058a17b28ede40f48192aefbf8f2b Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:37:05 +0200 Subject: [PATCH 162/332] prova --- plugins/brightness/x/x.cpp | 2 +- plugins/brightness/x/x.hpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index 9513b94e..b74e8f91 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -23,7 +23,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - DASH_LOG(info) << "[LUM] BARRA = " << brightness.toStdString() << " RISULTATO" << (int)(brightness / 25.5).toStdString() << "\n"; + DASH_LOG(info) << "[LUM] BARRA = " << to_string(brightness).toStdString() << " RISULTATO" << to_string(brightness / 25.5).toStdString() << "\n"; process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } diff --git a/plugins/brightness/x/x.hpp b/plugins/brightness/x/x.hpp index 86b87d02..f7a0b017 100644 --- a/plugins/brightness/x/x.hpp +++ b/plugins/brightness/x/x.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include "plugins/brightness_plugin.hpp" From a0acb73dbe9a062559651ac62bfaa25be8cf6ce5 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:38:30 +0200 Subject: [PATCH 163/332] a --- plugins/brightness/x/x.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index b74e8f91..30b22188 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -23,7 +23,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - DASH_LOG(info) << "[LUM] BARRA = " << to_string(brightness).toStdString() << " RISULTATO" << to_string(brightness / 25.5).toStdString() << "\n"; + qDebug() << "[LUM] BARRA = " << to_string(brightness).toStdString() << " RISULTATO" << to_string(brightness / 25.5).toStdString() << "\n"; process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } From e6cbf352b8e04c1381d677ed6baf96ca83a63f9b Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:39:50 +0200 Subject: [PATCH 164/332] a --- plugins/brightness/x/x.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index 30b22188..2b30b9c4 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -23,7 +23,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - qDebug() << "[LUM] BARRA = " << to_string(brightness).toStdString() << " RISULTATO" << to_string(brightness / 25.5).toStdString() << "\n"; + qDebug() << "[LUM] BARRA = " << std::__cxx11::string(brightness).toStdString() << " RISULTATO" << std::__cxx11::string(brightness / 25.5).toStdString() << "\n"; process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } From a998de745ed0d2bbde161ff851a71eb181abf075 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:41:21 +0200 Subject: [PATCH 165/332] a --- plugins/brightness/x/x.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index 2b30b9c4..3e68daea 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -23,7 +23,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - qDebug() << "[LUM] BARRA = " << std::__cxx11::string(brightness).toStdString() << " RISULTATO" << std::__cxx11::string(brightness / 25.5).toStdString() << "\n"; + qDebug() << "[LUM] BARRA = " << std::__cxx11::to_string(brightness).toStdString() << " RISULTATO" << std::__cxx11::to_string(brightness / 25.5).toStdString() << "\n"; process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } From 3a6564d0b2eb9bf7310324577dd3e7d4e0b15a56 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:42:29 +0200 Subject: [PATCH 166/332] a --- plugins/brightness/x/x.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/brightness/x/x.hpp b/plugins/brightness/x/x.hpp index f7a0b017..42c6f1c0 100644 --- a/plugins/brightness/x/x.hpp +++ b/plugins/brightness/x/x.hpp @@ -2,7 +2,6 @@ #include #include -#include #include "plugins/brightness_plugin.hpp" class X : public QObject, BrightnessPlugin { From 2de59ec23a45d0b2341f8ff4ae755e6eb976a4c6 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:42:36 +0200 Subject: [PATCH 167/332] a --- plugins/brightness/x/x.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index 3e68daea..33bcced2 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -23,7 +23,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - qDebug() << "[LUM] BARRA = " << std::__cxx11::to_string(brightness).toStdString() << " RISULTATO" << std::__cxx11::to_string(brightness / 25.5).toStdString() << "\n"; + qDebug() << "[LUM] BARRA = " << std::__cxx11::to_string(brightness) << " RISULTATO" << std::__cxx11::to_string(brightness / 25.5) << "\n"; process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } From 12029c06beeb5fdb42ef81d4c7e3a86613b70e39 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:44:07 +0200 Subject: [PATCH 168/332] a --- plugins/brightness/x/x.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/brightness/x/x.hpp b/plugins/brightness/x/x.hpp index 42c6f1c0..f7a0b017 100644 --- a/plugins/brightness/x/x.hpp +++ b/plugins/brightness/x/x.hpp @@ -2,6 +2,7 @@ #include #include +#include #include "plugins/brightness_plugin.hpp" class X : public QObject, BrightnessPlugin { From 6b5f01f0fa5fa94a9776227aaf8fce15865a3946 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:45:33 +0200 Subject: [PATCH 169/332] a --- plugins/brightness/x/x.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index 33bcced2..91536018 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -23,7 +23,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - qDebug() << "[LUM] BARRA = " << std::__cxx11::to_string(brightness) << " RISULTATO" << std::__cxx11::to_string(brightness / 25.5) << "\n"; + qDebug() << "[LUM] BARRA = " << std::__cxx11::to_string(brightness) << " RISULTATO" << std::__cxx11::to_string((int)(brightness / 25.5)) << "\n"; process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } From 197b3e614329a058f8e03e0277c0145fd1e94d32 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:46:54 +0200 Subject: [PATCH 170/332] a --- plugins/brightness/x/x.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index 91536018..c6ac82e1 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -23,7 +23,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - qDebug() << "[LUM] BARRA = " << std::__cxx11::to_string(brightness) << " RISULTATO" << std::__cxx11::to_string((int)(brightness / 25.5)) << "\n"; + qDebug() << "[LUM] BARRA = " << to_string(brightness) << " RISULTATO" << to_string((int)(brightness / 25.5)) << "\n"; process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } From cae3af11983ce38f53a7a388fade3fc6f12d615b Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:49:57 +0200 Subject: [PATCH 171/332] a --- plugins/brightness/x/x.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index c6ac82e1..c8e1887b 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "x.hpp" @@ -23,7 +24,8 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - qDebug() << "[LUM] BARRA = " << to_string(brightness) << " RISULTATO" << to_string((int)(brightness / 25.5)) << "\n"; + QString stampa = QStringLiteral("[LUM] BARRA = %1 RISULTATO %2 \n").arg(brightness).arg((int)(brightness / 25.5)); + qDebug() << stampa.toStdString(); process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } From 49fe159522803eda5949e025094d63fbf4493916 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:50:42 +0200 Subject: [PATCH 172/332] prova --- plugins/brightness/x/x.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index c8e1887b..006a872f 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -25,7 +25,7 @@ void X::set(int brightness) if (this->screen != nullptr) { QProcess process(this); QString stampa = QStringLiteral("[LUM] BARRA = %1 RISULTATO %2 \n").arg(brightness).arg((int)(brightness / 25.5)); - qDebug() << stampa.toStdString(); + //qDebug() << stampa.toStdString(); process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } From 8994c8db4aa5c199d26ca9d1d02b508ff0404151 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:51:55 +0200 Subject: [PATCH 173/332] a --- plugins/brightness/x/x.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index 006a872f..e6d058b4 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -25,7 +25,7 @@ void X::set(int brightness) if (this->screen != nullptr) { QProcess process(this); QString stampa = QStringLiteral("[LUM] BARRA = %1 RISULTATO %2 \n").arg(brightness).arg((int)(brightness / 25.5)); - //qDebug() << stampa.toStdString(); + qDebug() << "stringa: " << stampa.toStdString(); process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } From 334a3fed1705fb44c1536f9fc76f72f71e72d4ed Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:53:09 +0200 Subject: [PATCH 174/332] a --- plugins/brightness/x/x.cpp | 4 +++- plugins/brightness/x/x.hpp | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index e6d058b4..d27f1a6a 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -2,6 +2,8 @@ #include #include #include +#include +#include #include "x.hpp" @@ -25,7 +27,7 @@ void X::set(int brightness) if (this->screen != nullptr) { QProcess process(this); QString stampa = QStringLiteral("[LUM] BARRA = %1 RISULTATO %2 \n").arg(brightness).arg((int)(brightness / 25.5)); - qDebug() << "stringa: " << stampa.toStdString(); + qDebug() << "stringa: " << stampa; process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } diff --git a/plugins/brightness/x/x.hpp b/plugins/brightness/x/x.hpp index f7a0b017..ccb4265b 100644 --- a/plugins/brightness/x/x.hpp +++ b/plugins/brightness/x/x.hpp @@ -1,8 +1,6 @@ #pragma once #include -#include -#include #include "plugins/brightness_plugin.hpp" class X : public QObject, BrightnessPlugin { From 80436774e6cee1e412419c27dbbfabcbb396dbe6 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 18:58:35 +0200 Subject: [PATCH 175/332] a --- src/app/session.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/session.cpp b/src/app/session.cpp index a4ae19cf..bcb606e4 100644 --- a/src/app/session.cpp +++ b/src/app/session.cpp @@ -299,7 +299,7 @@ QWidget *Session::Forge::brightness_slider(bool buttons) const auto slider = new QSlider(Qt::Orientation::Horizontal); slider->setTracking(false); - slider->setRange(76, 255); + slider->setRange(0, 255); slider->setValue(this->arbiter_.system().brightness.value); QObject::connect(slider, &QSlider::sliderReleased, [this, slider]{ this->arbiter_.set_brightness(slider->sliderPosition()); From f70e91d08b0e6345f49ac46916837aef2f6b3954 Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 19:01:28 +0200 Subject: [PATCH 176/332] a --- src/app/arbiter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/arbiter.cpp b/src/app/arbiter.cpp index ec01d2d3..08e4c12a 100644 --- a/src/app/arbiter.cpp +++ b/src/app/arbiter.cpp @@ -138,12 +138,12 @@ void Arbiter::set_brightness(uint8_t brightness) void Arbiter::decrease_brightness(uint8_t val) { - this->set_brightness(std::min(std::max(76, this->system().brightness.value - val), 255)); + this->set_brightness(std::min(std::max(0, this->system().brightness.value - val), 255)); } void Arbiter::increase_brightness(uint8_t val) { - this->set_brightness(std::min(std::max(76, this->system().brightness.value + val), 255)); + this->set_brightness(std::min(std::max(0, this->system().brightness.value + val), 255)); } void Arbiter::set_volume(uint8_t volume) From ef59eb1baebdb385f87332b58cdc3b0e4a15e78b Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 19:05:32 +0200 Subject: [PATCH 177/332] a --- plugins/vehicle/test/test.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index be99c5c1..8b8352bb 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -306,6 +306,8 @@ void Test::readFrame() }*/ DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; + this->arbiter->set_brightness(luminosita_nuova); + lumws = valore_ws; } From 5636376fe9afede6e3d7ee3c70cee5975cfd43fe Mon Sep 17 00:00:00 2001 From: Gioele Date: Wed, 26 Apr 2023 19:23:23 +0200 Subject: [PATCH 178/332] latest prod --- plugins/brightness/x/x.cpp | 4 ---- plugins/vehicle/test/test.cpp | 20 ++------------------ 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index d27f1a6a..54c87b80 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -2,8 +2,6 @@ #include #include #include -#include -#include #include "x.hpp" @@ -26,8 +24,6 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - QString stampa = QStringLiteral("[LUM] BARRA = %1 RISULTATO %2 \n").arg(brightness).arg((int)(brightness / 25.5)); - qDebug() << "stringa: " << stampa; process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); process.waitForFinished(); } diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 8b8352bb..c3075cf1 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -229,7 +229,7 @@ void Test::readFrame() if (dataHex.at(1) == "81") { DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - this->arbiter->set_curr_page(1); + //this->arbiter->set_curr_page(1); } if (dataHex.at(1) == "82") { @@ -291,24 +291,8 @@ void Test::readFrame() if (valore_ws != lumws) { - /* - char query[73]; // 71 - - sprintf(query, "/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %d", valore_ws); - - if (system(query) == 0) - { - printf("%s\r\n", query); - } - else - { - printf("==== ERRORE LUMINOSITA ====\r\n"); - }*/ - - DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; + //DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; this->arbiter->set_brightness(luminosita_nuova); - - lumws = valore_ws; } } From d84fef86b4b2265d8f0d9d94a9d3abfcde37364a Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 15:33:13 +0200 Subject: [PATCH 179/332] prova --- plugins/vehicle/test/test.cpp | 7 ++++--- plugins/vehicle/test/test.hpp | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index c3075cf1..db94cdde 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -31,8 +31,8 @@ bool Test::init(SocketCANBus *bus) this->vehicle->rotate(270); this->climate = new Climate(*this->arbiter); - this->climate->max_fan_speed(4); - + this->climate->max_fan_speed(7); +/* auto timer = new QTimer(this); connect(timer, &QTimer::timeout, [this] { @@ -136,6 +136,7 @@ bool Test::init(SocketCANBus *bus) toggle = !toggle; break; } }); + timer->start(1000); auto timer2 = new QTimer(this); @@ -146,7 +147,7 @@ bool Test::init(SocketCANBus *bus) this->climate->right_temp((rand() % 20) + 60); } }); timer2->start(100000); - +*/ socketcan(bus); QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame); diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 9109b7c8..e1ae856c 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -29,7 +29,7 @@ class Test : public QObject, VehiclePlugin private: Climate *climate; Vehicle *vehicle; - int lumws = 10; + int lumws = 0; SocketCANBus *bus = nullptr; signals: From 98e28807935bc9ffff8f7e6f3eb3a86312b94a50 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 15:43:23 +0200 Subject: [PATCH 180/332] prova --- plugins/vehicle/test/test.cpp | 4 ++-- src/app/session.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index db94cdde..e6c727cc 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -269,12 +269,12 @@ void Test::readFrame() { if (dataHex.at(2).at(1) == "F") { - DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; + //DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; this->arbiter->decrease_volume(10); } else { - DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; + //DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; this->arbiter->increase_volume(10); } } diff --git a/src/app/session.cpp b/src/app/session.cpp index bcb606e4..1d42f32d 100644 --- a/src/app/session.cpp +++ b/src/app/session.cpp @@ -406,7 +406,7 @@ Session::Core::Core(QSettings &settings, Arbiter &arbiter) }, Qt::QueuedConnection); } }; - this->actions_.append(new Action(QString("Show %1 Page").arg(page->name()), callback, arbiter.window())); + this->actions_.append(new Action(QString("Show %1 Page").arg(page->id()), callback, arbiter.window())); } { From 3f38ba70ac5c9ea7c9ae1ec007301dbe062560c3 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 15:47:45 +0200 Subject: [PATCH 181/332] return --- src/app/session.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/session.cpp b/src/app/session.cpp index 1d42f32d..bcb606e4 100644 --- a/src/app/session.cpp +++ b/src/app/session.cpp @@ -406,7 +406,7 @@ Session::Core::Core(QSettings &settings, Arbiter &arbiter) }, Qt::QueuedConnection); } }; - this->actions_.append(new Action(QString("Show %1 Page").arg(page->id()), callback, arbiter.window())); + this->actions_.append(new Action(QString("Show %1 Page").arg(page->name()), callback, arbiter.window())); } { From eb0fbf65e279d501d1e7be389abf1b377785a1fb Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 17:08:29 +0200 Subject: [PATCH 182/332] dovrebbe anda --- plugins/vehicle/test/test.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index e6c727cc..a9c60498 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -235,6 +235,7 @@ void Test::readFrame() if (dataHex.at(1) == "82") { DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + this->arbiter->set_curr_page(this->arbiter->ayout()->next_enabled_page(this->arbiter->layout()->curr_page)); // this->arbiter->vehicle_update_data("mpg", 18.5); } if (dataHex.at(1) == "84") From 6d772688c1ecfd9617b10c814bdc0c0fccb6c22a Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 17:09:59 +0200 Subject: [PATCH 183/332] a --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index a9c60498..778f451d 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -235,7 +235,7 @@ void Test::readFrame() if (dataHex.at(1) == "82") { DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; - this->arbiter->set_curr_page(this->arbiter->ayout()->next_enabled_page(this->arbiter->layout()->curr_page)); + this->arbiter->set_curr_page(this->arbiter->layout().next_enabled_page(this->arbiter->layout().curr_page)); // this->arbiter->vehicle_update_data("mpg", 18.5); } if (dataHex.at(1) == "84") From 59954aa6f59b513d6dd987cefeac32e5eb9d0110 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 17:13:48 +0200 Subject: [PATCH 184/332] prova --- plugins/vehicle/test/test.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 778f451d..c23692ab 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -230,13 +230,12 @@ void Test::readFrame() if (dataHex.at(1) == "81") { DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - //this->arbiter->set_curr_page(1); + this->arbiter->set_curr_page(2); } if (dataHex.at(1) == "82") { - DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + //DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; this->arbiter->set_curr_page(this->arbiter->layout().next_enabled_page(this->arbiter->layout().curr_page)); - // this->arbiter->vehicle_update_data("mpg", 18.5); } if (dataHex.at(1) == "84") { From eaea29e165802077d0e2098212e028aaac17cfc3 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 17:17:08 +0200 Subject: [PATCH 185/332] latest prod --- plugins/vehicle/test/test.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index c23692ab..0d05dc2f 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -211,6 +211,7 @@ void Test::readFrame() if (dataHex.at(1) == "82") { DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; + this->arbiter->set_curr_page(3); } if (dataHex.at(1) == "84") { @@ -229,8 +230,8 @@ void Test::readFrame() { if (dataHex.at(1) == "81") { - DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - this->arbiter->set_curr_page(2); + //DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; + this->arbiter->set_curr_page(1); } if (dataHex.at(1) == "82") { From b656b5c9602f6c6853100c101efee06d6b47c199 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 17:48:22 +0200 Subject: [PATCH 186/332] fix premuto & aaPage --- plugins/vehicle/test/test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 0d05dc2f..4f83ea4c 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -202,7 +202,7 @@ void Test::readFrame() uint temprem = dataHex[2].toUInt(&ok, 16); - if (ok == true && temprem > 64) + if (ok == true && temprem > 4) { if (dataHex.at(1) == "81") { @@ -231,7 +231,7 @@ void Test::readFrame() if (dataHex.at(1) == "81") { //DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - this->arbiter->set_curr_page(1); + this->arbiter->set_curr_page(0); } if (dataHex.at(1) == "82") { From d92b03fa7300e6463a13f95a90243a6880e10e2d Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 18:04:37 +0200 Subject: [PATCH 187/332] prova --- plugins/vehicle/test/test.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 4f83ea4c..a08ab2ee 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -206,23 +206,28 @@ void Test::readFrame() { if (dataHex.at(1) == "81") { + //ok AA DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; } if (dataHex.at(1) == "82") { - DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; + //DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; this->arbiter->set_curr_page(3); } if (dataHex.at(1) == "84") { + //non usare temp DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; } if (dataHex.at(1) == "91") { + //traccia succ AA DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") { + //traccia prec AA + this->arbiter->send_openauto_button_press(aasdk::proto::enums::ButtonCode::NEXT); DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; } } @@ -240,14 +245,17 @@ void Test::readFrame() } if (dataHex.at(1) == "84") { + //non usare temp DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; } if (dataHex.at(1) == "91") { + //destra AA DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") { + //sinistra AA DASH_LOG(info) << "Pulsante in basso a destra\r\n"; } } @@ -258,10 +266,12 @@ void Test::readFrame() { if (dataHex.at(2).at(1) == "F") { + //su AA DASH_LOG(info) << "Manopola sinistra SU\r\n"; } else { + //giu AA DASH_LOG(info) << "Manopola sinistra GIU\r\n"; } } From 94466c37bf7202337259d0335792f6d6213efe77 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 18:25:22 +0200 Subject: [PATCH 188/332] prova --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index a08ab2ee..b5e4f5ac 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -227,7 +227,7 @@ void Test::readFrame() if (dataHex.at(1) == "92") { //traccia prec AA - this->arbiter->send_openauto_button_press(aasdk::proto::enums::ButtonCode::NEXT); + this->arbiter->send_openauto_button_press(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; } } From 3f1dca5ab3e2384f5f835941dddad84b16b62391 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 18:28:21 +0200 Subject: [PATCH 189/332] prova --- plugins/vehicle/test/test.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index b5e4f5ac..e5addab9 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -227,7 +227,7 @@ void Test::readFrame() if (dataHex.at(1) == "92") { //traccia prec AA - this->arbiter->send_openauto_button_press(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); + //this->arbiter->send_openauto_button_press(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::RIGHT); DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; } } @@ -251,6 +251,7 @@ void Test::readFrame() if (dataHex.at(1) == "91") { //destra AA + this->arbiter->send_openauto_button_press(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::RIGHT); DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") From 87f0e6b83562986d1ca44060877da1836c882408 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 18:38:24 +0200 Subject: [PATCH 190/332] vediamo se va --- plugins/vehicle/test/test.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index e5addab9..09e636bf 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -251,7 +251,7 @@ void Test::readFrame() if (dataHex.at(1) == "91") { //destra AA - this->arbiter->send_openauto_button_press(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::RIGHT); + //this->arbiter->send_openauto_button_press(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::RIGHT); DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") @@ -268,6 +268,7 @@ void Test::readFrame() if (dataHex.at(2).at(1) == "F") { //su AA + this->arbiter->android_auto().handler->injectButtonPress(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::RIGHT); DASH_LOG(info) << "Manopola sinistra SU\r\n"; } else From a865d9fb6b94cf2cecd5b08796b354d39588eb87 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 18:45:37 +0200 Subject: [PATCH 191/332] prova --- plugins/vehicle/test/test.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 09e636bf..28125024 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -207,6 +207,7 @@ void Test::readFrame() if (dataHex.at(1) == "81") { //ok AA + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER); DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; } if (dataHex.at(1) == "82") @@ -222,12 +223,13 @@ void Test::readFrame() if (dataHex.at(1) == "91") { //traccia succ AA + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, actionState); DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") { //traccia prec AA - //this->arbiter->send_openauto_button_press(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::RIGHT); + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV); DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; } } @@ -251,12 +253,13 @@ void Test::readFrame() if (dataHex.at(1) == "91") { //destra AA - //this->arbiter->send_openauto_button_press(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::RIGHT); + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::RIGHT); DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") { //sinistra AA + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::LEFT); DASH_LOG(info) << "Pulsante in basso a destra\r\n"; } } @@ -267,14 +270,13 @@ void Test::readFrame() { if (dataHex.at(2).at(1) == "F") { - //su AA this->arbiter->android_auto().handler->injectButtonPress(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::RIGHT); - DASH_LOG(info) << "Manopola sinistra SU\r\n"; + //DASH_LOG(info) << "Manopola sinistra SU\r\n"; } else { - //giu AA - DASH_LOG(info) << "Manopola sinistra GIU\r\n"; + this->arbiter->android_auto().handler->injectButtonPress(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::LEFT); + //DASH_LOG(info) << "Manopola sinistra GIU\r\n"; } } From 34f15092996aac79c9b40a93f720d05325727ac8 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 18:48:20 +0200 Subject: [PATCH 192/332] prova --- plugins/vehicle/test/test.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 28125024..9ff01cea 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -207,7 +207,7 @@ void Test::readFrame() if (dataHex.at(1) == "81") { //ok AA - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER); + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER, Action::ActionState::Triggered); DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; } if (dataHex.at(1) == "82") @@ -223,13 +223,13 @@ void Test::readFrame() if (dataHex.at(1) == "91") { //traccia succ AA - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, actionState); + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") { //traccia prec AA - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV); + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV, Action::ActionState::Triggered); DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; } } @@ -253,13 +253,13 @@ void Test::readFrame() if (dataHex.at(1) == "91") { //destra AA - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::RIGHT); + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::RIGHT, Action::ActionState::Triggered); DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") { //sinistra AA - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::LEFT); + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::LEFT, Action::ActionState::Triggered); DASH_LOG(info) << "Pulsante in basso a destra\r\n"; } } From 8e091a1b5c662a8c5e286df44f848b576da5f31d Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Apr 2023 18:54:19 +0200 Subject: [PATCH 193/332] latest prod --- plugins/vehicle/test/test.cpp | 263 +++++++++++++++++----------------- 1 file changed, 129 insertions(+), 134 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 9ff01cea..96cf85b0 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -32,122 +32,122 @@ bool Test::init(SocketCANBus *bus) this->climate = new Climate(*this->arbiter); this->climate->max_fan_speed(7); -/* - auto timer = new QTimer(this); - connect(timer, &QTimer::timeout, [this] - { - static bool toggle = false; + /* + auto timer = new QTimer(this); + connect(timer, &QTimer::timeout, [this] + { + static bool toggle = false; - switch(rand() % 50) { - case 0: - this->climate->airflow(Airflow::OFF); - break; - case 1: - this->climate->airflow(Airflow::DEFROST); - break; - case 2: - this->climate->airflow(Airflow::BODY); - break; - case 3: - this->climate->airflow(Airflow::FEET); - break; - case 4: - this->climate->airflow(Airflow::DEFROST | Airflow::BODY); - break; - case 5: - this->climate->airflow(Airflow::DEFROST | Airflow::FEET); - break; - case 6: - this->climate->airflow(Airflow::BODY | Airflow::FEET); - break; - case 7: - this->climate->airflow(Airflow::DEFROST | Airflow::BODY | Airflow::FEET); - break; - case 8: - this->climate->fan_speed((rand() % 4) + 1); - break; - case 9: - this->vehicle->sensor(Position::FRONT_LEFT, rand() % 5); - break; - case 10: - this->vehicle->sensor(Position::FRONT_MIDDLE_LEFT, rand() % 5); - break; - case 11: - this->vehicle->sensor(Position::FRONT_MIDDLE_RIGHT, rand() % 5); - break; - case 12: - this->vehicle->sensor(Position::FRONT_RIGHT, rand() % 5); - break; - case 13: - this->vehicle->sensor(Position::BACK_LEFT, rand() % 5); - break; - case 14: - this->vehicle->sensor(Position::BACK_MIDDLE_LEFT, rand() % 5); - break; - case 15: - this->vehicle->sensor(Position::BACK_MIDDLE_RIGHT, rand() % 5); - break; - case 16: - this->vehicle->sensor(Position::BACK_RIGHT, rand() % 5); - break; - case 17: - this->vehicle->door(Position::FRONT_LEFT, toggle); - break; - case 18: - this->vehicle->door(Position::BACK_LEFT, toggle); - break; - case 19: - this->vehicle->door(Position::FRONT_RIGHT, toggle); - break; - case 20: - this->vehicle->door(Position::BACK_RIGHT, toggle); - break; - case 21: - this->vehicle->headlights(toggle); - break; - case 22: - this->vehicle->taillights(toggle); - break; - case 23: - this->vehicle->pressure(Position::BACK_RIGHT, (rand() % 21) + 30); - break; - case 24: - this->vehicle->pressure(Position::BACK_LEFT, (rand() % 21) + 30); - break; - case 25: - this->vehicle->pressure(Position::FRONT_RIGHT, (rand() % 21) + 30); - break; - case 26: - this->vehicle->pressure(Position::FRONT_LEFT, (rand() % 21) + 30); - break; - case 27: - this->vehicle->wheel_steer((rand() % 10) * ((rand() % 2) ? 1 : -1)); - break; - case 28: - this->vehicle->indicators(Position::LEFT, toggle); - break; - case 29: - this->vehicle->indicators(Position::RIGHT, toggle); - break; - case 30: - this->vehicle->hazards(toggle); - break; - default: - toggle = !toggle; - break; - } }); - - timer->start(1000); + switch(rand() % 50) { + case 0: + this->climate->airflow(Airflow::OFF); + break; + case 1: + this->climate->airflow(Airflow::DEFROST); + break; + case 2: + this->climate->airflow(Airflow::BODY); + break; + case 3: + this->climate->airflow(Airflow::FEET); + break; + case 4: + this->climate->airflow(Airflow::DEFROST | Airflow::BODY); + break; + case 5: + this->climate->airflow(Airflow::DEFROST | Airflow::FEET); + break; + case 6: + this->climate->airflow(Airflow::BODY | Airflow::FEET); + break; + case 7: + this->climate->airflow(Airflow::DEFROST | Airflow::BODY | Airflow::FEET); + break; + case 8: + this->climate->fan_speed((rand() % 4) + 1); + break; + case 9: + this->vehicle->sensor(Position::FRONT_LEFT, rand() % 5); + break; + case 10: + this->vehicle->sensor(Position::FRONT_MIDDLE_LEFT, rand() % 5); + break; + case 11: + this->vehicle->sensor(Position::FRONT_MIDDLE_RIGHT, rand() % 5); + break; + case 12: + this->vehicle->sensor(Position::FRONT_RIGHT, rand() % 5); + break; + case 13: + this->vehicle->sensor(Position::BACK_LEFT, rand() % 5); + break; + case 14: + this->vehicle->sensor(Position::BACK_MIDDLE_LEFT, rand() % 5); + break; + case 15: + this->vehicle->sensor(Position::BACK_MIDDLE_RIGHT, rand() % 5); + break; + case 16: + this->vehicle->sensor(Position::BACK_RIGHT, rand() % 5); + break; + case 17: + this->vehicle->door(Position::FRONT_LEFT, toggle); + break; + case 18: + this->vehicle->door(Position::BACK_LEFT, toggle); + break; + case 19: + this->vehicle->door(Position::FRONT_RIGHT, toggle); + break; + case 20: + this->vehicle->door(Position::BACK_RIGHT, toggle); + break; + case 21: + this->vehicle->headlights(toggle); + break; + case 22: + this->vehicle->taillights(toggle); + break; + case 23: + this->vehicle->pressure(Position::BACK_RIGHT, (rand() % 21) + 30); + break; + case 24: + this->vehicle->pressure(Position::BACK_LEFT, (rand() % 21) + 30); + break; + case 25: + this->vehicle->pressure(Position::FRONT_RIGHT, (rand() % 21) + 30); + break; + case 26: + this->vehicle->pressure(Position::FRONT_LEFT, (rand() % 21) + 30); + break; + case 27: + this->vehicle->wheel_steer((rand() % 10) * ((rand() % 2) ? 1 : -1)); + break; + case 28: + this->vehicle->indicators(Position::LEFT, toggle); + break; + case 29: + this->vehicle->indicators(Position::RIGHT, toggle); + break; + case 30: + this->vehicle->hazards(toggle); + break; + default: + toggle = !toggle; + break; + } }); - auto timer2 = new QTimer(this); - connect(timer2, &QTimer::timeout, [this] - { - if (rand() % 10 == 1) { - this->climate->left_temp((rand() % 20) + 60); - this->climate->right_temp((rand() % 20) + 60); - } }); - timer2->start(100000); -*/ + timer->start(1000); + + auto timer2 = new QTimer(this); + connect(timer2, &QTimer::timeout, [this] + { + if (rand() % 10 == 1) { + this->climate->left_temp((rand() % 20) + 60); + this->climate->right_temp((rand() % 20) + 60); + } }); + timer2->start(100000); + */ socketcan(bus); QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame); @@ -206,61 +206,56 @@ void Test::readFrame() { if (dataHex.at(1) == "81") { - //ok AA this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER, Action::ActionState::Triggered); - DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; + // DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; } if (dataHex.at(1) == "82") { - //DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; this->arbiter->set_curr_page(3); + // DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; } if (dataHex.at(1) == "84") { - //non usare temp + // non usare temp DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; } if (dataHex.at(1) == "91") { - //traccia succ AA this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); - DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; + // DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") { - //traccia prec AA this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV, Action::ActionState::Triggered); - DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; + // DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; } } else { if (dataHex.at(1) == "81") { - //DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; + // DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; this->arbiter->set_curr_page(0); } if (dataHex.at(1) == "82") { - //DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + // DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; this->arbiter->set_curr_page(this->arbiter->layout().next_enabled_page(this->arbiter->layout().curr_page)); } if (dataHex.at(1) == "84") { - //non usare temp + // non usare temp DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; } if (dataHex.at(1) == "91") { - //destra AA this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::RIGHT, Action::ActionState::Triggered); - DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; + //DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") { - //sinistra AA this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::LEFT, Action::ActionState::Triggered); - DASH_LOG(info) << "Pulsante in basso a destra\r\n"; + //DASH_LOG(info) << "Pulsante in basso a destra\r\n"; } } } @@ -271,12 +266,12 @@ void Test::readFrame() if (dataHex.at(2).at(1) == "F") { this->arbiter->android_auto().handler->injectButtonPress(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::RIGHT); - //DASH_LOG(info) << "Manopola sinistra SU\r\n"; + // DASH_LOG(info) << "Manopola sinistra SU\r\n"; } else { this->arbiter->android_auto().handler->injectButtonPress(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::LEFT); - //DASH_LOG(info) << "Manopola sinistra GIU\r\n"; + // DASH_LOG(info) << "Manopola sinistra GIU\r\n"; } } @@ -284,12 +279,12 @@ void Test::readFrame() { if (dataHex.at(2).at(1) == "F") { - //DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; + // DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; this->arbiter->decrease_volume(10); } else { - //DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; + // DASH_LOG(info) << "Manopola destra (Volume) SU\r\n"; this->arbiter->increase_volume(10); } } @@ -307,7 +302,7 @@ void Test::readFrame() if (valore_ws != lumws) { - //DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; + // DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; this->arbiter->set_brightness(luminosita_nuova); lumws = valore_ws; } From 07d3ec62579746deeb38a1f5742c85e72133186e Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Apr 2023 16:58:26 +0200 Subject: [PATCH 194/332] ok<->aa page; next/prev track, ok ggle play/pause --- plugins/vehicle/test/test.cpp | 16 ++++++++-------- src/app/pages/vehicle.cpp | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 96cf85b0..f6564fe7 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -206,7 +206,7 @@ void Test::readFrame() { if (dataHex.at(1) == "81") { - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER, Action::ActionState::Triggered); + this->arbiter->set_curr_page(0); // DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; } if (dataHex.at(1) == "82") @@ -221,12 +221,12 @@ void Test::readFrame() } if (dataHex.at(1) == "91") { - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::MICROPHONE_1, Action::ActionState::Triggered); // DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") { - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV, Action::ActionState::Triggered); + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::TOGGLE_PLAY, Action::ActionState::Triggered); // DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; } } @@ -235,7 +235,7 @@ void Test::readFrame() if (dataHex.at(1) == "81") { // DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - this->arbiter->set_curr_page(0); + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER, Action::ActionState::Triggered); } if (dataHex.at(1) == "82") { @@ -249,13 +249,13 @@ void Test::readFrame() } if (dataHex.at(1) == "91") { - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::RIGHT, Action::ActionState::Triggered); - //DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); + // DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; } if (dataHex.at(1) == "92") { - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::LEFT, Action::ActionState::Triggered); - //DASH_LOG(info) << "Pulsante in basso a destra\r\n"; + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV, Action::ActionState::Triggered); + // DASH_LOG(info) << "Pulsante in basso a destra\r\n"; } } } diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index f06d8ddb..1e7357ef 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -8,7 +8,7 @@ GaugesConfig gauges_cfg = { - {"load", "Calculated Engine Load", {"%", "%"}, + {"voltage", "Tensione Batteria", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool _) { return x; } }, {"coolant_temp", "Engine Coolant Temperature", {"°F", "°C"}, From b34a28207b69a8e307908afd86af0d01692e239d Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 29 Apr 2023 00:54:24 +0200 Subject: [PATCH 195/332] prova --- include/app/pages/vehicle.hpp | 2 +- plugins/vehicle/test/test.cpp | 18 +++++++++++++++++- plugins/vehicle/test/test.hpp | 1 + src/app/pages/vehicle.cpp | 4 ++-- src/canbus/socketcanbus.cpp | 25 +++++++++++++++++-------- 5 files changed, 38 insertions(+), 12 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index ddf1bf50..f6f589c8 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -33,7 +33,7 @@ struct GaugeConfig { // typedef QList Gauges; struct GaugesConfig { - GaugeConfig LOAD; + GaugeConfig VOLTAGE; GaugeConfig COOLANT_TEMP; GaugeConfig RPM; GaugeConfig SPEED; diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index f6564fe7..52cd34c9 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -313,7 +313,23 @@ void Test::readFrame() if (canbus == "RX2") { - // this->arbiter->vehicle_update_data("mpg", 18.5); + + // Esempio RX2 0510-0442432E + + if (id == "0510") + { + bool okk; + + uint exCoolant = dataHex[1].toUInt(&okk, 16); + int tempCoolant = (int)(exCoolant) - 40; + + if (ttCool != tempCoolant) + { + DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; + this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); + ttCool = tempCoolant; + } + } } } } diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index e1ae856c..2c1e9d35 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -30,6 +30,7 @@ class Test : public QObject, VehiclePlugin Climate *climate; Vehicle *vehicle; int lumws = 0; + int ttCool = 0; SocketCANBus *bus = nullptr; signals: diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 1e7357ef..14c70bad 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -11,7 +11,7 @@ GaugesConfig gauges_cfg = {"voltage", "Tensione Batteria", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool _) { return x; } }, - {"coolant_temp", "Engine Coolant Temperature", {"°F", "°C"}, + {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, {"rpm", "Engine Revolutions Per Minute (RPM)", {"x1000rpm", "x1000rpm"}, @@ -312,7 +312,7 @@ QWidget *DataTab::engine_data_widget() layout->addStretch(); layout->addWidget(Session::Forge::br()); layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.LOAD)); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.VOLTAGE)); layout->addStretch(); layout->addWidget(Session::Forge::br()); layout->addStretch(); diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index b9ba0a51..52f94fbe 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -19,17 +19,26 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare QString allineamento = "CAN USER ALIGN RIGHT\r\n"; this->socket.write(allineamento.toUtf8()); - QString apertura = "CAN USER OPEN CH1 95K2\r\n"; - this->socket.write(apertura.toUtf8()); + QString aperturaMS = "CAN USER OPEN CH1 95K2\r\n"; + this->socket.write(aperturaMS.toUtf8()); - QString maschera = "CAN USER MASK CH1 0FFF\r\n"; - this->socket.write(maschera.toUtf8()); + QString aperturaHS = "CAN USER OPEN CH2 500K\r\n"; + this->socket.write(aperturaHS.toUtf8()); - QString filtro10 = "CAN USER FILTER CH1 0 0206\r\n"; - this->socket.write(filtro10.toUtf8()); + QString mascheraMS = "CAN USER MASK CH1 0FFF\r\n"; + this->socket.write(mascheraMS.toUtf8()); - QString filtro11 = "CAN USER FILTER CH1 1 0450\r\n"; - this->socket.write(filtro11.toUtf8()); + QString mascheraHS = "CAN USER MASK CH2 0FFF\r\n"; + this->socket.write(mascheraHS.toUtf8()); + + QString filtroPulsantiVolante = "CAN USER FILTER CH1 0 0206\r\n"; + this->socket.write(filtroPulsantiVolante.toUtf8()); + + QString filtroLuminosita = "CAN USER FILTER CH1 1 0450\r\n"; + this->socket.write(filtroLuminosita.toUtf8()); + + QString filtroTempAntigelo = "CAN USER FILTER CH2 0 0510\r\n"; + this->socket.write(filtroTempAntigelo.toUtf8()); DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; } From 99db5725f024206175040fa5f33d5195abfbf755 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 29 Apr 2023 01:02:18 +0200 Subject: [PATCH 196/332] prod temp antigelo --- plugins/vehicle/test/test.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 52cd34c9..bb0b24a7 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -164,7 +164,7 @@ void Test::readFrame() { QString linea = QString(bus->socket.readLine()); - DASH_LOG(info) << "[PLUGIN] CAN-BUS = " << linea.toStdString() << "\n"; + // DASH_LOG(info) << "[PLUGIN] CAN-BUS = " << linea.toStdString() << "\n"; if (linea.contains(" ") && linea.contains("-")) // checks to avoid a split crash { @@ -321,11 +321,11 @@ void Test::readFrame() bool okk; uint exCoolant = dataHex[1].toUInt(&okk, 16); - int tempCoolant = (int)(exCoolant) - 40; + int tempCoolant = (int)(exCoolant)-40; if (ttCool != tempCoolant) { - DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; + // DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); ttCool = tempCoolant; } From f250cb27912018444be1cad852e8feff5191bc10 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 7 May 2023 15:53:04 +0200 Subject: [PATCH 197/332] prova --- include/app/pages/vehicle.hpp | 2 +- plugins/vehicle/test/test.cpp | 27 +++++++++++++++++++++++++++ plugins/vehicle/test/test.hpp | 1 + src/app/pages/vehicle.cpp | 4 ++-- 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index f6f589c8..cc881262 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -36,7 +36,7 @@ struct GaugesConfig { GaugeConfig VOLTAGE; GaugeConfig COOLANT_TEMP; GaugeConfig RPM; - GaugeConfig SPEED; + GaugeConfig AUTONOMIA; GaugeConfig INTAKE_TEMP; GaugeConfig MPG; }; diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index bb0b24a7..61cf5f86 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -307,6 +307,33 @@ void Test::readFrame() lumws = valore_ws; } } + + // Esempio RX1 04EE-46030130 + + if (id == "04EE") + { + bool okk; + + uint due = dataHex[1].toUInt(&okk, 16); + uint tre = dataHex[2].toUInt(&okk, 16); + uint quattro = dataHex[3].toUInt(&okk, 16); + int valore_km = (int)((tre & 255) | (due << 8)); //(data[3] & 255) | (data[2] << 8) + + DASH_LOG(info) << "NUOVA AUTONOMIA:" << QString::number(valore_km).toStdString() << "\r\n"; + + if (tre == 0x10) + valore_km = quattro / 2; + + if (tre != 0x10) + valore_km = (int)(((tre << 8) + quattro) / 2); + + if (valore_km != kmsalvati) + { + DASH_LOG(info) << "NUOVA AUTONOMIA:" << QString::number(valore_km).toStdString() << "\r\n"; + this->arbiter->vehicle_update_data("autonomia", valore_km); + kmsalvati = valore_km; + } + } } // HS-CAN diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 2c1e9d35..be0b4bc0 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -31,6 +31,7 @@ class Test : public QObject, VehiclePlugin Vehicle *vehicle; int lumws = 0; int ttCool = 0; + int kmsalvati = 0; SocketCANBus *bus = nullptr; signals: diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 14c70bad..d4129f1c 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -17,7 +17,7 @@ GaugesConfig gauges_cfg = {"rpm", "Engine Revolutions Per Minute (RPM)", {"x1000rpm", "x1000rpm"}, {0, 24, 12}, 1, [](double x, bool _) { return x / 1000.0; } }, - {"speed", "Vehicle Speed", {"mph", "km/h"}, + {"autonomia", "Autonomia", {"miles", "km"}, {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } }, {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, @@ -261,7 +261,7 @@ QWidget *DataTab::speedo_tach_widget() layout->setContentsMargins(0, 0, 0, 0); layout->addStretch(3); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.SPEED)); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.AUTONOMIA)); layout->addStretch(2); layout->addWidget(this->vehicle_data_widget(gauges_cfg.RPM)); layout->addStretch(1); From 4cb90cabe807d44a5d7b5c226b53b6c5b98447b3 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 7 May 2023 16:09:12 +0200 Subject: [PATCH 198/332] prod autonomia --- plugins/vehicle/test/test.cpp | 13 +++++++------ src/canbus/socketcanbus.cpp | 3 +++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 61cf5f86..7aba43b8 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -317,19 +317,20 @@ void Test::readFrame() uint due = dataHex[1].toUInt(&okk, 16); uint tre = dataHex[2].toUInt(&okk, 16); uint quattro = dataHex[3].toUInt(&okk, 16); - int valore_km = (int)((tre & 255) | (due << 8)); //(data[3] & 255) | (data[2] << 8) - - DASH_LOG(info) << "NUOVA AUTONOMIA:" << QString::number(valore_km).toStdString() << "\r\n"; + int valore_km = 0; if (tre == 0x10) + { valore_km = quattro / 2; - - if (tre != 0x10) + } + else + { valore_km = (int)(((tre << 8) + quattro) / 2); + } if (valore_km != kmsalvati) { - DASH_LOG(info) << "NUOVA AUTONOMIA:" << QString::number(valore_km).toStdString() << "\r\n"; + // DASH_LOG(info) << "NUOVA AUTONOMIA:" << QString::number(valore_km).toStdString() << "\r\n"; this->arbiter->vehicle_update_data("autonomia", valore_km); kmsalvati = valore_km; } diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 52f94fbe..05888468 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -37,6 +37,9 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare QString filtroLuminosita = "CAN USER FILTER CH1 1 0450\r\n"; this->socket.write(filtroLuminosita.toUtf8()); + QString filtroAutonomia = "CAN USER FILTER CH1 2 04EE\r\n"; + this->socket.write(filtroAutonomia.toUtf8()); + QString filtroTempAntigelo = "CAN USER FILTER CH2 0 0510\r\n"; this->socket.write(filtroTempAntigelo.toUtf8()); From fba10192f1e5c9bcee0c7446a5fde621c05ae432 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 8 May 2023 02:05:33 +0200 Subject: [PATCH 199/332] prova --- include/app/pages/vehicle.hpp | 2 +- src/app/pages/vehicle.cpp | 148 +++++++++++++++++----------------- 2 files changed, 74 insertions(+), 76 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index cc881262..4fb93f1f 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -101,7 +101,7 @@ class DataTab : public QWidget { private: Arbiter &arbiter; QWidget *speedo_tach_widget(); - // QWidget *mileage_data_widget(); + QWidget *mileage_data_widget(); QWidget *engine_data_widget(); QWidget *vehicle_data_widget(GaugeConfig cfg); diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index d4129f1c..2b4031c3 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -6,30 +6,23 @@ #include "app/window.hpp" #include "plugins/vehicle_plugin.hpp" -GaugesConfig gauges_cfg = -{ - {"voltage", "Tensione Batteria", {"V", "V"}, - {10, 16, 12}, 1, [](double x, bool _) { return x; } - }, - {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, - {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } - }, - {"rpm", "Engine Revolutions Per Minute (RPM)", {"x1000rpm", "x1000rpm"}, - {0, 24, 12}, 1, [](double x, bool _) { return x / 1000.0; } - }, - {"autonomia", "Autonomia", {"miles", "km"}, - {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } - }, - {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, - {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } - }, - {"mpg", "Petrol consumption", {"mpg", "l/100km"}, - {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::l100km_to_mpg(x); } - } -}; +GaugesConfig gauges_cfg = + { + {"voltage", "Tensione Batteria", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool _) + { return x; }}, + {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) + { return si ? x : Conversion::c_to_f(x); }}, + {"rpm", "Engine Revolutions Per Minute (RPM)", {"x1000rpm", "x1000rpm"}, {0, 24, 12}, 1, [](double x, bool _) + { return x / 1000.0; }}, + {"autonomia", "Autonomia", {"miles", "km"}, {0, 36, 16}, 0, [](double x, bool si) + { return si ? x : Conversion::kph_to_mph(x); }}, + {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) + { return si ? x : Conversion::c_to_f(x); }}, + {"mpg", "Petrol consumption", {"mpg", "l/100km"}, {10, 16, 12}, 1, [](double x, bool si) + { return si ? x : Conversion::l100km_to_mpg(x); }}}; Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) -: QWidget(parent) + : QWidget(parent) { Config *config = Config::get_instance(); @@ -55,11 +48,11 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat unit_label->setFont(unit_font); unit_label->setAlignment(Qt::AlignCenter); - connect(config, &Config::si_units_changed, [this, unit_label](bool si) { + connect(config, &Config::si_units_changed, [this, unit_label](bool si) + { this->si = si; unit_label->setText(this->si ? this->units.second : this->units.first); - value_label->setText(this->null_value()); - }); + value_label->setText(this->null_value()); }); layout->addStretch(6); layout->addWidget(value_label); @@ -68,8 +61,9 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat layout->addStretch(4); } -void Gauge::set_value(int value){ - DASH_LOG(debug)<<"[Gauges] set_value: "<setText(this->format_value(this->converter(value, this->si))); } @@ -93,8 +87,7 @@ QString Gauge::null_value() } VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) - : QTabWidget(parent) - , Page(arbiter, "Vehicle", "directions_car", true, this) + : QTabWidget(parent), Page(arbiter, "Vehicle", "directions_car", true, this) { } @@ -114,13 +107,15 @@ void VehiclePage::init() Dialog *dialog = new Dialog(this->arbiter, true, this->window()); dialog->set_body(this->dialog_body()); QPushButton *load_button = new QPushButton("load"); - connect(load_button, &QPushButton::clicked, [this]() { this->load_plugin(); }); + connect(load_button, &QPushButton::clicked, [this]() + { this->load_plugin(); }); dialog->set_button(load_button); QPushButton *settings_button = new QPushButton(this); settings_button->setFlat(true); this->arbiter.forge().iconize("settings", settings_button, 24); - connect(settings_button, &QPushButton::clicked, [dialog]() { dialog->open(); }); + connect(settings_button, &QPushButton::clicked, [dialog]() + { dialog->open(); }); this->setCornerWidget(settings_button); this->load_plugin(); @@ -141,12 +136,10 @@ QWidget *VehiclePage::dialog_body() QStringList devices = this->config->get_vehicle_can_bus() ? this->can_devices : this->serial_devices; Selector *interface_selector = new Selector(devices, this->config->get_vehicle_interface(), this->arbiter.forge().font(14), this->arbiter, widget, "disabled"); interface_selector->setVisible((this->can_devices.size() > 0) || (this->serial_devices.size() > 0)); - connect(interface_selector, &Selector::item_changed, [config = this->config](QString item){ - config->set_vehicle_interface(item); - }); - connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state){ - interface_selector->set_options(state ? this->can_devices : this->serial_devices); - }); + connect(interface_selector, &Selector::item_changed, [config = this->config](QString item) + { config->set_vehicle_interface(item); }); + connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state) + { interface_selector->set_options(state ? this->can_devices : this->serial_devices); }); layout->addWidget(interface_selector, 1); layout->addWidget(Session::Forge::br(), 1); @@ -169,9 +162,8 @@ QWidget *VehiclePage::can_bus_toggle_row() QRadioButton *socketcan_button = new QRadioButton("SocketCAN", group); socketcan_button->setChecked(this->config->get_vehicle_can_bus()); socketcan_button->setEnabled(this->can_devices.size() > 0); - connect(socketcan_button, &QRadioButton::clicked, [config = this->config]{ - config->set_vehicle_can_bus(true); - }); + connect(socketcan_button, &QRadioButton::clicked, [config = this->config] + { config->set_vehicle_can_bus(true); }); group_layout->addWidget(socketcan_button); layout->addWidget(group, 1, Qt::AlignHCenter); @@ -190,7 +182,8 @@ QWidget *VehiclePage::si_units_row_widget() Switch *toggle = new Switch(widget); toggle->scale(this->arbiter.layout().scale); toggle->setChecked(this->config->get_si_units()); - connect(toggle, &Switch::stateChanged, [config = this->config](bool state) { config->set_si_units(state); }); + connect(toggle, &Switch::stateChanged, [config = this->config](bool state) + { config->set_si_units(state); }); layout->addWidget(toggle, 1, Qt::AlignHCenter); return widget; @@ -198,7 +191,8 @@ QWidget *VehiclePage::si_units_row_widget() void VehiclePage::get_plugins() { - for (const QFileInfo &plugin : Session::plugin_dir("vehicle").entryInfoList(QDir::Files)) { + for (const QFileInfo &plugin : Session::plugin_dir("vehicle").entryInfoList(QDir::Files)) + { if (QLibrary::isLibrary(plugin.absoluteFilePath())) this->plugins[Session::fmt_plugin(plugin.baseName())] = plugin; } @@ -210,10 +204,12 @@ void VehiclePage::load_plugin() this->active_plugin->unload(); QString key = this->plugin_selector->get_current(); - if (!key.isNull()) { + if (!key.isNull()) + { this->active_plugin->setFileName(this->plugins[key].absoluteFilePath()); - if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) { + if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) + { plugin->dashize(&this->arbiter); plugin->init(((SocketCANBus *)SocketCANBus::get_instance())); for (QWidget *tab : plugin->widgets()) @@ -224,8 +220,7 @@ void VehiclePage::load_plugin() } DataTab::DataTab(Arbiter &arbiter, QWidget *parent) - : QWidget(parent) - , arbiter(arbiter) + : QWidget(parent), arbiter(arbiter) { QHBoxLayout *layout = new QHBoxLayout(this); @@ -243,15 +238,15 @@ DataTab::DataTab(Arbiter &arbiter, QWidget *parent) sp_right.setHorizontalStretch(2); engine_data->setSizePolicy(sp_right); - connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, int value){ + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, int value) + { // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { if(gauge->get_id() == gauge_id){ // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); gauge->set_value(value); } - } - }); + } }); } QWidget *DataTab::speedo_tach_widget() @@ -270,35 +265,37 @@ QWidget *DataTab::speedo_tach_widget() } /* socketcan/elm327 rewrite right now only has support for one PID per gauge, so we can't calculate milage at this point. - This is because gauges act more as event handlers now for each PID. + This is because gauges act more as event handlers now for each PID. Multi-PID gauges could feasibly be reimplemented if there was a helper method that stored received values, and only calls the gauge update once all values have been updated since last gauge update. */ -// QWidget *DataTab::mileage_data_widget() -// { -// QWidget *widget = new QWidget(this); -// QHBoxLayout *layout = new QHBoxLayout(widget); -// -// QFont value_font(Theme::font_36); -// value_font.setFamily("Titillium Web"); -// -// QFont unit_font(Theme::font_14); -// unit_font.setWeight(QFont::Light); -// unit_font.setItalic(true); -// -// Gauge *mileage = new Gauge({"mpg", "km/L"}, value_font, unit_font, -// Gauge::BOTTOM, 100, {gauges_cfg.SPEED, gauges_cfg.MAF}, 1, -// [](std::vector x, bool si) { -// return (si ? x[0] : kph_to_mph(x[0])) / (si ? gps_to_lph(x[1]) : gps_to_gph(x[1])); -// }, -// widget); -// layout->addWidget(mileage); -// this->gauges.push_back(mileage); - -// return widget; -// } +QWidget *DataTab::mileage_data_widget() +{ + QWidget *widget = new QWidget(this); + QHBoxLayout *layout = new QHBoxLayout(widget); + + QFont value_font(Theme::font_36); + value_font.setFamily("Titillium Web"); + + QFont unit_font(Theme::font_14); + unit_font.setWeight(QFont::Light); + unit_font.setItalic(true); + + Gauge *mileage = new Gauge( + {"mpg", "km/L"}, value_font, unit_font, + Gauge::BOTTOM, 100, {gauges_cfg.SPEED, gauges_cfg.MAF}, 1, + [](std::vector x, bool si) + { + return (si ? x[0] : kph_to_mph(x[0])) / (si ? gps_to_lph(x[1]) : gps_to_gph(x[1])); + }, + widget); + layout->addWidget(mileage); + this->gauges.push_back(mileage); + + return widget; +} QWidget *DataTab::engine_data_widget() { @@ -336,11 +333,12 @@ QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) unit_font.setItalic(true); Gauge *gauge = new Gauge(cfg, - value_font, unit_font, Gauge::RIGHT, widget); + value_font, unit_font, Gauge::RIGHT, widget); layout->addWidget(gauge); this->gauges.push_back(gauge); - if (cfg.font_size.label > 0) { + if (cfg.font_size.label > 0) + { QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); label_font.setWeight(QFont::Light); From e9696930766685593d580531d5a6f689ccefdac6 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 8 May 2023 02:08:33 +0200 Subject: [PATCH 200/332] come prima --- include/app/pages/vehicle.hpp | 2 +- src/app/pages/vehicle.cpp | 148 +++++++++++++++++----------------- 2 files changed, 76 insertions(+), 74 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 4fb93f1f..cc881262 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -101,7 +101,7 @@ class DataTab : public QWidget { private: Arbiter &arbiter; QWidget *speedo_tach_widget(); - QWidget *mileage_data_widget(); + // QWidget *mileage_data_widget(); QWidget *engine_data_widget(); QWidget *vehicle_data_widget(GaugeConfig cfg); diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 2b4031c3..d4129f1c 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -6,23 +6,30 @@ #include "app/window.hpp" #include "plugins/vehicle_plugin.hpp" -GaugesConfig gauges_cfg = - { - {"voltage", "Tensione Batteria", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool _) - { return x; }}, - {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) - { return si ? x : Conversion::c_to_f(x); }}, - {"rpm", "Engine Revolutions Per Minute (RPM)", {"x1000rpm", "x1000rpm"}, {0, 24, 12}, 1, [](double x, bool _) - { return x / 1000.0; }}, - {"autonomia", "Autonomia", {"miles", "km"}, {0, 36, 16}, 0, [](double x, bool si) - { return si ? x : Conversion::kph_to_mph(x); }}, - {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) - { return si ? x : Conversion::c_to_f(x); }}, - {"mpg", "Petrol consumption", {"mpg", "l/100km"}, {10, 16, 12}, 1, [](double x, bool si) - { return si ? x : Conversion::l100km_to_mpg(x); }}}; +GaugesConfig gauges_cfg = +{ + {"voltage", "Tensione Batteria", {"V", "V"}, + {10, 16, 12}, 1, [](double x, bool _) { return x; } + }, + {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, + {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } + }, + {"rpm", "Engine Revolutions Per Minute (RPM)", {"x1000rpm", "x1000rpm"}, + {0, 24, 12}, 1, [](double x, bool _) { return x / 1000.0; } + }, + {"autonomia", "Autonomia", {"miles", "km"}, + {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } + }, + {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, + {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } + }, + {"mpg", "Petrol consumption", {"mpg", "l/100km"}, + {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::l100km_to_mpg(x); } + } +}; Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) - : QWidget(parent) +: QWidget(parent) { Config *config = Config::get_instance(); @@ -48,11 +55,11 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat unit_label->setFont(unit_font); unit_label->setAlignment(Qt::AlignCenter); - connect(config, &Config::si_units_changed, [this, unit_label](bool si) - { + connect(config, &Config::si_units_changed, [this, unit_label](bool si) { this->si = si; unit_label->setText(this->si ? this->units.second : this->units.first); - value_label->setText(this->null_value()); }); + value_label->setText(this->null_value()); + }); layout->addStretch(6); layout->addWidget(value_label); @@ -61,9 +68,8 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat layout->addStretch(4); } -void Gauge::set_value(int value) -{ - DASH_LOG(debug) << "[Gauges] set_value: " << std::to_string(value); +void Gauge::set_value(int value){ + DASH_LOG(debug)<<"[Gauges] set_value: "<setText(this->format_value(this->converter(value, this->si))); } @@ -87,7 +93,8 @@ QString Gauge::null_value() } VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) - : QTabWidget(parent), Page(arbiter, "Vehicle", "directions_car", true, this) + : QTabWidget(parent) + , Page(arbiter, "Vehicle", "directions_car", true, this) { } @@ -107,15 +114,13 @@ void VehiclePage::init() Dialog *dialog = new Dialog(this->arbiter, true, this->window()); dialog->set_body(this->dialog_body()); QPushButton *load_button = new QPushButton("load"); - connect(load_button, &QPushButton::clicked, [this]() - { this->load_plugin(); }); + connect(load_button, &QPushButton::clicked, [this]() { this->load_plugin(); }); dialog->set_button(load_button); QPushButton *settings_button = new QPushButton(this); settings_button->setFlat(true); this->arbiter.forge().iconize("settings", settings_button, 24); - connect(settings_button, &QPushButton::clicked, [dialog]() - { dialog->open(); }); + connect(settings_button, &QPushButton::clicked, [dialog]() { dialog->open(); }); this->setCornerWidget(settings_button); this->load_plugin(); @@ -136,10 +141,12 @@ QWidget *VehiclePage::dialog_body() QStringList devices = this->config->get_vehicle_can_bus() ? this->can_devices : this->serial_devices; Selector *interface_selector = new Selector(devices, this->config->get_vehicle_interface(), this->arbiter.forge().font(14), this->arbiter, widget, "disabled"); interface_selector->setVisible((this->can_devices.size() > 0) || (this->serial_devices.size() > 0)); - connect(interface_selector, &Selector::item_changed, [config = this->config](QString item) - { config->set_vehicle_interface(item); }); - connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state) - { interface_selector->set_options(state ? this->can_devices : this->serial_devices); }); + connect(interface_selector, &Selector::item_changed, [config = this->config](QString item){ + config->set_vehicle_interface(item); + }); + connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state){ + interface_selector->set_options(state ? this->can_devices : this->serial_devices); + }); layout->addWidget(interface_selector, 1); layout->addWidget(Session::Forge::br(), 1); @@ -162,8 +169,9 @@ QWidget *VehiclePage::can_bus_toggle_row() QRadioButton *socketcan_button = new QRadioButton("SocketCAN", group); socketcan_button->setChecked(this->config->get_vehicle_can_bus()); socketcan_button->setEnabled(this->can_devices.size() > 0); - connect(socketcan_button, &QRadioButton::clicked, [config = this->config] - { config->set_vehicle_can_bus(true); }); + connect(socketcan_button, &QRadioButton::clicked, [config = this->config]{ + config->set_vehicle_can_bus(true); + }); group_layout->addWidget(socketcan_button); layout->addWidget(group, 1, Qt::AlignHCenter); @@ -182,8 +190,7 @@ QWidget *VehiclePage::si_units_row_widget() Switch *toggle = new Switch(widget); toggle->scale(this->arbiter.layout().scale); toggle->setChecked(this->config->get_si_units()); - connect(toggle, &Switch::stateChanged, [config = this->config](bool state) - { config->set_si_units(state); }); + connect(toggle, &Switch::stateChanged, [config = this->config](bool state) { config->set_si_units(state); }); layout->addWidget(toggle, 1, Qt::AlignHCenter); return widget; @@ -191,8 +198,7 @@ QWidget *VehiclePage::si_units_row_widget() void VehiclePage::get_plugins() { - for (const QFileInfo &plugin : Session::plugin_dir("vehicle").entryInfoList(QDir::Files)) - { + for (const QFileInfo &plugin : Session::plugin_dir("vehicle").entryInfoList(QDir::Files)) { if (QLibrary::isLibrary(plugin.absoluteFilePath())) this->plugins[Session::fmt_plugin(plugin.baseName())] = plugin; } @@ -204,12 +210,10 @@ void VehiclePage::load_plugin() this->active_plugin->unload(); QString key = this->plugin_selector->get_current(); - if (!key.isNull()) - { + if (!key.isNull()) { this->active_plugin->setFileName(this->plugins[key].absoluteFilePath()); - if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) - { + if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) { plugin->dashize(&this->arbiter); plugin->init(((SocketCANBus *)SocketCANBus::get_instance())); for (QWidget *tab : plugin->widgets()) @@ -220,7 +224,8 @@ void VehiclePage::load_plugin() } DataTab::DataTab(Arbiter &arbiter, QWidget *parent) - : QWidget(parent), arbiter(arbiter) + : QWidget(parent) + , arbiter(arbiter) { QHBoxLayout *layout = new QHBoxLayout(this); @@ -238,15 +243,15 @@ DataTab::DataTab(Arbiter &arbiter, QWidget *parent) sp_right.setHorizontalStretch(2); engine_data->setSizePolicy(sp_right); - connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, int value) - { + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, int value){ // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { if(gauge->get_id() == gauge_id){ // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); gauge->set_value(value); } - } }); + } + }); } QWidget *DataTab::speedo_tach_widget() @@ -265,37 +270,35 @@ QWidget *DataTab::speedo_tach_widget() } /* socketcan/elm327 rewrite right now only has support for one PID per gauge, so we can't calculate milage at this point. - This is because gauges act more as event handlers now for each PID. + This is because gauges act more as event handlers now for each PID. Multi-PID gauges could feasibly be reimplemented if there was a helper method that stored received values, and only calls the gauge update once all values have been updated since last gauge update. */ -QWidget *DataTab::mileage_data_widget() -{ - QWidget *widget = new QWidget(this); - QHBoxLayout *layout = new QHBoxLayout(widget); - - QFont value_font(Theme::font_36); - value_font.setFamily("Titillium Web"); - - QFont unit_font(Theme::font_14); - unit_font.setWeight(QFont::Light); - unit_font.setItalic(true); - - Gauge *mileage = new Gauge( - {"mpg", "km/L"}, value_font, unit_font, - Gauge::BOTTOM, 100, {gauges_cfg.SPEED, gauges_cfg.MAF}, 1, - [](std::vector x, bool si) - { - return (si ? x[0] : kph_to_mph(x[0])) / (si ? gps_to_lph(x[1]) : gps_to_gph(x[1])); - }, - widget); - layout->addWidget(mileage); - this->gauges.push_back(mileage); - - return widget; -} +// QWidget *DataTab::mileage_data_widget() +// { +// QWidget *widget = new QWidget(this); +// QHBoxLayout *layout = new QHBoxLayout(widget); +// +// QFont value_font(Theme::font_36); +// value_font.setFamily("Titillium Web"); +// +// QFont unit_font(Theme::font_14); +// unit_font.setWeight(QFont::Light); +// unit_font.setItalic(true); +// +// Gauge *mileage = new Gauge({"mpg", "km/L"}, value_font, unit_font, +// Gauge::BOTTOM, 100, {gauges_cfg.SPEED, gauges_cfg.MAF}, 1, +// [](std::vector x, bool si) { +// return (si ? x[0] : kph_to_mph(x[0])) / (si ? gps_to_lph(x[1]) : gps_to_gph(x[1])); +// }, +// widget); +// layout->addWidget(mileage); +// this->gauges.push_back(mileage); + +// return widget; +// } QWidget *DataTab::engine_data_widget() { @@ -333,12 +336,11 @@ QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) unit_font.setItalic(true); Gauge *gauge = new Gauge(cfg, - value_font, unit_font, Gauge::RIGHT, widget); + value_font, unit_font, Gauge::RIGHT, widget); layout->addWidget(gauge); this->gauges.push_back(gauge); - if (cfg.font_size.label > 0) - { + if (cfg.font_size.label > 0) { QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); label_font.setWeight(QFont::Light); From f276251af20f853fbb774abd3353ef2804496426 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 12 May 2023 19:20:54 +0200 Subject: [PATCH 201/332] prova --- plugins/vehicle/test/test.cpp | 94 +++++++++++++++-------------------- 1 file changed, 39 insertions(+), 55 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 7aba43b8..7766f368 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -173,16 +173,19 @@ void Test::readFrame() QString id = linea.split(" ")[1].split("-")[0]; QString data = linea.split(" ")[1].split("-")[1]; - QStringList dataHex; + uint8_t canMsg[8]; QString duo; + int j = 0; + bool ok; for (int i = 0; i < data.length(); i++) { if (i % 2 == 0 && i != 0) { - dataHex.append(duo); + canMsg[j] = duo.toUInt(&ok, 16); duo = ""; + j++; } duo.append(data[i]); } @@ -196,74 +199,65 @@ void Test::readFrame() if (id == "0206") { - if (dataHex.at(0) == "00") + if (canMsg[0] == 0x00) { - bool ok; - - uint temprem = dataHex[2].toUInt(&ok, 16); - - if (ok == true && temprem > 4) + if (ok == true && canMsg[2] > 4) { - if (dataHex.at(1) == "81") + switch (canMsg[1]) { + case 0x81: this->arbiter->set_curr_page(0); // DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; - } - if (dataHex.at(1) == "82") - { + break; + case 0x82: this->arbiter->set_curr_page(3); // DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; - } - if (dataHex.at(1) == "84") - { + break; + case 0x84: // non usare temp DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; - } - if (dataHex.at(1) == "91") - { + break; + case 0x91: this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::MICROPHONE_1, Action::ActionState::Triggered); // DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; - } - if (dataHex.at(1) == "92") - { + break; + case 0x92: this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::TOGGLE_PLAY, Action::ActionState::Triggered); // DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; + break; } } else { - if (dataHex.at(1) == "81") + switch (canMsg[1]) { + case 0x81: // DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER, Action::ActionState::Triggered); - } - if (dataHex.at(1) == "82") - { - // DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + break; + case 0x82: // DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; this->arbiter->set_curr_page(this->arbiter->layout().next_enabled_page(this->arbiter->layout().curr_page)); - } - if (dataHex.at(1) == "84") - { + break; + case 0x84: // non usare temp DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; - } - if (dataHex.at(1) == "91") - { + break; + case 0x91: this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); // DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; - } - if (dataHex.at(1) == "92") - { + break; + case 0x92: this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV, Action::ActionState::Triggered); // DASH_LOG(info) << "Pulsante in basso a destra\r\n"; + break; } } } - if (dataHex.at(0) == "08") + if (canMsg[0] == 0x08) { - if (dataHex.at(1) == "83") + if (canMsg[1] == 0x83) { - if (dataHex.at(2).at(1) == "F") + if (canMsg[2] == 0xFF) { this->arbiter->android_auto().handler->injectButtonPress(aasdk::proto::enums::ButtonCode::SCROLL_WHEEL, openauto::projection::WheelDirection::RIGHT); // DASH_LOG(info) << "Manopola sinistra SU\r\n"; @@ -275,9 +269,9 @@ void Test::readFrame() } } - if (dataHex.at(1) == "93") + if (canMsg[1] == 0x93) { - if (dataHex.at(2).at(1) == "F") + if (canMsg[2] == 0xFF) { // DASH_LOG(info) << "Manopola destra (Volume) GIU\r\n"; this->arbiter->decrease_volume(10); @@ -295,10 +289,7 @@ void Test::readFrame() if (id == "0450") { - bool okk; - - uint luminosita_nuova = dataHex[3].toUInt(&okk, 16); - int valore_ws = (int)(luminosita_nuova / 25.5); + int valore_ws = (int)(canMsg[3] / 25.5); if (valore_ws != lumws) { @@ -312,20 +303,15 @@ void Test::readFrame() if (id == "04EE") { - bool okk; - - uint due = dataHex[1].toUInt(&okk, 16); - uint tre = dataHex[2].toUInt(&okk, 16); - uint quattro = dataHex[3].toUInt(&okk, 16); int valore_km = 0; - if (tre == 0x10) + if (canMsg[2] == 0x10) { - valore_km = quattro / 2; + valore_km = canMsg[3] / 2; } else { - valore_km = (int)(((tre << 8) + quattro) / 2); + valore_km = (int)(((canMsg[2] << 8) + canMsg[3]) / 2); } if (valore_km != kmsalvati) @@ -346,10 +332,8 @@ void Test::readFrame() if (id == "0510") { - bool okk; - uint exCoolant = dataHex[1].toUInt(&okk, 16); - int tempCoolant = (int)(exCoolant)-40; + int tempCoolant = (int)(canMsg[1]) - 40; if (ttCool != tempCoolant) { From 662942799f9b26bd4a2b8981f0bdb846df1ed255 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 12 May 2023 19:26:06 +0200 Subject: [PATCH 202/332] prova --- plugins/vehicle/test/test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 7766f368..6ae340e9 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -201,7 +201,7 @@ void Test::readFrame() { if (canMsg[0] == 0x00) { - if (ok == true && canMsg[2] > 4) + if (canMsg[2] > 4) { switch (canMsg[1]) { @@ -294,7 +294,7 @@ void Test::readFrame() if (valore_ws != lumws) { // DASH_LOG(info) << "NUOVA LUMINOSITA:" << QString::number(valore_ws).toStdString() << "\r\n"; - this->arbiter->set_brightness(luminosita_nuova); + this->arbiter->set_brightness(canMsg[3]); lumws = valore_ws; } } From 4cf1af0bc68fcf88070850012eec6f9f0673ee60 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 12 May 2023 19:41:07 +0200 Subject: [PATCH 203/332] prova --- include/app/pages/vehicle.hpp | 4 ++-- src/app/pages/vehicle.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index cc881262..0295dc65 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -33,10 +33,10 @@ struct GaugeConfig { // typedef QList Gauges; struct GaugesConfig { - GaugeConfig VOLTAGE; + GaugeConfig AUTONOMIA; GaugeConfig COOLANT_TEMP; GaugeConfig RPM; - GaugeConfig AUTONOMIA; + GaugeConfig SPEED; GaugeConfig INTAKE_TEMP; GaugeConfig MPG; }; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index d4129f1c..b84a56ee 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -8,7 +8,7 @@ GaugesConfig gauges_cfg = { - {"voltage", "Tensione Batteria", {"V", "V"}, + {"autonomia", "Autonomia", {"Miles", "Km"}, {10, 16, 12}, 1, [](double x, bool _) { return x; } }, {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, @@ -17,7 +17,7 @@ GaugesConfig gauges_cfg = {"rpm", "Engine Revolutions Per Minute (RPM)", {"x1000rpm", "x1000rpm"}, {0, 24, 12}, 1, [](double x, bool _) { return x / 1000.0; } }, - {"autonomia", "Autonomia", {"miles", "km"}, + {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } }, {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, @@ -261,7 +261,7 @@ QWidget *DataTab::speedo_tach_widget() layout->setContentsMargins(0, 0, 0, 0); layout->addStretch(3); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.AUTONOMIA)); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.SPEED)); layout->addStretch(2); layout->addWidget(this->vehicle_data_widget(gauges_cfg.RPM)); layout->addStretch(1); @@ -312,7 +312,7 @@ QWidget *DataTab::engine_data_widget() layout->addStretch(); layout->addWidget(Session::Forge::br()); layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.VOLTAGE)); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.AUTONOMIA)); layout->addStretch(); layout->addWidget(Session::Forge::br()); layout->addStretch(); From 25a16cd401ba20c35b548f1adb779b54f2ce7722 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 12 May 2023 20:02:18 +0200 Subject: [PATCH 204/332] prova --- plugins/vehicle/test/test.cpp | 19 +++++++++++++++++++ plugins/vehicle/test/test.hpp | 2 ++ src/app/pages/vehicle.cpp | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 6ae340e9..cd5fbc3f 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -195,6 +195,25 @@ void Test::readFrame() if (canbus == "RX1") { + // Esempio RX1 04E8-460F0D18000001 + + if (id == "04E8") + { + int rpm = (int)(((canMsg[2]<<8)+canMsg[3])>>2); //tachometer=((2_byte<<8)+3_byte)>>2 + int velocita = (int)(((canMsg[5]<<1)&0xFE)+((canMsg[6]>>7)&0x01)); //speed=((5_bytes<<1)&0xFE)+((6_bytes>>7)&0x01) + + if (velocita != velsalvata) + { + this->arbiter->vehicle_update_data("speed", velocita); + velsalvata = velocita; + } + if (rpm != rpmsalvati) + { + this->arbiter->vehicle_update_data("rpm", rpm); + rpmsalvati = rpm; + } + } + // Esempio RX1 0206-008401 if (id == "0206") diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index be0b4bc0..3b7da847 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -32,6 +32,8 @@ class Test : public QObject, VehiclePlugin int lumws = 0; int ttCool = 0; int kmsalvati = 0; + int rpmsalvati = 0; + int velsalvata = 0; SocketCANBus *bus = nullptr; signals: diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index b84a56ee..c672ae74 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -14,7 +14,7 @@ GaugesConfig gauges_cfg = {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, - {"rpm", "Engine Revolutions Per Minute (RPM)", {"x1000rpm", "x1000rpm"}, + {"rpm", "Engine Revolutions Per Minute (RPM)", {"rpm", "rpm"}, {0, 24, 12}, 1, [](double x, bool _) { return x / 1000.0; } }, {"speed", "Velocità", {"mph", "km/h"}, From 19b5ac5713504b3ebfef70e49a3675bb96007369 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 12 May 2023 20:32:41 +0200 Subject: [PATCH 205/332] prova --- plugins/vehicle/test/test.cpp | 5 ++++- src/canbus/socketcanbus.cpp | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index cd5fbc3f..ce0dd94f 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -200,7 +200,7 @@ void Test::readFrame() if (id == "04E8") { int rpm = (int)(((canMsg[2]<<8)+canMsg[3])>>2); //tachometer=((2_byte<<8)+3_byte)>>2 - int velocita = (int)(((canMsg[5]<<1)&0xFE)+((canMsg[6]>>7)&0x01)); //speed=((5_bytes<<1)&0xFE)+((6_bytes>>7)&0x01) + int velocita = (int)(((canMsg[4]<<1)&0xFE)+((canMsg[5]>>7)&0x01)); //speed=((5_bytes<<1)&0xFE)+((6_bytes>>7)&0x01) if (velocita != velsalvata) { @@ -212,6 +212,9 @@ void Test::readFrame() this->arbiter->vehicle_update_data("rpm", rpm); rpmsalvati = rpm; } + + DASH_LOG(info) << "VELOCITA:" << QString::number(velocita).toStdString() << "\r\n"; + DASH_LOG(info) << "RPM:" << QString::number(rpm).toStdString() << "\r\n"; } // Esempio RX1 0206-008401 diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 05888468..36393505 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -40,6 +40,9 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare QString filtroAutonomia = "CAN USER FILTER CH1 2 04EE\r\n"; this->socket.write(filtroAutonomia.toUtf8()); + QString filtroRPMeVel = "CAN USER FILTER CH1 3 04E8\r\n"; + this->socket.write(filtroRPMeVel.toUtf8()); + QString filtroTempAntigelo = "CAN USER FILTER CH2 0 0510\r\n"; this->socket.write(filtroTempAntigelo.toUtf8()); From 06a0a81c6d6c75669fb72d34f6327fc657015b4c Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 12 May 2023 20:34:49 +0200 Subject: [PATCH 206/332] prova --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index c672ae74..33286d22 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -15,7 +15,7 @@ GaugesConfig gauges_cfg = {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, {"rpm", "Engine Revolutions Per Minute (RPM)", {"rpm", "rpm"}, - {0, 24, 12}, 1, [](double x, bool _) { return x / 1000.0; } + {0, 24, 12}, 1, [](double x, bool _) { return x} }, {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } From f0588d087d1a3dbff1189251207aa125a49f074f Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 12 May 2023 20:35:53 +0200 Subject: [PATCH 207/332] prova --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 33286d22..76ddac9b 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -15,7 +15,7 @@ GaugesConfig gauges_cfg = {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, {"rpm", "Engine Revolutions Per Minute (RPM)", {"rpm", "rpm"}, - {0, 24, 12}, 1, [](double x, bool _) { return x} + {0, 24, 12}, 1, [](double x, bool _) { return x; } }, {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } From 9c9d7d5daa4d1c8f68ce609e00abce528f99a0d2 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 12 May 2023 20:38:10 +0200 Subject: [PATCH 208/332] prova --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 76ddac9b..e600252c 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -15,7 +15,7 @@ GaugesConfig gauges_cfg = {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, {"rpm", "Engine Revolutions Per Minute (RPM)", {"rpm", "rpm"}, - {0, 24, 12}, 1, [](double x, bool _) { return x; } + {0, 24, 12}, 1, [](int x, bool _) { return x; } }, {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } From cc9e7e183e596e522916da99d60e9e35aad6913b Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 12 May 2023 20:40:56 +0200 Subject: [PATCH 209/332] prova --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index e600252c..0475154c 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -15,7 +15,7 @@ GaugesConfig gauges_cfg = {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, {"rpm", "Engine Revolutions Per Minute (RPM)", {"rpm", "rpm"}, - {0, 24, 12}, 1, [](int x, bool _) { return x; } + {0, 24, 12}, 1, [](int x, bool _) { return (int)x; } }, {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } From 62393030155a9bda202650a9fe0fe47c5d5db511 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 12 May 2023 20:49:25 +0200 Subject: [PATCH 210/332] prova --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 0475154c..0d360c4d 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -15,7 +15,7 @@ GaugesConfig gauges_cfg = {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, {"rpm", "Engine Revolutions Per Minute (RPM)", {"rpm", "rpm"}, - {0, 24, 12}, 1, [](int x, bool _) { return (int)x; } + {0, 24, 12}, 0, [](double x, bool _) { return x; } }, {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } From 06dd259b012bd9a4ff820d1b71d490a361376e69 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 02:26:48 +0200 Subject: [PATCH 211/332] prova --- include/app/pages/vehicle.hpp | 2 +- plugins/vehicle/test/test.cpp | 21 +++++++++++++++++---- plugins/vehicle/test/test.hpp | 1 + src/app/pages/vehicle.cpp | 8 ++++---- src/canbus/socketcanbus.cpp | 3 +++ 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 0295dc65..c10b1a5e 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -38,7 +38,7 @@ struct GaugesConfig { GaugeConfig RPM; GaugeConfig SPEED; GaugeConfig INTAKE_TEMP; - GaugeConfig MPG; + GaugeConfig EXT_TEMP; }; class Gauge : public QWidget { diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index ce0dd94f..71ddb654 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -199,8 +199,8 @@ void Test::readFrame() if (id == "04E8") { - int rpm = (int)(((canMsg[2]<<8)+canMsg[3])>>2); //tachometer=((2_byte<<8)+3_byte)>>2 - int velocita = (int)(((canMsg[4]<<1)&0xFE)+((canMsg[5]>>7)&0x01)); //speed=((5_bytes<<1)&0xFE)+((6_bytes>>7)&0x01) + int rpm = (int)(((canMsg[2] << 8) + canMsg[3]) >> 2); // tachometer=((2_byte<<8)+3_byte)>>2 + int velocita = (int)(((canMsg[4] << 1) & 0xFE) + ((canMsg[5] >> 7) & 0x01)); // speed=((5_bytes<<1)&0xFE)+((6_bytes>>7)&0x01) if (velocita != velsalvata) { @@ -213,8 +213,8 @@ void Test::readFrame() rpmsalvati = rpm; } - DASH_LOG(info) << "VELOCITA:" << QString::number(velocita).toStdString() << "\r\n"; - DASH_LOG(info) << "RPM:" << QString::number(rpm).toStdString() << "\r\n"; + // DASH_LOG(info) << "VELOCITA:" << QString::number(velocita).toStdString() << "\r\n"; + // DASH_LOG(info) << "RPM:" << QString::number(rpm).toStdString() << "\r\n"; } // Esempio RX1 0206-008401 @@ -343,6 +343,19 @@ void Test::readFrame() kmsalvati = valore_km; } } + + // Esempio RX1 0682-46017A + + if (id == "0682") + { + int temp = (int) canMsg[2]; + + if (temp != tempsalvata) + { + this->arbiter->vehicle_update_data("ext_temp", temp); + tempsalvata = temp; + } + } } // HS-CAN diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 3b7da847..bacd34e1 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -34,6 +34,7 @@ class Test : public QObject, VehiclePlugin int kmsalvati = 0; int rpmsalvati = 0; int velsalvata = 0; + double tempsalvata = 0; SocketCANBus *bus = nullptr; signals: diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 0d360c4d..4ebbff64 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -14,7 +14,7 @@ GaugesConfig gauges_cfg = {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, - {"rpm", "Engine Revolutions Per Minute (RPM)", {"rpm", "rpm"}, + {"rpm", "Giri al Minuto (RPM)", {"rpm", "rpm"}, {0, 24, 12}, 0, [](double x, bool _) { return x; } }, {"speed", "Velocità", {"mph", "km/h"}, @@ -23,8 +23,8 @@ GaugesConfig gauges_cfg = {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, - {"mpg", "Petrol consumption", {"mpg", "l/100km"}, - {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::l100km_to_mpg(x); } + {"ext_temp", "Temperatura Esterna", {"°F", "°C"}, + {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } } }; @@ -316,7 +316,7 @@ QWidget *DataTab::engine_data_widget() layout->addStretch(); layout->addWidget(Session::Forge::br()); layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.MPG)); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.EXT_TEMP)); layout->addStretch(); return widget; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 36393505..e361945c 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -43,6 +43,9 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare QString filtroRPMeVel = "CAN USER FILTER CH1 3 04E8\r\n"; this->socket.write(filtroRPMeVel.toUtf8()); + QString filtroTemp = "CAN USER FILTER CH1 4 0682\r\n"; + this->socket.write(filtroTemp.toUtf8()); + QString filtroTempAntigelo = "CAN USER FILTER CH2 0 0510\r\n"; this->socket.write(filtroTempAntigelo.toUtf8()); From bc6ca6140a214e3f8bfc4af2ab9d0789d529a752 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 02:31:32 +0200 Subject: [PATCH 212/332] prova --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 71ddb654..70f66d29 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -348,7 +348,7 @@ void Test::readFrame() if (id == "0682") { - int temp = (int) canMsg[2]; + int temp = ((int) canMsg[2])/2-40; if (temp != tempsalvata) { From 5b8e69f91383d262f2832a3b924df6213ece4dfe Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 02:38:35 +0200 Subject: [PATCH 213/332] prova --- plugins/vehicle/test/test.cpp | 25 ++++++++++++++++++++----- plugins/vehicle/test/test.hpp | 3 ++- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 70f66d29..fd00a761 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -348,7 +348,7 @@ void Test::readFrame() if (id == "0682") { - int temp = ((int) canMsg[2])/2-40; + double temp = ((double) canMsg[2])/2-40; if (temp != tempsalvata) { @@ -356,6 +356,21 @@ void Test::readFrame() tempsalvata = temp; } } + + // Esempio RX1 04EC-46075A2C00 + + if (id == "04EC") + { + + double tempCoolant = ((double)canMsg[2]) - 40; + + if (ttCoolRX1 != tempCoolant) + { + // DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; + this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); + ttCoolRX1 = tempCoolant; + } + } } // HS-CAN @@ -368,13 +383,13 @@ void Test::readFrame() if (id == "0510") { - int tempCoolant = (int)(canMsg[1]) - 40; + double tempCoolant = ((double)canMsg[1]) - 40; - if (ttCool != tempCoolant) + if (ttCoolRX2 != tempCoolant) { // DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; - this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); - ttCool = tempCoolant; + //this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); + ttCoolRX2 = tempCoolant; } } } diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index bacd34e1..09eb559d 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -30,7 +30,8 @@ class Test : public QObject, VehiclePlugin Climate *climate; Vehicle *vehicle; int lumws = 0; - int ttCool = 0; + double ttCoolRX2 = 0; + double ttCoolRX1 = 0; int kmsalvati = 0; int rpmsalvati = 0; int velsalvata = 0; From b96664499eae79e28a7d9c46e61d768e4c8f0938 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 02:45:18 +0200 Subject: [PATCH 214/332] update vehicle data from int to double --- src/app/arbiter.cpp | 2 +- src/app/pages/vehicle.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/arbiter.cpp b/src/app/arbiter.cpp index 08e4c12a..36850591 100644 --- a/src/app/arbiter.cpp +++ b/src/app/arbiter.cpp @@ -201,7 +201,7 @@ void Arbiter::send_openauto_full_screen(bool fullscreen) emit openauto_full_screen(fullscreen); } -void Arbiter::send_vehicle_data(QString gauge_id, int value) +void Arbiter::send_vehicle_data(QString gauge_id, double value) { emit vehicle_update_data(gauge_id, value); } \ No newline at end of file diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 4ebbff64..ab4b664e 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -243,7 +243,7 @@ DataTab::DataTab(Arbiter &arbiter, QWidget *parent) sp_right.setHorizontalStretch(2); engine_data->setSizePolicy(sp_right); - connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, int value){ + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value){ // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { if(gauge->get_id() == gauge_id){ From 66ca3d834b8a6f5ecbe47c7166a4fdd4c625d45b Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 02:45:42 +0200 Subject: [PATCH 215/332] update vehicle data from int to double --- include/app/arbiter.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/app/arbiter.hpp b/include/app/arbiter.hpp index 12c079d4..f8486cce 100644 --- a/include/app/arbiter.hpp +++ b/include/app/arbiter.hpp @@ -40,7 +40,7 @@ class Arbiter : public QObject { void set_action(Action *action, QString key); void send_openauto_button_press(aasdk::proto::enums::ButtonCode::Enum buttonCode, openauto::projection::WheelDirection wheelDirection = openauto::projection::WheelDirection::NONE); void send_openauto_full_screen(bool fullscreen = true); - void send_vehicle_data(QString gauge_id, int value); + void send_vehicle_data(QString gauge_id, double value); QMainWindow *window() { return this->window_; } QSettings &settings() { return this->session_.settings_; } @@ -71,5 +71,5 @@ class Arbiter : public QObject { void cursor_changed(bool enabled); void action_changed(Action *action, QString key); void openauto_full_screen(bool fullscreen); - void vehicle_update_data(QString gauge_id, int value); + void vehicle_update_data(QString gauge_id, double value); }; From b4e75a0241c80e8560496e507dfe0370cbb10172 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 02:57:26 +0200 Subject: [PATCH 216/332] prova --- plugins/vehicle/test/test.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index fd00a761..edc3ed40 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -352,6 +352,7 @@ void Test::readFrame() if (temp != tempsalvata) { + DASH_LOG(info) << "Temperatura esterna:" << QString::number(temp).toStdString() << "\r\n"; this->arbiter->vehicle_update_data("ext_temp", temp); tempsalvata = temp; } From 3165cabf1ae915eb1d603e4fda3308fe5c5172b7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 03:05:23 +0200 Subject: [PATCH 217/332] fix double int err --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index edc3ed40..39b87736 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -352,7 +352,7 @@ void Test::readFrame() if (temp != tempsalvata) { - DASH_LOG(info) << "Temperatura esterna:" << QString::number(temp).toStdString() << "\r\n"; + //DASH_LOG(info) << "Temperatura esterna:" << QString::number(temp).toStdString() << "\r\n"; this->arbiter->vehicle_update_data("ext_temp", temp); tempsalvata = temp; } From 083229972176bb94f88a0e6d4c0fb008237c1002 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 03:05:27 +0200 Subject: [PATCH 218/332] fix double int err --- include/app/pages/vehicle.hpp | 2 +- src/app/pages/vehicle.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index c10b1a5e..924a8e59 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -50,7 +50,7 @@ class Gauge : public QWidget { Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Orientation orientation, QWidget *parent = nullptr); inline QString get_id() { return this->id; }; - void set_value(int value); + void set_value(double value); private: QString format_value(double value); diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index ab4b664e..92a24a1b 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -68,7 +68,7 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat layout->addStretch(4); } -void Gauge::set_value(int value){ +void Gauge::set_value(double value){ DASH_LOG(debug)<<"[Gauges] set_value: "<setText(this->format_value(this->converter(value, this->si))); } From 56c0d4de6c1d53bb204f192dc607434a6a83950b Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 03:24:44 +0200 Subject: [PATCH 219/332] prod --- plugins/vehicle/test/test.cpp | 4 ++-- plugins/vehicle/test/test.hpp | 4 ++-- src/app/pages/vehicle.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 39b87736..1b5ea48e 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -363,7 +363,7 @@ void Test::readFrame() if (id == "04EC") { - double tempCoolant = ((double)canMsg[2]) - 40; + int tempCoolant = ((int)canMsg[2]) - 40; if (ttCoolRX1 != tempCoolant) { @@ -384,7 +384,7 @@ void Test::readFrame() if (id == "0510") { - double tempCoolant = ((double)canMsg[1]) - 40; + int tempCoolant = ((int)canMsg[1]) - 40; if (ttCoolRX2 != tempCoolant) { diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 09eb559d..0783a6d9 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -30,8 +30,8 @@ class Test : public QObject, VehiclePlugin Climate *climate; Vehicle *vehicle; int lumws = 0; - double ttCoolRX2 = 0; - double ttCoolRX1 = 0; + int ttCoolRX2 = 0; + int ttCoolRX1 = 0; int kmsalvati = 0; int rpmsalvati = 0; int velsalvata = 0; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 92a24a1b..00477ab7 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -9,10 +9,10 @@ GaugesConfig gauges_cfg = { {"autonomia", "Autonomia", {"Miles", "Km"}, - {10, 16, 12}, 1, [](double x, bool _) { return x; } + {10, 16, 12}, 0, [](double x, bool _) { return x; } }, {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, - {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } + {10, 16, 12}, 0, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, {"rpm", "Giri al Minuto (RPM)", {"rpm", "rpm"}, {0, 24, 12}, 0, [](double x, bool _) { return x; } From 464e7b0721cddb326a29117ec8f24791e1ea6e85 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 04:33:46 +0200 Subject: [PATCH 220/332] prova --- plugins/vehicle/test/test.cpp | 112 +++++++++++++++++++++++----------- 1 file changed, 75 insertions(+), 37 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 1b5ea48e..9f506ac7 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -33,39 +33,13 @@ bool Test::init(SocketCANBus *bus) this->climate = new Climate(*this->arbiter); this->climate->max_fan_speed(7); /* - auto timer = new QTimer(this); - connect(timer, &QTimer::timeout, [this] - { + static bool toggle = false; switch(rand() % 50) { case 0: this->climate->airflow(Airflow::OFF); break; - case 1: - this->climate->airflow(Airflow::DEFROST); - break; - case 2: - this->climate->airflow(Airflow::BODY); - break; - case 3: - this->climate->airflow(Airflow::FEET); - break; - case 4: - this->climate->airflow(Airflow::DEFROST | Airflow::BODY); - break; - case 5: - this->climate->airflow(Airflow::DEFROST | Airflow::FEET); - break; - case 6: - this->climate->airflow(Airflow::BODY | Airflow::FEET); - break; - case 7: - this->climate->airflow(Airflow::DEFROST | Airflow::BODY | Airflow::FEET); - break; - case 8: - this->climate->fan_speed((rand() % 4) + 1); - break; case 9: this->vehicle->sensor(Position::FRONT_LEFT, rand() % 5); break; @@ -135,18 +109,12 @@ bool Test::init(SocketCANBus *bus) default: toggle = !toggle; break; - } }); - - timer->start(1000); + } - auto timer2 = new QTimer(this); - connect(timer2, &QTimer::timeout, [this] - { if (rand() % 10 == 1) { this->climate->left_temp((rand() % 20) + 60); this->climate->right_temp((rand() % 20) + 60); } }); - timer2->start(100000); */ socketcan(bus); QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame); @@ -348,11 +316,11 @@ void Test::readFrame() if (id == "0682") { - double temp = ((double) canMsg[2])/2-40; + double temp = ((double)canMsg[2]) / 2 - 40; if (temp != tempsalvata) { - //DASH_LOG(info) << "Temperatura esterna:" << QString::number(temp).toStdString() << "\r\n"; + // DASH_LOG(info) << "Temperatura esterna:" << QString::number(temp).toStdString() << "\r\n"; this->arbiter->vehicle_update_data("ext_temp", temp); tempsalvata = temp; } @@ -372,6 +340,76 @@ void Test::readFrame() ttCoolRX1 = tempCoolant; } } + + // Esempio RX1 06C8-21004800692401E0 + + if (id == "06C8") + { + switch (canMsg[0]) // mode? + { + case 0x21: // normal mode, change flow direction + if (canMsg[1] == 0xE0) + { + switch (canMsg[2]) + { + case 0x52: // all: + this->climate->airflow(Airflow::DEFROST | Airflow::BODY | Airflow::FEET); + break; + case 0x53: // up: + this->climate->airflow(Airflow::DEFROST); + break; + case 0x54: // up_middle: + this->climate->airflow(Airflow::DEFROST | Airflow::BODY); + break; + case 0x55: // middle: + this->climate->airflow(Airflow::BODY); + break; + case 0x56: // middle_down: + this->climate->airflow(Airflow::BODY | Airflow::FEET); + break; + case 0x57: // down: + this->climate->airflow(Airflow::FEET); + break; + case 0x58: // up_down: + this->climate->airflow(Airflow::DEFROST | Airflow::FEET); + break; + case 0x59: // dir_auto: + DASH_LOG(info) << "AC AUTO \r\n"; + break; + } + } + break; + + case 0x22: // normal mode, change flow speed or temperature + switch (canMsg[1]) + { + case 0x03: + int temperatura = 10 * (canMsg[3] - 0x30) + canMsg[5] - 0x30; + this->climate->left_temp(temperatura); + this->climate->right_temp(temperatura); + break; + + case 0x50: // fan set. canMsg[3] = canMsg[4] = ascii + int velocita = canMsg[3] - 0x30; + this->climate->fan_speed(velocita); + break; + } + break; + + case 0x24: // normal mode, auto flow? status 4 is speed, 30 - 37 + int velocita = canMsg[3] - 0x30; + this->climate->fan_speed(velocita); + break; + + case 0x25: // normal mode, auto flow speed, status + // 4 is E0 = full auto speed, 41 = manual flow direction + break; + + case 0x26: // air distribution mode, + // [7] is flow direction , 52 - 59 + break; + } + } } // HS-CAN @@ -389,7 +427,7 @@ void Test::readFrame() if (ttCoolRX2 != tempCoolant) { // DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; - //this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); + // this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); ttCoolRX2 = tempCoolant; } } From 894a6524f1936a09bb85eea1f65a14b66dde496c Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 04:40:43 +0200 Subject: [PATCH 221/332] prova --- plugins/vehicle/test/test.cpp | 31 +++++++------------------------ plugins/vehicle/test/test.hpp | 2 ++ 2 files changed, 9 insertions(+), 24 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 9f506ac7..dbd385d0 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -82,18 +82,6 @@ bool Test::init(SocketCANBus *bus) case 22: this->vehicle->taillights(toggle); break; - case 23: - this->vehicle->pressure(Position::BACK_RIGHT, (rand() % 21) + 30); - break; - case 24: - this->vehicle->pressure(Position::BACK_LEFT, (rand() % 21) + 30); - break; - case 25: - this->vehicle->pressure(Position::FRONT_RIGHT, (rand() % 21) + 30); - break; - case 26: - this->vehicle->pressure(Position::FRONT_LEFT, (rand() % 21) + 30); - break; case 27: this->vehicle->wheel_steer((rand() % 10) * ((rand() % 2) ? 1 : -1)); break; @@ -110,11 +98,6 @@ bool Test::init(SocketCANBus *bus) toggle = !toggle; break; } - - if (rand() % 10 == 1) { - this->climate->left_temp((rand() % 20) + 60); - this->climate->right_temp((rand() % 20) + 60); - } }); */ socketcan(bus); QObject::connect(&bus->socket, &QTcpSocket::readyRead, this, &Test::readFrame); @@ -384,21 +367,21 @@ void Test::readFrame() switch (canMsg[1]) { case 0x03: - int temperatura = 10 * (canMsg[3] - 0x30) + canMsg[5] - 0x30; - this->climate->left_temp(temperatura); - this->climate->right_temp(temperatura); + tempAC = 10 * (canMsg[3] - 0x30) + canMsg[5] - 0x30; + this->climate->left_temp(tempAC); + this->climate->right_temp(tempAC); break; case 0x50: // fan set. canMsg[3] = canMsg[4] = ascii - int velocita = canMsg[3] - 0x30; - this->climate->fan_speed(velocita); + fanAC = canMsg[3] - 0x30; + this->climate->fan_speed(fanAC); break; } break; case 0x24: // normal mode, auto flow? status 4 is speed, 30 - 37 - int velocita = canMsg[3] - 0x30; - this->climate->fan_speed(velocita); + fanAC = canMsg[3] - 0x30; + this->climate->fan_speed(fanAC); break; case 0x25: // normal mode, auto flow speed, status diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 0783a6d9..a2b2aa89 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -30,6 +30,8 @@ class Test : public QObject, VehiclePlugin Climate *climate; Vehicle *vehicle; int lumws = 0; + int tempAC = 0; + int fanAC = 0; int ttCoolRX2 = 0; int ttCoolRX1 = 0; int kmsalvati = 0; From 6f83306720b4b30196212e062e422ae754f70746 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 05:36:30 +0200 Subject: [PATCH 222/332] prova --- plugins/vehicle/test/test.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index dbd385d0..e568245f 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -367,7 +367,7 @@ void Test::readFrame() switch (canMsg[1]) { case 0x03: - tempAC = 10 * (canMsg[3] - 0x30) + canMsg[5] - 0x30; + tempAC = 10 * (canMsg[3] - 0x30) + (canMsg[5] - 0x30); this->climate->left_temp(tempAC); this->climate->right_temp(tempAC); break; @@ -375,13 +375,15 @@ void Test::readFrame() case 0x50: // fan set. canMsg[3] = canMsg[4] = ascii fanAC = canMsg[3] - 0x30; this->climate->fan_speed(fanAC); - break; + DASH_LOG(info) << "VENTOLE:" << QString::number(fanAC).toStdString() << "\r\n"; + F break; } break; case 0x24: // normal mode, auto flow? status 4 is speed, 30 - 37 - fanAC = canMsg[3] - 0x30; - this->climate->fan_speed(fanAC); + /*fanAC = canMsg[3] - 0x30; + DASH_LOG(info) << "VENTOLE:" << QString::number(fanAC).toStdString() << "\r\n"; + this->climate->fan_speed(fanAC);*/ break; case 0x25: // normal mode, auto flow speed, status From 130281512aeccd6be1fb1ef9bdeef15670ffb4eb Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 05:37:46 +0200 Subject: [PATCH 223/332] errore --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index e568245f..302cfb83 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -376,7 +376,7 @@ void Test::readFrame() fanAC = canMsg[3] - 0x30; this->climate->fan_speed(fanAC); DASH_LOG(info) << "VENTOLE:" << QString::number(fanAC).toStdString() << "\r\n"; - F break; + break; } break; From 132e1923f25bdf3cd76278ddb29bbd5da12188f1 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 05:53:49 +0200 Subject: [PATCH 224/332] prova provissima provona --- src/app/widgets/step_meter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/widgets/step_meter.cpp b/src/app/widgets/step_meter.cpp index 31ae4e7b..8a1fdfd0 100644 --- a/src/app/widgets/step_meter.cpp +++ b/src/app/widgets/step_meter.cpp @@ -38,7 +38,7 @@ void StepMeter::paintEvent(QPaintEvent *event) QPainterPath path; path.addPolygon(bar); - painter.fillPath(path, (this->bars >= i) ? QBrush(this->bar_color) : QBrush(this->base_color)); + painter.fillPath(path, (this->bars > i) ? QBrush(this->bar_color) : QBrush(this->base_color)); } } From 4c352dd84a4897f88385fc16158209ad0aab06d1 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 06:09:31 +0200 Subject: [PATCH 225/332] semiprod --- plugins/vehicle/test/test.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 302cfb83..cb63452e 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -375,7 +375,6 @@ void Test::readFrame() case 0x50: // fan set. canMsg[3] = canMsg[4] = ascii fanAC = canMsg[3] - 0x30; this->climate->fan_speed(fanAC); - DASH_LOG(info) << "VENTOLE:" << QString::number(fanAC).toStdString() << "\r\n"; break; } break; From c6755b1180f9220e8f086e6fbf29910971bd021e Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 06:12:13 +0200 Subject: [PATCH 226/332] semiprod w/ filter can --- src/canbus/socketcanbus.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index e361945c..2fa4ca4e 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -46,6 +46,9 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare QString filtroTemp = "CAN USER FILTER CH1 4 0682\r\n"; this->socket.write(filtroTemp.toUtf8()); + QString filtroAC = "CAN USER FILTER CH1 5 06C8\r\n"; + this->socket.write(filtroAC.toUtf8()); + QString filtroTempAntigelo = "CAN USER FILTER CH2 0 0510\r\n"; this->socket.write(filtroTempAntigelo.toUtf8()); From 6d4038e1a6e16bd411d9654d79df339ee6cf61ec Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Sat, 13 May 2023 13:53:53 +0200 Subject: [PATCH 227/332] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 46b9225c..2ef93a0c 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,6 @@ The astraDash project includes OpenAuto, AASDK, and OpenDash. Main added features of astraDash include: * Read CanBus frames from localhost -* Camera size fix and brightness control \ No newline at end of file +* Camera size fix and brightness control +* Fix clima bar +* Read SWC, Clima, Temps, Speed. \ No newline at end of file From e4630289a06143330d959dedaa02a513367c0635 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 17:46:48 +0200 Subject: [PATCH 228/332] prova bottoni premuto fix lag --- plugins/vehicle/test/test.cpp | 102 ++++++++++++++++++---------------- plugins/vehicle/test/test.hpp | 1 + 2 files changed, 55 insertions(+), 48 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index cb63452e..05e8bbae 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -172,60 +172,66 @@ void Test::readFrame() if (id == "0206") { - if (canMsg[0] == 0x00) + + if (canMsg[0] == 0x01 && canMsg[2] > 4 && premuto == false) { - if (canMsg[2] > 4) + switch (canMsg[1]) { - switch (canMsg[1]) - { - case 0x81: - this->arbiter->set_curr_page(0); - // DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; - break; - case 0x82: - this->arbiter->set_curr_page(3); - // DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; - break; - case 0x84: - // non usare temp - DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; - break; - case 0x91: - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::MICROPHONE_1, Action::ActionState::Triggered); - // DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; - break; - case 0x92: - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::TOGGLE_PLAY, Action::ActionState::Triggered); - // DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; - break; - } + case 0x81: + this->arbiter->set_curr_page(0); + // DASH_LOG(info) << "PREMUTO pulsante in alto a sinistra\r\n"; + break; + case 0x82: + this->arbiter->set_curr_page(3); + // DASH_LOG(info) << "PREMUTO Pulsante giù a sinistra\r\n"; + break; + case 0x84: + // non usare temp + DASH_LOG(info) << "PREMUTO Pulsante manopola sinistra\r\n"; + break; + case 0x91: + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::MICROPHONE_1, Action::ActionState::Triggered); + // DASH_LOG(info) << "PREMUTO Pulsante destro in alto (successivo)\r\n"; + break; + case 0x92: + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::TOGGLE_PLAY, Action::ActionState::Triggered); + // DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; + break; } - else + premuto = true; + } + + if (canMsg[0] == 0x00 && premuto == false) + { + switch (canMsg[1]) { - switch (canMsg[1]) - { - case 0x81: - // DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER, Action::ActionState::Triggered); - break; - case 0x82: // DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; - this->arbiter->set_curr_page(this->arbiter->layout().next_enabled_page(this->arbiter->layout().curr_page)); - break; - case 0x84: - // non usare temp - DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; - break; - case 0x91: - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); - // DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; - break; - case 0x92: - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV, Action::ActionState::Triggered); - // DASH_LOG(info) << "Pulsante in basso a destra\r\n"; - break; - } + case 0x81: + // DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER, Action::ActionState::Triggered); + break; + case 0x82: // DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + this->arbiter->set_curr_page(this->arbiter->layout().next_enabled_page(this->arbiter->layout().curr_page)); + break; + case 0x84: + // non usare temp + DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; + break; + case 0x91: + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); + // DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; + break; + case 0x92: + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV, Action::ActionState::Triggered); + // DASH_LOG(info) << "Pulsante in basso a destra\r\n"; + break; } } + else + { + if (premuto) + premuto = false; + } + if (canMsg[0] == 0x08) { if (canMsg[1] == 0x83) diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index a2b2aa89..9cb32f3d 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -38,6 +38,7 @@ class Test : public QObject, VehiclePlugin int rpmsalvati = 0; int velsalvata = 0; double tempsalvata = 0; + bool premuto = false; SocketCANBus *bus = nullptr; signals: From 5c44099c03459247d0a377949382994142a0fd39 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 17:55:20 +0200 Subject: [PATCH 229/332] prova --- plugins/vehicle/test/test.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 05e8bbae..33f057e5 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -175,6 +175,8 @@ void Test::readFrame() if (canMsg[0] == 0x01 && canMsg[2] > 4 && premuto == false) { + premuto = true; + switch (canMsg[1]) { case 0x81: @@ -198,7 +200,6 @@ void Test::readFrame() // DASH_LOG(info) << "PREMUTO Pulsante in basso a destra\r\n"; break; } - premuto = true; } if (canMsg[0] == 0x00 && premuto == false) @@ -231,7 +232,7 @@ void Test::readFrame() if (premuto) premuto = false; } - + if (canMsg[0] == 0x08) { if (canMsg[1] == 0x83) From 7f2a93aab0fb70b9d80da1f0bddda5f52b4455bf Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 17:59:14 +0200 Subject: [PATCH 230/332] prova --- plugins/vehicle/test/test.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 33f057e5..ff68509f 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -177,6 +177,8 @@ void Test::readFrame() { premuto = true; + DASH_LOG(info) << "STATO PREMUTO " << premuto <<"\r\n"; + switch (canMsg[1]) { case 0x81: From 4ce8dd363cbb3bdd936f736b4bd3e11d6246eeed Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 18:10:23 +0200 Subject: [PATCH 231/332] prova --- plugins/vehicle/test/test.cpp | 54 +++++++++++++++++------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index ff68509f..3d794bb8 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -177,8 +177,6 @@ void Test::readFrame() { premuto = true; - DASH_LOG(info) << "STATO PREMUTO " << premuto <<"\r\n"; - switch (canMsg[1]) { case 0x81: @@ -204,35 +202,37 @@ void Test::readFrame() } } - if (canMsg[0] == 0x00 && premuto == false) + if (canMsg[0] == 0x00) { - switch (canMsg[1]) + if (premuto == false) { - case 0x81: - // DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER, Action::ActionState::Triggered); - break; - case 0x82: // DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; - this->arbiter->set_curr_page(this->arbiter->layout().next_enabled_page(this->arbiter->layout().curr_page)); - break; - case 0x84: - // non usare temp - DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; - break; - case 0x91: - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); - // DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; - break; - case 0x92: - this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV, Action::ActionState::Triggered); - // DASH_LOG(info) << "Pulsante in basso a destra\r\n"; - break; + switch (canMsg[1]) + { + case 0x81: + // DASH_LOG(info) << "pulsante in alto a sinistra\r\n"; + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::ENTER, Action::ActionState::Triggered); + break; + case 0x82: // DASH_LOG(info) << "Pulsante giù a sinistra\r\n"; + this->arbiter->set_curr_page(this->arbiter->layout().next_enabled_page(this->arbiter->layout().curr_page)); + break; + case 0x84: + // non usare temp + DASH_LOG(info) << "Pulsante manopola sinistra\r\n"; + break; + case 0x91: + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::NEXT, Action::ActionState::Triggered); + // DASH_LOG(info) << "Pulsante destro in alto (successivo)\r\n"; + break; + case 0x92: + this->arbiter->android_auto().handler->injectButtonPressHelper(aasdk::proto::enums::ButtonCode::PREV, Action::ActionState::Triggered); + // DASH_LOG(info) << "Pulsante in basso a destra\r\n"; + break; + } } - } - else - { - if (premuto) + else + { premuto = false; + } } if (canMsg[0] == 0x08) From 540bddfbecbff798178ef41e9f3c79b9ff3c5885 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 19:32:38 +0200 Subject: [PATCH 232/332] prova --- include/app/widgets/climate.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/app/widgets/climate.hpp b/include/app/widgets/climate.hpp index 43ee3403..784f5332 100644 --- a/include/app/widgets/climate.hpp +++ b/include/app/widgets/climate.hpp @@ -13,7 +13,9 @@ enum Airflow : uint8_t OFF = 0, DEFROST = (1 << 0), BODY = (1 << 1), - FEET = (1 << 2) + FEET = (1 << 2), + RECIRCULATE = (1 << 3), + AC = (1 << 4) }; class ClimateSnackBar : public SnackBar { From 90198288e6d91dbde584c9173ccf8811765ed98a Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 19:32:54 +0200 Subject: [PATCH 233/332] prova --- src/app/pages/vehicle.cpp | 153 ++++++++++++++++++-------------------- 1 file changed, 72 insertions(+), 81 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 00477ab7..1507c18b 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -6,30 +6,23 @@ #include "app/window.hpp" #include "plugins/vehicle_plugin.hpp" -GaugesConfig gauges_cfg = -{ - {"autonomia", "Autonomia", {"Miles", "Km"}, - {10, 16, 12}, 0, [](double x, bool _) { return x; } - }, - {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, - {10, 16, 12}, 0, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } - }, - {"rpm", "Giri al Minuto (RPM)", {"rpm", "rpm"}, - {0, 24, 12}, 0, [](double x, bool _) { return x; } - }, - {"speed", "Velocità", {"mph", "km/h"}, - {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } - }, - {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, - {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } - }, - {"ext_temp", "Temperatura Esterna", {"°F", "°C"}, - {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } - } -}; +GaugesConfig gauges_cfg = + { + {"autonomia", "Autonomia", {"Miles", "Km"}, {10, 16, 12}, 0, [](double x, bool _) + { return x; }}, + {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, {10, 16, 12}, 0, [](double x, bool si) + { return si ? x : Conversion::c_to_f(x); }}, + {"rpm", "Giri al Minuto (RPM)", {"rpm", "rpm"}, {0, 24, 12}, 0, [](double x, bool _) + { return x; }}, + {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) + { return si ? x : Conversion::kph_to_mph(x); }}, + {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) + { return si ? x : Conversion::c_to_f(x); }}, + {"ext_temp", "Temperatura Esterna", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) + { return si ? x : Conversion::c_to_f(x); }}}; Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) -: QWidget(parent) + : QWidget(parent) { Config *config = Config::get_instance(); @@ -55,11 +48,11 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat unit_label->setFont(unit_font); unit_label->setAlignment(Qt::AlignCenter); - connect(config, &Config::si_units_changed, [this, unit_label](bool si) { + connect(config, &Config::si_units_changed, [this, unit_label](bool si) + { this->si = si; unit_label->setText(this->si ? this->units.second : this->units.first); - value_label->setText(this->null_value()); - }); + value_label->setText(this->null_value()); }); layout->addStretch(6); layout->addWidget(value_label); @@ -68,8 +61,9 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat layout->addStretch(4); } -void Gauge::set_value(double value){ - DASH_LOG(debug)<<"[Gauges] set_value: "<setText(this->format_value(this->converter(value, this->si))); } @@ -93,8 +87,7 @@ QString Gauge::null_value() } VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) - : QTabWidget(parent) - , Page(arbiter, "Vehicle", "directions_car", true, this) + : QTabWidget(parent), Page(arbiter, "Vehicle", "directions_car", true, this) { } @@ -114,13 +107,15 @@ void VehiclePage::init() Dialog *dialog = new Dialog(this->arbiter, true, this->window()); dialog->set_body(this->dialog_body()); QPushButton *load_button = new QPushButton("load"); - connect(load_button, &QPushButton::clicked, [this]() { this->load_plugin(); }); + connect(load_button, &QPushButton::clicked, [this]() + { this->load_plugin(); }); dialog->set_button(load_button); QPushButton *settings_button = new QPushButton(this); settings_button->setFlat(true); this->arbiter.forge().iconize("settings", settings_button, 24); - connect(settings_button, &QPushButton::clicked, [dialog]() { dialog->open(); }); + connect(settings_button, &QPushButton::clicked, [dialog]() + { dialog->open(); }); this->setCornerWidget(settings_button); this->load_plugin(); @@ -141,12 +136,10 @@ QWidget *VehiclePage::dialog_body() QStringList devices = this->config->get_vehicle_can_bus() ? this->can_devices : this->serial_devices; Selector *interface_selector = new Selector(devices, this->config->get_vehicle_interface(), this->arbiter.forge().font(14), this->arbiter, widget, "disabled"); interface_selector->setVisible((this->can_devices.size() > 0) || (this->serial_devices.size() > 0)); - connect(interface_selector, &Selector::item_changed, [config = this->config](QString item){ - config->set_vehicle_interface(item); - }); - connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state){ - interface_selector->set_options(state ? this->can_devices : this->serial_devices); - }); + connect(interface_selector, &Selector::item_changed, [config = this->config](QString item) + { config->set_vehicle_interface(item); }); + connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state) + { interface_selector->set_options(state ? this->can_devices : this->serial_devices); }); layout->addWidget(interface_selector, 1); layout->addWidget(Session::Forge::br(), 1); @@ -169,9 +162,8 @@ QWidget *VehiclePage::can_bus_toggle_row() QRadioButton *socketcan_button = new QRadioButton("SocketCAN", group); socketcan_button->setChecked(this->config->get_vehicle_can_bus()); socketcan_button->setEnabled(this->can_devices.size() > 0); - connect(socketcan_button, &QRadioButton::clicked, [config = this->config]{ - config->set_vehicle_can_bus(true); - }); + connect(socketcan_button, &QRadioButton::clicked, [config = this->config] + { config->set_vehicle_can_bus(true); }); group_layout->addWidget(socketcan_button); layout->addWidget(group, 1, Qt::AlignHCenter); @@ -190,7 +182,8 @@ QWidget *VehiclePage::si_units_row_widget() Switch *toggle = new Switch(widget); toggle->scale(this->arbiter.layout().scale); toggle->setChecked(this->config->get_si_units()); - connect(toggle, &Switch::stateChanged, [config = this->config](bool state) { config->set_si_units(state); }); + connect(toggle, &Switch::stateChanged, [config = this->config](bool state) + { config->set_si_units(state); }); layout->addWidget(toggle, 1, Qt::AlignHCenter); return widget; @@ -198,7 +191,8 @@ QWidget *VehiclePage::si_units_row_widget() void VehiclePage::get_plugins() { - for (const QFileInfo &plugin : Session::plugin_dir("vehicle").entryInfoList(QDir::Files)) { + for (const QFileInfo &plugin : Session::plugin_dir("vehicle").entryInfoList(QDir::Files)) + { if (QLibrary::isLibrary(plugin.absoluteFilePath())) this->plugins[Session::fmt_plugin(plugin.baseName())] = plugin; } @@ -210,10 +204,12 @@ void VehiclePage::load_plugin() this->active_plugin->unload(); QString key = this->plugin_selector->get_current(); - if (!key.isNull()) { + if (!key.isNull()) + { this->active_plugin->setFileName(this->plugins[key].absoluteFilePath()); - if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) { + if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) + { plugin->dashize(&this->arbiter); plugin->init(((SocketCANBus *)SocketCANBus::get_instance())); for (QWidget *tab : plugin->widgets()) @@ -224,8 +220,7 @@ void VehiclePage::load_plugin() } DataTab::DataTab(Arbiter &arbiter, QWidget *parent) - : QWidget(parent) - , arbiter(arbiter) + : QWidget(parent), arbiter(arbiter) { QHBoxLayout *layout = new QHBoxLayout(this); @@ -243,15 +238,15 @@ DataTab::DataTab(Arbiter &arbiter, QWidget *parent) sp_right.setHorizontalStretch(2); engine_data->setSizePolicy(sp_right); - connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value){ + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value) + { // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { if(gauge->get_id() == gauge_id){ // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); gauge->set_value(value); } - } - }); + } }); } QWidget *DataTab::speedo_tach_widget() @@ -269,36 +264,31 @@ QWidget *DataTab::speedo_tach_widget() return widget; } -/* socketcan/elm327 rewrite right now only has support for one PID per gauge, so we can't calculate milage at this point. - This is because gauges act more as event handlers now for each PID. - Multi-PID gauges could feasibly be reimplemented if there was a helper method that stored received values, and only calls - the gauge update once all values have been updated since last gauge update. - -*/ - -// QWidget *DataTab::mileage_data_widget() -// { -// QWidget *widget = new QWidget(this); -// QHBoxLayout *layout = new QHBoxLayout(widget); -// -// QFont value_font(Theme::font_36); -// value_font.setFamily("Titillium Web"); -// -// QFont unit_font(Theme::font_14); -// unit_font.setWeight(QFont::Light); -// unit_font.setItalic(true); -// -// Gauge *mileage = new Gauge({"mpg", "km/L"}, value_font, unit_font, -// Gauge::BOTTOM, 100, {gauges_cfg.SPEED, gauges_cfg.MAF}, 1, -// [](std::vector x, bool si) { -// return (si ? x[0] : kph_to_mph(x[0])) / (si ? gps_to_lph(x[1]) : gps_to_gph(x[1])); -// }, -// widget); -// layout->addWidget(mileage); -// this->gauges.push_back(mileage); - -// return widget; -// } +QWidget *DataTab::mileage_data_widget() +{ + QWidget *widget = new QWidget(this); + QHBoxLayout *layout = new QHBoxLayout(widget); + + QFont value_font(Theme::font_36); + value_font.setFamily("Titillium Web"); + + QFont unit_font(Theme::font_14); + unit_font.setWeight(QFont::Light); + unit_font.setItalic(true); + + Gauge *mileage = new Gauge( + {"mpg", "km/L"}, value_font, unit_font, + Gauge::BOTTOM, 100, {gauges_cfg.SPEED, gauges_cfg.MAF}, 1, + [](std::vector x, bool si) + { + return (si ? x[0] : kph_to_mph(x[0])) / (si ? gps_to_lph(x[1]) : gps_to_gph(x[1])); + }, + widget); + layout->addWidget(mileage); + this->gauges.push_back(mileage); + + return widget; +} QWidget *DataTab::engine_data_widget() { @@ -336,11 +326,12 @@ QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) unit_font.setItalic(true); Gauge *gauge = new Gauge(cfg, - value_font, unit_font, Gauge::RIGHT, widget); + value_font, unit_font, Gauge::RIGHT, widget); layout->addWidget(gauge); this->gauges.push_back(gauge); - if (cfg.font_size.label > 0) { + if (cfg.font_size.label > 0) + { QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); label_font.setWeight(QFont::Light); From 851a0f9742cb7b73de3042da75a5110d35aff102 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 19:35:02 +0200 Subject: [PATCH 234/332] prova --- include/app/pages/vehicle.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 924a8e59..38ca174e 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -101,7 +101,7 @@ class DataTab : public QWidget { private: Arbiter &arbiter; QWidget *speedo_tach_widget(); - // QWidget *mileage_data_widget(); + QWidget *mileage_data_widget(); QWidget *engine_data_widget(); QWidget *vehicle_data_widget(GaugeConfig cfg); From 4721ce23c8b7dd1363092cdc7515d73bcf0d0066 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 19:42:35 +0200 Subject: [PATCH 235/332] prova --- src/app/pages/vehicle.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 1507c18b..872fde6b 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -269,19 +269,19 @@ QWidget *DataTab::mileage_data_widget() QWidget *widget = new QWidget(this); QHBoxLayout *layout = new QHBoxLayout(widget); - QFont value_font(Theme::font_36); + QFont value_font(font_36); value_font.setFamily("Titillium Web"); - QFont unit_font(Theme::font_14); + QFont unit_font(font_14); unit_font.setWeight(QFont::Light); unit_font.setItalic(true); Gauge *mileage = new Gauge( {"mpg", "km/L"}, value_font, unit_font, - Gauge::BOTTOM, 100, {gauges_cfg.SPEED, gauges_cfg.MAF}, 1, + Gauge::BOTTOM, 100, {gauges_cfg.SPEED, gauges_cfg.AUTONOMIA}, 1, [](std::vector x, bool si) { - return (si ? x[0] : kph_to_mph(x[0])) / (si ? gps_to_lph(x[1]) : gps_to_gph(x[1])); + return x[0]/x[1]; }, widget); layout->addWidget(mileage); From 09d4355f31d1adf383101999336db84b558d74c1 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 19:44:48 +0200 Subject: [PATCH 236/332] prova --- src/app/pages/vehicle.cpp | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 872fde6b..e1d7035b 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -269,21 +269,7 @@ QWidget *DataTab::mileage_data_widget() QWidget *widget = new QWidget(this); QHBoxLayout *layout = new QHBoxLayout(widget); - QFont value_font(font_36); - value_font.setFamily("Titillium Web"); - - QFont unit_font(font_14); - unit_font.setWeight(QFont::Light); - unit_font.setItalic(true); - - Gauge *mileage = new Gauge( - {"mpg", "km/L"}, value_font, unit_font, - Gauge::BOTTOM, 100, {gauges_cfg.SPEED, gauges_cfg.AUTONOMIA}, 1, - [](std::vector x, bool si) - { - return x[0]/x[1]; - }, - widget); + Gauge *mileage = new Gauge(); layout->addWidget(mileage); this->gauges.push_back(mileage); From e4a5da6393e691bd581733e640b5f232b902a3de Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 19:46:19 +0200 Subject: [PATCH 237/332] prova --- src/app/pages/vehicle.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index e1d7035b..6ac67c2f 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -269,9 +269,6 @@ QWidget *DataTab::mileage_data_widget() QWidget *widget = new QWidget(this); QHBoxLayout *layout = new QHBoxLayout(widget); - Gauge *mileage = new Gauge(); - layout->addWidget(mileage); - this->gauges.push_back(mileage); return widget; } From 3562da675f7b15b02fab630c5bdfc2904f8da014 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 13 May 2023 19:49:49 +0200 Subject: [PATCH 238/332] prova --- include/app/pages/vehicle.hpp | 1 - src/app/pages/vehicle.cpp | 107 ++++++++++++++++------------------ 2 files changed, 51 insertions(+), 57 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 38ca174e..825d4a17 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -101,7 +101,6 @@ class DataTab : public QWidget { private: Arbiter &arbiter; QWidget *speedo_tach_widget(); - QWidget *mileage_data_widget(); QWidget *engine_data_widget(); QWidget *vehicle_data_widget(GaugeConfig cfg); diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 6ac67c2f..a8616c09 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -6,23 +6,30 @@ #include "app/window.hpp" #include "plugins/vehicle_plugin.hpp" -GaugesConfig gauges_cfg = - { - {"autonomia", "Autonomia", {"Miles", "Km"}, {10, 16, 12}, 0, [](double x, bool _) - { return x; }}, - {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, {10, 16, 12}, 0, [](double x, bool si) - { return si ? x : Conversion::c_to_f(x); }}, - {"rpm", "Giri al Minuto (RPM)", {"rpm", "rpm"}, {0, 24, 12}, 0, [](double x, bool _) - { return x; }}, - {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) - { return si ? x : Conversion::kph_to_mph(x); }}, - {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) - { return si ? x : Conversion::c_to_f(x); }}, - {"ext_temp", "Temperatura Esterna", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) - { return si ? x : Conversion::c_to_f(x); }}}; +GaugesConfig gauges_cfg = +{ + {"autonomia", "Autonomia", {"Miles", "Km"}, + {10, 16, 12}, 0, [](double x, bool _) { return x; } + }, + {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, + {10, 16, 12}, 0, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } + }, + {"rpm", "Giri al Minuto (RPM)", {"rpm", "rpm"}, + {0, 24, 12}, 0, [](double x, bool _) { return x; } + }, + {"speed", "Velocità", {"mph", "km/h"}, + {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } + }, + {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, + {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } + }, + {"ext_temp", "Temperatura Esterna", {"°F", "°C"}, + {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } + } +}; Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) - : QWidget(parent) +: QWidget(parent) { Config *config = Config::get_instance(); @@ -48,11 +55,11 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat unit_label->setFont(unit_font); unit_label->setAlignment(Qt::AlignCenter); - connect(config, &Config::si_units_changed, [this, unit_label](bool si) - { + connect(config, &Config::si_units_changed, [this, unit_label](bool si) { this->si = si; unit_label->setText(this->si ? this->units.second : this->units.first); - value_label->setText(this->null_value()); }); + value_label->setText(this->null_value()); + }); layout->addStretch(6); layout->addWidget(value_label); @@ -61,9 +68,8 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat layout->addStretch(4); } -void Gauge::set_value(double value) -{ - DASH_LOG(debug) << "[Gauges] set_value: " << std::to_string(value); +void Gauge::set_value(double value){ + DASH_LOG(debug)<<"[Gauges] set_value: "<setText(this->format_value(this->converter(value, this->si))); } @@ -87,7 +93,8 @@ QString Gauge::null_value() } VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) - : QTabWidget(parent), Page(arbiter, "Vehicle", "directions_car", true, this) + : QTabWidget(parent) + , Page(arbiter, "Vehicle", "directions_car", true, this) { } @@ -107,15 +114,13 @@ void VehiclePage::init() Dialog *dialog = new Dialog(this->arbiter, true, this->window()); dialog->set_body(this->dialog_body()); QPushButton *load_button = new QPushButton("load"); - connect(load_button, &QPushButton::clicked, [this]() - { this->load_plugin(); }); + connect(load_button, &QPushButton::clicked, [this]() { this->load_plugin(); }); dialog->set_button(load_button); QPushButton *settings_button = new QPushButton(this); settings_button->setFlat(true); this->arbiter.forge().iconize("settings", settings_button, 24); - connect(settings_button, &QPushButton::clicked, [dialog]() - { dialog->open(); }); + connect(settings_button, &QPushButton::clicked, [dialog]() { dialog->open(); }); this->setCornerWidget(settings_button); this->load_plugin(); @@ -136,10 +141,12 @@ QWidget *VehiclePage::dialog_body() QStringList devices = this->config->get_vehicle_can_bus() ? this->can_devices : this->serial_devices; Selector *interface_selector = new Selector(devices, this->config->get_vehicle_interface(), this->arbiter.forge().font(14), this->arbiter, widget, "disabled"); interface_selector->setVisible((this->can_devices.size() > 0) || (this->serial_devices.size() > 0)); - connect(interface_selector, &Selector::item_changed, [config = this->config](QString item) - { config->set_vehicle_interface(item); }); - connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state) - { interface_selector->set_options(state ? this->can_devices : this->serial_devices); }); + connect(interface_selector, &Selector::item_changed, [config = this->config](QString item){ + config->set_vehicle_interface(item); + }); + connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state){ + interface_selector->set_options(state ? this->can_devices : this->serial_devices); + }); layout->addWidget(interface_selector, 1); layout->addWidget(Session::Forge::br(), 1); @@ -162,8 +169,9 @@ QWidget *VehiclePage::can_bus_toggle_row() QRadioButton *socketcan_button = new QRadioButton("SocketCAN", group); socketcan_button->setChecked(this->config->get_vehicle_can_bus()); socketcan_button->setEnabled(this->can_devices.size() > 0); - connect(socketcan_button, &QRadioButton::clicked, [config = this->config] - { config->set_vehicle_can_bus(true); }); + connect(socketcan_button, &QRadioButton::clicked, [config = this->config]{ + config->set_vehicle_can_bus(true); + }); group_layout->addWidget(socketcan_button); layout->addWidget(group, 1, Qt::AlignHCenter); @@ -182,8 +190,7 @@ QWidget *VehiclePage::si_units_row_widget() Switch *toggle = new Switch(widget); toggle->scale(this->arbiter.layout().scale); toggle->setChecked(this->config->get_si_units()); - connect(toggle, &Switch::stateChanged, [config = this->config](bool state) - { config->set_si_units(state); }); + connect(toggle, &Switch::stateChanged, [config = this->config](bool state) { config->set_si_units(state); }); layout->addWidget(toggle, 1, Qt::AlignHCenter); return widget; @@ -191,8 +198,7 @@ QWidget *VehiclePage::si_units_row_widget() void VehiclePage::get_plugins() { - for (const QFileInfo &plugin : Session::plugin_dir("vehicle").entryInfoList(QDir::Files)) - { + for (const QFileInfo &plugin : Session::plugin_dir("vehicle").entryInfoList(QDir::Files)) { if (QLibrary::isLibrary(plugin.absoluteFilePath())) this->plugins[Session::fmt_plugin(plugin.baseName())] = plugin; } @@ -204,12 +210,10 @@ void VehiclePage::load_plugin() this->active_plugin->unload(); QString key = this->plugin_selector->get_current(); - if (!key.isNull()) - { + if (!key.isNull()) { this->active_plugin->setFileName(this->plugins[key].absoluteFilePath()); - if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) - { + if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) { plugin->dashize(&this->arbiter); plugin->init(((SocketCANBus *)SocketCANBus::get_instance())); for (QWidget *tab : plugin->widgets()) @@ -220,7 +224,8 @@ void VehiclePage::load_plugin() } DataTab::DataTab(Arbiter &arbiter, QWidget *parent) - : QWidget(parent), arbiter(arbiter) + : QWidget(parent) + , arbiter(arbiter) { QHBoxLayout *layout = new QHBoxLayout(this); @@ -238,15 +243,15 @@ DataTab::DataTab(Arbiter &arbiter, QWidget *parent) sp_right.setHorizontalStretch(2); engine_data->setSizePolicy(sp_right); - connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value) - { + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value){ // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { if(gauge->get_id() == gauge_id){ // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); gauge->set_value(value); } - } }); + } + }); } QWidget *DataTab::speedo_tach_widget() @@ -264,15 +269,6 @@ QWidget *DataTab::speedo_tach_widget() return widget; } -QWidget *DataTab::mileage_data_widget() -{ - QWidget *widget = new QWidget(this); - QHBoxLayout *layout = new QHBoxLayout(widget); - - - return widget; -} - QWidget *DataTab::engine_data_widget() { QWidget *widget = new QWidget(this); @@ -309,12 +305,11 @@ QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) unit_font.setItalic(true); Gauge *gauge = new Gauge(cfg, - value_font, unit_font, Gauge::RIGHT, widget); + value_font, unit_font, Gauge::RIGHT, widget); layout->addWidget(gauge); this->gauges.push_back(gauge); - if (cfg.font_size.label > 0) - { + if (cfg.font_size.label > 0) { QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); label_font.setWeight(QFont::Light); From f42cd9a11b25ea884c96ea81f7be9551d28d9591 Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Sun, 14 May 2023 01:35:24 +0200 Subject: [PATCH 239/332] aggiunto filtro antigelo mscan --- src/canbus/socketcanbus.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 2fa4ca4e..7cf6db43 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -49,8 +49,11 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare QString filtroAC = "CAN USER FILTER CH1 5 06C8\r\n"; this->socket.write(filtroAC.toUtf8()); - QString filtroTempAntigelo = "CAN USER FILTER CH2 0 0510\r\n"; - this->socket.write(filtroTempAntigelo.toUtf8()); + QString filtroTempAntigeloRX1 = "CAN USER FILTER CH1 6 04EC\r\n"; + this->socket.write(filtroTempAntigeloRX1.toUtf8()); + + QString filtroTempAntigeloRX2 = "CAN USER FILTER CH2 0 0510\r\n"; + this->socket.write(filtroTempAntigeloRX2.toUtf8()); DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; } From bc337826270bebdb2c6b4b24a8131c5e921b3e79 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 20 May 2023 17:23:08 +0200 Subject: [PATCH 240/332] prova --- include/app/widgets/obd.hpp | 15 +++++++++++++++ plugins/vehicle/test/test.cpp | 4 ++++ plugins/vehicle/test/test.hpp | 1 + src/app/widgets/obd.cpp | 15 +++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 include/app/widgets/obd.hpp create mode 100644 src/app/widgets/obd.cpp diff --git a/include/app/widgets/obd.hpp b/include/app/widgets/obd.hpp new file mode 100644 index 00000000..dd2ad895 --- /dev/null +++ b/include/app/widgets/obd.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include +#include + +class Arbiter; + +class Obd : public QWidget { + Q_OBJECT + + public: + Obd(Arbiter &arbiter, QWidget *parent = nullptr); + + private: +}; diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 3d794bb8..25c0661b 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -11,6 +11,8 @@ Test::~Test() delete this->climate; if (this->vehicle) delete this->vehicle; + if (this->obd) + delete this->obd; } QList Test::widgets() @@ -18,6 +20,8 @@ QList Test::widgets() QList tabs; if (this->vehicle) tabs.append(this->vehicle); + if (this->obd) + tabs.append(this->obd); return tabs; } diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 9cb32f3d..6d3d4f79 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -5,6 +5,7 @@ #include "plugins/vehicle_plugin.hpp" #include "app/widgets/climate.hpp" #include "app/widgets/vehicle.hpp" +#include "app/widgets/obd.hpp" #include "canbus/socketcanbus.hpp" #include "app/arbiter.hpp" diff --git a/src/app/widgets/obd.cpp b/src/app/widgets/obd.cpp new file mode 100644 index 00000000..725c3948 --- /dev/null +++ b/src/app/widgets/obd.cpp @@ -0,0 +1,15 @@ +#include + +#include "app/arbiter.hpp" + +#include "app/widgets/obd.hpp" + +Obd::Obd(Arbiter &arbiter, QWidget *parent) : QWidget(parent) +{ + this->setObjectName("OBD"); + + auto *layout = new QHBoxLayout(this); + layout->setContentsMargins(0, 0, 0, 0); + layout->addWidget(this->obd, 0, Qt::AlignHCenter); + +} From 294f8d2596a8c9c63b8cd33d0c20d970534e7cf7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 20 May 2023 17:28:24 +0200 Subject: [PATCH 241/332] prova --- plugins/vehicle/test/test.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 25c0661b..46a1394e 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -11,8 +11,8 @@ Test::~Test() delete this->climate; if (this->vehicle) delete this->vehicle; - if (this->obd) - delete this->obd; + if (this->Obd) + delete this->Obd; } QList Test::widgets() @@ -20,8 +20,8 @@ QList Test::widgets() QList tabs; if (this->vehicle) tabs.append(this->vehicle); - if (this->obd) - tabs.append(this->obd); + if (this->Obd) + tabs.append(this->Obd); return tabs; } From 7562513c39ebe3017200ee1b545303789f633491 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 20 May 2023 17:41:11 +0200 Subject: [PATCH 242/332] prova --- plugins/vehicle/test/test.cpp | 8 ++++---- src/app/widgets/obd.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 46a1394e..25c0661b 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -11,8 +11,8 @@ Test::~Test() delete this->climate; if (this->vehicle) delete this->vehicle; - if (this->Obd) - delete this->Obd; + if (this->obd) + delete this->obd; } QList Test::widgets() @@ -20,8 +20,8 @@ QList Test::widgets() QList tabs; if (this->vehicle) tabs.append(this->vehicle); - if (this->Obd) - tabs.append(this->Obd); + if (this->obd) + tabs.append(this->obd); return tabs; } diff --git a/src/app/widgets/obd.cpp b/src/app/widgets/obd.cpp index 725c3948..ed6aeaa4 100644 --- a/src/app/widgets/obd.cpp +++ b/src/app/widgets/obd.cpp @@ -10,6 +10,6 @@ Obd::Obd(Arbiter &arbiter, QWidget *parent) : QWidget(parent) auto *layout = new QHBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); - layout->addWidget(this->obd, 0, Qt::AlignHCenter); + layout->addWidget(this->Obd, 0, Qt::AlignHCenter); } From 44e4938577cbc08e1d1ee09e6ac7a3b5e708b88e Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 20 May 2023 17:44:22 +0200 Subject: [PATCH 243/332] prova --- src/app/widgets/obd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/widgets/obd.cpp b/src/app/widgets/obd.cpp index ed6aeaa4..419a947c 100644 --- a/src/app/widgets/obd.cpp +++ b/src/app/widgets/obd.cpp @@ -10,6 +10,6 @@ Obd::Obd(Arbiter &arbiter, QWidget *parent) : QWidget(parent) auto *layout = new QHBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); - layout->addWidget(this->Obd, 0, Qt::AlignHCenter); + //layout->addWidget(this->Obd, 0, Qt::AlignHCenter); } From 9fd6668c183dec317933cea10f95baae1a2f7300 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 20 May 2023 17:48:53 +0200 Subject: [PATCH 244/332] prova --- plugins/vehicle/test/test.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 25c0661b..46a1394e 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -11,8 +11,8 @@ Test::~Test() delete this->climate; if (this->vehicle) delete this->vehicle; - if (this->obd) - delete this->obd; + if (this->Obd) + delete this->Obd; } QList Test::widgets() @@ -20,8 +20,8 @@ QList Test::widgets() QList tabs; if (this->vehicle) tabs.append(this->vehicle); - if (this->obd) - tabs.append(this->obd); + if (this->Obd) + tabs.append(this->Obd); return tabs; } From 77925c6aa805988f3262aa60094fc9f8f2ef0883 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 20 May 2023 18:20:01 +0200 Subject: [PATCH 245/332] prova --- plugins/vehicle/test/test.cpp | 8 ++++---- plugins/vehicle/test/test.hpp | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 46a1394e..25c0661b 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -11,8 +11,8 @@ Test::~Test() delete this->climate; if (this->vehicle) delete this->vehicle; - if (this->Obd) - delete this->Obd; + if (this->obd) + delete this->obd; } QList Test::widgets() @@ -20,8 +20,8 @@ QList Test::widgets() QList tabs; if (this->vehicle) tabs.append(this->vehicle); - if (this->Obd) - tabs.append(this->Obd); + if (this->obd) + tabs.append(this->obd); return tabs; } diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 6d3d4f79..9ba4108f 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -30,6 +30,7 @@ class Test : public QObject, VehiclePlugin private: Climate *climate; Vehicle *vehicle; + Obd *obd; int lumws = 0; int tempAC = 0; int fanAC = 0; From 52ebe62dce022c7d5b7b03808dc346f870824c7c Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 20 May 2023 19:08:07 +0200 Subject: [PATCH 246/332] prova --- plugins/vehicle/test/test.cpp | 4 ++-- src/app/widgets/obd.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 25c0661b..f1427bb4 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -11,8 +11,8 @@ Test::~Test() delete this->climate; if (this->vehicle) delete this->vehicle; - if (this->obd) - delete this->obd; + //if (this->obd) + // delete this->obd; } QList Test::widgets() diff --git a/src/app/widgets/obd.cpp b/src/app/widgets/obd.cpp index 419a947c..dc4171a7 100644 --- a/src/app/widgets/obd.cpp +++ b/src/app/widgets/obd.cpp @@ -8,8 +8,8 @@ Obd::Obd(Arbiter &arbiter, QWidget *parent) : QWidget(parent) { this->setObjectName("OBD"); - auto *layout = new QHBoxLayout(this); - layout->setContentsMargins(0, 0, 0, 0); + //auto *layout = new QHBoxLayout(this); + //layout->setContentsMargins(0, 0, 0, 0); //layout->addWidget(this->Obd, 0, Qt::AlignHCenter); } From 271c2fb67423823b0e5a8ac218d969056af1fa1c Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 20 May 2023 19:11:45 +0200 Subject: [PATCH 247/332] prova --- plugins/vehicle/test/test.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index f1427bb4..aad0ce57 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -12,7 +12,7 @@ Test::~Test() if (this->vehicle) delete this->vehicle; //if (this->obd) - // delete this->obd; + //delete this->obd; } QList Test::widgets() @@ -20,8 +20,8 @@ QList Test::widgets() QList tabs; if (this->vehicle) tabs.append(this->vehicle); - if (this->obd) - tabs.append(this->obd); + //if (this->obd) + //tabs.append(this->obd); return tabs; } From 645ff268a272774b8abe5b5a7bf1dfb3e55a3d78 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 20 May 2023 19:16:42 +0200 Subject: [PATCH 248/332] prova --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index aad0ce57..c2934137 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -21,7 +21,7 @@ QList Test::widgets() if (this->vehicle) tabs.append(this->vehicle); //if (this->obd) - //tabs.append(this->obd); + tabs.append(this->obd); return tabs; } From d71905fa0d6c1c0b6384d410932468f8ab902c02 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 20 May 2023 19:18:08 +0200 Subject: [PATCH 249/332] prova --- plugins/vehicle/test/test.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index c2934137..5e0258e9 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -11,8 +11,8 @@ Test::~Test() delete this->climate; if (this->vehicle) delete this->vehicle; - //if (this->obd) - //delete this->obd; + if (this->obd) + delete this->obd; } QList Test::widgets() @@ -20,8 +20,8 @@ QList Test::widgets() QList tabs; if (this->vehicle) tabs.append(this->vehicle); - //if (this->obd) - tabs.append(this->obd); + if (this->obd) + //tabs.append(this->obd); return tabs; } From e35a7e0acb96b2a759e0fe42de6ccff5696031a4 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 21 May 2023 23:08:43 +0200 Subject: [PATCH 250/332] fix teoric --- include/app/widgets/obd.hpp | 15 --------------- plugins/vehicle/test/test.cpp | 4 ---- plugins/vehicle/test/test.hpp | 2 -- src/app/widgets/obd.cpp | 15 --------------- 4 files changed, 36 deletions(-) delete mode 100644 include/app/widgets/obd.hpp delete mode 100644 src/app/widgets/obd.cpp diff --git a/include/app/widgets/obd.hpp b/include/app/widgets/obd.hpp deleted file mode 100644 index dd2ad895..00000000 --- a/include/app/widgets/obd.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include -#include - -class Arbiter; - -class Obd : public QWidget { - Q_OBJECT - - public: - Obd(Arbiter &arbiter, QWidget *parent = nullptr); - - private: -}; diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 5e0258e9..3d794bb8 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -11,8 +11,6 @@ Test::~Test() delete this->climate; if (this->vehicle) delete this->vehicle; - if (this->obd) - delete this->obd; } QList Test::widgets() @@ -20,8 +18,6 @@ QList Test::widgets() QList tabs; if (this->vehicle) tabs.append(this->vehicle); - if (this->obd) - //tabs.append(this->obd); return tabs; } diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 9ba4108f..9cb32f3d 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -5,7 +5,6 @@ #include "plugins/vehicle_plugin.hpp" #include "app/widgets/climate.hpp" #include "app/widgets/vehicle.hpp" -#include "app/widgets/obd.hpp" #include "canbus/socketcanbus.hpp" #include "app/arbiter.hpp" @@ -30,7 +29,6 @@ class Test : public QObject, VehiclePlugin private: Climate *climate; Vehicle *vehicle; - Obd *obd; int lumws = 0; int tempAC = 0; int fanAC = 0; diff --git a/src/app/widgets/obd.cpp b/src/app/widgets/obd.cpp deleted file mode 100644 index dc4171a7..00000000 --- a/src/app/widgets/obd.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -#include "app/arbiter.hpp" - -#include "app/widgets/obd.hpp" - -Obd::Obd(Arbiter &arbiter, QWidget *parent) : QWidget(parent) -{ - this->setObjectName("OBD"); - - //auto *layout = new QHBoxLayout(this); - //layout->setContentsMargins(0, 0, 0, 0); - //layout->addWidget(this->Obd, 0, Qt::AlignHCenter); - -} From bf0c3fa5a6989bb2abe8904525e614f8ea30008b Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 21 May 2023 23:17:51 +0200 Subject: [PATCH 251/332] prova --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index a8616c09..f9b82c39 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -100,7 +100,7 @@ VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) void VehiclePage::init() { - this->addTab(new DataTab(this->arbiter, this), "Data"); + this->addTab(new DataTab(this->arbiter, this), "Da&wta"); this->config = Config::get_instance(); for (auto device : QCanBus::instance()->availableDevices("socketcan")) From b114481ecefcf4eb6790c9e684749eb895c06515 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 21 May 2023 23:35:46 +0200 Subject: [PATCH 252/332] test --- include/app/pages/vehicle.hpp | 1 + src/app/pages/vehicle.cpp | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 825d4a17..a68926df 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -97,6 +97,7 @@ class DataTab : public QWidget { public: DataTab(Arbiter &arbiter, QWidget *parent = nullptr); + QWidget *obd; private: Arbiter &arbiter; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index f9b82c39..2784ac9c 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -100,7 +100,8 @@ VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) void VehiclePage::init() { - this->addTab(new DataTab(this->arbiter, this), "Da&wta"); + this->addTab(new DataTab(this->arbiter, this), "Data"); + this->addTab(obd, "OBD"); this->config = Config::get_instance(); for (auto device : QCanBus::instance()->availableDevices("socketcan")) @@ -228,6 +229,7 @@ DataTab::DataTab(Arbiter &arbiter, QWidget *parent) , arbiter(arbiter) { QHBoxLayout *layout = new QHBoxLayout(this); + QHBoxLayout *layout_obd = new QHBoxLayout(obd); QWidget *driving_data = this->speedo_tach_widget(); layout->addWidget(driving_data); From b615fce4c8926d1dbd077af53d6448724737c8ec Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 21 May 2023 23:54:14 +0200 Subject: [PATCH 253/332] prova --- include/app/pages/vehicle.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index a68926df..4f40a6df 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -13,6 +13,7 @@ #include "app/pages/page.hpp" class Arbiter; +QWidget *obd; typedef QPair units_t; struct font_size_t { @@ -97,7 +98,6 @@ class DataTab : public QWidget { public: DataTab(Arbiter &arbiter, QWidget *parent = nullptr); - QWidget *obd; private: Arbiter &arbiter; From d962068677dd110ee3f418e0268429cfc874cad4 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 04:11:47 +0200 Subject: [PATCH 254/332] prova --- include/app/pages/vehicle.hpp | 2 +- src/app/pages/vehicle.cpp | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 4f40a6df..8f32d3a4 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -13,7 +13,6 @@ #include "app/pages/page.hpp" class Arbiter; -QWidget *obd; typedef QPair units_t; struct font_size_t { @@ -74,6 +73,7 @@ class VehiclePage : public QTabWidget, public Page { public: VehiclePage(Arbiter &arbiter, QWidget *parent = nullptr); + QWidget *obd; void init() override; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 2784ac9c..cace2f87 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -293,6 +293,27 @@ QWidget *DataTab::engine_data_widget() return widget; } +QWidget *DataTab::obd_data_widget() +{ + QVBoxLayout *layout = new QVBoxLayout(obd); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.COOLANT_TEMP)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.AUTONOMIA)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.EXT_TEMP)); + layout->addStretch(); + + return widget; +} + QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) { QWidget *widget = new QWidget(this); From ab1ee6cbd9ef550dea6ff47852f28c63caa17869 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 04:22:50 +0200 Subject: [PATCH 255/332] a --- src/app/pages/vehicle.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index cace2f87..e74328d9 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -293,6 +293,8 @@ QWidget *DataTab::engine_data_widget() return widget; } +/* + QWidget *DataTab::obd_data_widget() { QVBoxLayout *layout = new QVBoxLayout(obd); @@ -314,6 +316,8 @@ QWidget *DataTab::obd_data_widget() return widget; } +*/ + QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) { QWidget *widget = new QWidget(this); From 3f67cd6321d33385046c95ed0f4c6fb610f53647 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 04:32:45 +0200 Subject: [PATCH 256/332] prova --- include/app/pages/vehicle.hpp | 10 ++++++++++ src/app/pages/vehicle.cpp | 13 +++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 8f32d3a4..40208b75 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -107,3 +107,13 @@ class DataTab : public QWidget { std::vector gauges; }; + +class ObdTab : public QWidget { + Q_OBJECT + + public: + ObdTab(Arbiter &arbiter, QWidget *parent = nullptr); + + private: + Arbiter &arbiter; +}; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index e74328d9..54084baf 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -28,6 +28,16 @@ GaugesConfig gauges_cfg = } }; +ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) + : QWidget(parent) + , arbiter(arbiter) +{ + QVBoxLayout *layout = new QVBoxLayout(this); + + //layout->addWidget(this->track_widget()); + //layout->addWidget(this->controls_widget()); +} + Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) : QWidget(parent) { @@ -101,7 +111,7 @@ VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) void VehiclePage::init() { this->addTab(new DataTab(this->arbiter, this), "Data"); - this->addTab(obd, "OBD"); + this->addTab(new ObdTab(this->arbiter, this), "OBD"); this->config = Config::get_instance(); for (auto device : QCanBus::instance()->availableDevices("socketcan")) @@ -229,7 +239,6 @@ DataTab::DataTab(Arbiter &arbiter, QWidget *parent) , arbiter(arbiter) { QHBoxLayout *layout = new QHBoxLayout(this); - QHBoxLayout *layout_obd = new QHBoxLayout(obd); QWidget *driving_data = this->speedo_tach_widget(); layout->addWidget(driving_data); From fa0477699174854eb2fb250db2a416ebb7d42bc5 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 04:46:14 +0200 Subject: [PATCH 257/332] miracolo se va --- src/app/pages/vehicle.cpp | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 54084baf..e0a1d6bc 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -32,10 +32,25 @@ ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) : QWidget(parent) , arbiter(arbiter) { - QVBoxLayout *layout = new QVBoxLayout(this); - + //QVBoxLayout *layout = new QVBoxLayout(this); //layout->addWidget(this->track_widget()); //layout->addWidget(this->controls_widget()); + + QHBoxLayout *layout = new QHBoxLayout(this); + + QWidget *driving_data = this->speedo_tach_widget(); + layout->addWidget(driving_data); + layout->addWidget(Session::Forge::br(true)); + + QWidget *obd_data = this->obd_data_widget(); + layout->addWidget(obd_data); + + QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); + sp_left.setHorizontalStretch(5); + driving_data->setSizePolicy(sp_left); + QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); + sp_right.setHorizontalStretch(2); + engine_data->setSizePolicy(sp_right); } Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) @@ -111,7 +126,7 @@ VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) void VehiclePage::init() { this->addTab(new DataTab(this->arbiter, this), "Data"); - this->addTab(new ObdTab(this->arbiter, this), "OBD"); + this->addTab(new ObdTab(this->arbiter, this), "Obd"); this->config = Config::get_instance(); for (auto device : QCanBus::instance()->availableDevices("socketcan")) @@ -302,31 +317,20 @@ QWidget *DataTab::engine_data_widget() return widget; } -/* - QWidget *DataTab::obd_data_widget() { - QVBoxLayout *layout = new QVBoxLayout(obd); + QVBoxLayout *layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.COOLANT_TEMP)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.AUTONOMIA)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.EXT_TEMP)); layout->addStretch(); + //layout->addWidget(Session::Forge::br()); return widget; } -*/ - QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) { QWidget *widget = new QWidget(this); From 7d68a5424fe976ea6e89bdf222f626e94be5dd10 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 04:48:54 +0200 Subject: [PATCH 258/332] prova --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index e0a1d6bc..2550a3ed 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -50,7 +50,7 @@ ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) driving_data->setSizePolicy(sp_left); QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); sp_right.setHorizontalStretch(2); - engine_data->setSizePolicy(sp_right); + obd_data->setSizePolicy(sp_right); } Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) From 1778fc0f1f4abf56264ff0eba26e54c669cf9ab7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 04:55:34 +0200 Subject: [PATCH 259/332] prova --- include/app/pages/vehicle.hpp | 1 + src/app/pages/vehicle.cpp | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 40208b75..f369db88 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -116,4 +116,5 @@ class ObdTab : public QWidget { private: Arbiter &arbiter; + QWidget *obd_data_widget(); }; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 2550a3ed..a89c754f 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -38,16 +38,16 @@ ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) QHBoxLayout *layout = new QHBoxLayout(this); - QWidget *driving_data = this->speedo_tach_widget(); - layout->addWidget(driving_data); - layout->addWidget(Session::Forge::br(true)); + //QWidget *driving_data = this->speedo_tach_widget(); + //layout->addWidget(driving_data); + //layout->addWidget(Session::Forge::br(true)); QWidget *obd_data = this->obd_data_widget(); layout->addWidget(obd_data); - QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); - sp_left.setHorizontalStretch(5); - driving_data->setSizePolicy(sp_left); + //QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); + //sp_left.setHorizontalStretch(5); + //driving_data->setSizePolicy(sp_left); QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); sp_right.setHorizontalStretch(2); obd_data->setSizePolicy(sp_right); @@ -317,14 +317,14 @@ QWidget *DataTab::engine_data_widget() return widget; } -QWidget *DataTab::obd_data_widget() +QWidget *ObdTab::obd_data_widget() { QVBoxLayout *layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.EXT_TEMP)); + layout->addWidget(DataTab->vehicle_data_widget(gauges_cfg.EXT_TEMP)); layout->addStretch(); //layout->addWidget(Session::Forge::br()); From 70a979d0b046289cc45e70a200501b77193f58dc Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 05:01:59 +0200 Subject: [PATCH 260/332] prova --- include/app/pages/vehicle.hpp | 4 ++++ src/app/pages/vehicle.cpp | 36 +++++++++++++++++++++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index f369db88..2abe0e9f 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -117,4 +117,8 @@ class ObdTab : public QWidget { private: Arbiter &arbiter; QWidget *obd_data_widget(); + QWidget *vehicle_data_widget(GaugeConfig cfg); + + std::vector gauges; + }; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index a89c754f..7a7d1e8a 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -319,12 +319,13 @@ QWidget *DataTab::engine_data_widget() QWidget *ObdTab::obd_data_widget() { - QVBoxLayout *layout = new QVBoxLayout(this); + QWidget *widget = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(widget); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); layout->addStretch(); - layout->addWidget(DataTab->vehicle_data_widget(gauges_cfg.EXT_TEMP)); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.EXT_TEMP)); layout->addStretch(); //layout->addWidget(Session::Forge::br()); @@ -359,5 +360,36 @@ QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) layout->addWidget(gauge_label); } + return widget; +} + +QWidget *ObdTab::vehicle_data_widget(GaugeConfig cfg) +{ + QWidget *widget = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(widget); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + QFont value_font(this->arbiter.forge().font(cfg.font_size.value, true)); + + QFont unit_font(this->arbiter.forge().font(cfg.font_size.unit)); + unit_font.setWeight(QFont::Light); + unit_font.setItalic(true); + + Gauge *gauge = new Gauge(cfg, + value_font, unit_font, Gauge::RIGHT, widget); + layout->addWidget(gauge); + this->gauges.push_back(gauge); + + if (cfg.font_size.label > 0) { + QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); + label_font.setWeight(QFont::Light); + + QLabel *gauge_label = new QLabel(cfg.description, widget); + gauge_label->setFont(label_font); + gauge_label->setAlignment(Qt::AlignHCenter); + layout->addWidget(gauge_label); + } + return widget; } \ No newline at end of file From 72c29d4ab9b260297690c5fb906d627b5a95ed5b Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 05:05:24 +0200 Subject: [PATCH 261/332] a --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 7a7d1e8a..81621378 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -325,7 +325,7 @@ QWidget *ObdTab::obd_data_widget() layout->setSpacing(0); layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.EXT_TEMP)); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.INTAKE_TEMP)); layout->addStretch(); //layout->addWidget(Session::Forge::br()); From 144c84ac7c0827296a148eafdf27e84680d3a678 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 05:10:48 +0200 Subject: [PATCH 262/332] a --- src/app/pages/vehicle.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 81621378..8a008347 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -32,10 +32,6 @@ ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) : QWidget(parent) , arbiter(arbiter) { - //QVBoxLayout *layout = new QVBoxLayout(this); - //layout->addWidget(this->track_widget()); - //layout->addWidget(this->controls_widget()); - QHBoxLayout *layout = new QHBoxLayout(this); //QWidget *driving_data = this->speedo_tach_widget(); @@ -51,6 +47,16 @@ ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); sp_right.setHorizontalStretch(2); obd_data->setSizePolicy(sp_right); + + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value){ + // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { + if(gauge->get_id() == gauge_id){ + // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); + gauge->set_value(value); + } + } + }); } Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) From 4dad6fca9eaaccbb0ee607162f8f850b8414d6ce Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 05:18:24 +0200 Subject: [PATCH 263/332] ok --- include/app/pages/vehicle.hpp | 15 +++++++ src/app/pages/vehicle.cpp | 78 +++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 2abe0e9f..8bc67ae8 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -122,3 +122,18 @@ class ObdTab : public QWidget { std::vector gauges; }; + +class LSTab : public QWidget { + Q_OBJECT + + public: + LSTab(Arbiter &arbiter, QWidget *parent = nullptr); + + private: + Arbiter &arbiter; + QWidget *ls_data_widget(); + QWidget *vehicle_data_widget(GaugeConfig cfg); + + std::vector gauges; + +}; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 8a008347..225a48e5 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -59,6 +59,37 @@ ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) }); } +LSTab::LSTab(Arbiter &arbiter, QWidget *parent) + : QWidget(parent) + , arbiter(arbiter) +{ + QHBoxLayout *layout = new QHBoxLayout(this); + + //QWidget *driving_data = this->speedo_tach_widget(); + //layout->addWidget(driving_data); + //layout->addWidget(Session::Forge::br(true)); + + QWidget *ls_data = this->ls_data_widget(); + layout->addWidget(ls_data); + + //QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); + //sp_left.setHorizontalStretch(5); + //driving_data->setSizePolicy(sp_left); + QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); + sp_right.setHorizontalStretch(2); + ls_data->setSizePolicy(sp_right); + + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value){ + // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { + if(gauge->get_id() == gauge_id){ + // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); + gauge->set_value(value); + } + } + }); +} + Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) : QWidget(parent) { @@ -133,6 +164,7 @@ void VehiclePage::init() { this->addTab(new DataTab(this->arbiter, this), "Data"); this->addTab(new ObdTab(this->arbiter, this), "Obd"); + this->addTab(new LSTab(this->arbiter, this), "LS"); this->config = Config::get_instance(); for (auto device : QCanBus::instance()->availableDevices("socketcan")) @@ -338,6 +370,21 @@ QWidget *ObdTab::obd_data_widget() return widget; } +QWidget *LSTab::obd_data_widget() +{ + QWidget *widget = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(widget); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.INTAKE_TEMP)); + layout->addStretch(); + //layout->addWidget(Session::Forge::br()); + + return widget; +} + QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) { QWidget *widget = new QWidget(this); @@ -397,5 +444,36 @@ QWidget *ObdTab::vehicle_data_widget(GaugeConfig cfg) layout->addWidget(gauge_label); } + return widget; +} + +QWidget *LSTab::vehicle_data_widget(GaugeConfig cfg) +{ + QWidget *widget = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(widget); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + QFont value_font(this->arbiter.forge().font(cfg.font_size.value, true)); + + QFont unit_font(this->arbiter.forge().font(cfg.font_size.unit)); + unit_font.setWeight(QFont::Light); + unit_font.setItalic(true); + + Gauge *gauge = new Gauge(cfg, + value_font, unit_font, Gauge::RIGHT, widget); + layout->addWidget(gauge); + this->gauges.push_back(gauge); + + if (cfg.font_size.label > 0) { + QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); + label_font.setWeight(QFont::Light); + + QLabel *gauge_label = new QLabel(cfg.description, widget); + gauge_label->setFont(label_font); + gauge_label->setAlignment(Qt::AlignHCenter); + layout->addWidget(gauge_label); + } + return widget; } \ No newline at end of file From c80e993cc10c9bf394990cc342f694b3d3a8e2c4 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 22 May 2023 05:21:31 +0200 Subject: [PATCH 264/332] aa --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 225a48e5..051f083c 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -370,7 +370,7 @@ QWidget *ObdTab::obd_data_widget() return widget; } -QWidget *LSTab::obd_data_widget() +QWidget *LSTab::ls_data_widget() { QWidget *widget = new QWidget(this); QVBoxLayout *layout = new QVBoxLayout(widget); From fde9bb1c1e1d31d3d28a13f71b368da0bd995086 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 23 May 2023 01:17:29 +0200 Subject: [PATCH 265/332] prova --- include/app/pages/vehicle.hpp | 17 +++++++++++ src/app/pages/vehicle.cpp | 53 ++++++++++++++++++++++++++++++++++- 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 8bc67ae8..20d3b3ae 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -39,6 +39,23 @@ struct GaugesConfig { GaugeConfig SPEED; GaugeConfig INTAKE_TEMP; GaugeConfig EXT_TEMP; + GaugeConfig VOLT; + GaugeConfig MAF; + GaugeConfig MAP; + GaugeConfig APP; + GaugeConfig TPAPWM; + GaugeConfig INJ; + GaugeConfig TVENT; + GaugeConfig TANK; + GaugeConfig IGNANGLE; + GaugeConfig BATT; + GaugeConfig RITCYL1; + GaugeConfig RITCYL2; + GaugeConfig RITCYL3; + GaugeConfig RITCYL4; + GaugeConfig SFT; + GaugeConfig LMB1; + GaugeConfig LMB2; }; class Gauge : public QWidget { diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 051f083c..245a730d 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -20,11 +20,62 @@ GaugesConfig gauges_cfg = {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } }, - {"intake_temp", "Intake Air Temperature", {"°F", "°C"}, + {"intake_temp", "Temperatura Aspirazione", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } }, {"ext_temp", "Temperatura Esterna", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } + }, + {"volt", "Tensione Batteria", {"V", "V"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"maf", "Debimetro (MAF)", {"g/s", "g/s"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"map", "Pressione Aspirazione (MAP)", {"kPa", "kPa"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"app", "Acceleratore", {"%", "%"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"tpapwm", "Corpo Farfallato", {"%", "%"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"inj", "Iniezione", {"ms", "ms"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"tvent", "Pompa Benzina", {"%", "%"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"tank", "Serbatoio Benzina", {"L", "L"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"ignangle", "Anticipo d'Accensione", {"°CA", "°CA"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"batt", "Sensore di Detonazione", {"V", "V"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"ritcyl1", "Ritardo di Scoppio C1", {"°CA", "°CA"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"ritcyl2", "Ritardo di Scoppio C2", {"°CA", "°CA"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"ritcyl3", "Ritardo di Scoppio C3", {"°CA", "°CA"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"ritcyl4", "Ritardo di Scoppio C4", {"°CA", "°CA"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"sft", "Correzione Istantanea Carburazione (Benzina)", {"%", "%"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"lmb1", "Sonda Lambda 1", {"V", "V"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } + }, + {"lmb2", "Sonda Lambda 2", {"V", "V"}, + {10, 16, 12}, 1, [](double x, bool si) { return x; } } }; From da70545e960aa30a294583c87af268f44bc95ca4 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 23 May 2023 01:26:28 +0200 Subject: [PATCH 266/332] proca --- src/app/pages/vehicle.cpp | 69 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 245a730d..0bbac505 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -416,7 +416,74 @@ QWidget *ObdTab::obd_data_widget() layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.INTAKE_TEMP)); layout->addStretch(); - //layout->addWidget(Session::Forge::br()); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.VOLT)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.MAF)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.MAP)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.APP)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.TPAPWM)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.INJ)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.TVENT)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.TANK)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.IGNANGLE)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.BATT)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL1)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL2)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL3)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL4)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.SFT)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LMB1)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LMB2)); + layout->addStretch(); return widget; } From b84b7d8747b546f02ffd2c0256fddd66c8bac165 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 23 May 2023 01:39:09 +0200 Subject: [PATCH 267/332] prova --- include/app/pages/vehicle.hpp | 56 +++-- src/app/pages/vehicle.cpp | 409 +++++++++++++++++----------------- 2 files changed, 239 insertions(+), 226 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 20d3b3ae..dedc652d 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -15,14 +15,16 @@ class Arbiter; typedef QPair units_t; -struct font_size_t { +struct font_size_t +{ int label; int value; int unit; }; typedef std::function unit_converter_t; -struct GaugeConfig { +struct GaugeConfig +{ QString id; QString description; units_t units; @@ -32,7 +34,8 @@ struct GaugeConfig { }; // typedef QList Gauges; -struct GaugesConfig { +struct GaugesConfig +{ GaugeConfig AUTONOMIA; GaugeConfig COOLANT_TEMP; GaugeConfig RPM; @@ -58,18 +61,23 @@ struct GaugesConfig { GaugeConfig LMB2; }; -class Gauge : public QWidget { +class Gauge : public QWidget +{ Q_OBJECT - public: - enum Orientation { BOTTOM, RIGHT }; +public: + enum Orientation + { + BOTTOM, + RIGHT + }; Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Orientation orientation, QWidget *parent = nullptr); inline QString get_id() { return this->id; }; void set_value(double value); - private: +private: QString format_value(double value); QString null_value(); QLabel *value_label; @@ -81,20 +89,21 @@ class Gauge : public QWidget { int precision; units_t units; - signals: +signals: void toggle_unit(bool si); }; -class VehiclePage : public QTabWidget, public Page { +class VehiclePage : public QTabWidget, public Page +{ Q_OBJECT - public: +public: VehiclePage(Arbiter &arbiter, QWidget *parent = nullptr); QWidget *obd; void init() override; - private: +private: void get_plugins(); void load_plugin(); QWidget *dialog_body(); @@ -110,13 +119,14 @@ class VehiclePage : public QTabWidget, public Page { Config *config; }; -class DataTab : public QWidget { +class DataTab : public QWidget +{ Q_OBJECT - public: +public: DataTab(Arbiter &arbiter, QWidget *parent = nullptr); - private: +private: Arbiter &arbiter; QWidget *speedo_tach_widget(); QWidget *engine_data_widget(); @@ -125,32 +135,32 @@ class DataTab : public QWidget { std::vector gauges; }; -class ObdTab : public QWidget { +class ObdTab : public QWidget +{ Q_OBJECT - public: +public: ObdTab(Arbiter &arbiter, QWidget *parent = nullptr); - private: +private: Arbiter &arbiter; - QWidget *obd_data_widget(); + QWidget *obd_data_widget(int colonna); QWidget *vehicle_data_widget(GaugeConfig cfg); std::vector gauges; - }; -class LSTab : public QWidget { +class LSTab : public QWidget +{ Q_OBJECT - public: +public: LSTab(Arbiter &arbiter, QWidget *parent = nullptr); - private: +private: Arbiter &arbiter; QWidget *ls_data_widget(); QWidget *vehicle_data_widget(GaugeConfig cfg); std::vector gauges; - }; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 0bbac505..5878b58a 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -6,143 +6,132 @@ #include "app/window.hpp" #include "plugins/vehicle_plugin.hpp" -GaugesConfig gauges_cfg = -{ - {"autonomia", "Autonomia", {"Miles", "Km"}, - {10, 16, 12}, 0, [](double x, bool _) { return x; } - }, - {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, - {10, 16, 12}, 0, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } - }, - {"rpm", "Giri al Minuto (RPM)", {"rpm", "rpm"}, - {0, 24, 12}, 0, [](double x, bool _) { return x; } - }, - {"speed", "Velocità", {"mph", "km/h"}, - {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); } - }, - {"intake_temp", "Temperatura Aspirazione", {"°F", "°C"}, - {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } - }, - {"ext_temp", "Temperatura Esterna", {"°F", "°C"}, - {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); } - }, - {"volt", "Tensione Batteria", {"V", "V"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"maf", "Debimetro (MAF)", {"g/s", "g/s"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"map", "Pressione Aspirazione (MAP)", {"kPa", "kPa"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"app", "Acceleratore", {"%", "%"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"tpapwm", "Corpo Farfallato", {"%", "%"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"inj", "Iniezione", {"ms", "ms"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"tvent", "Pompa Benzina", {"%", "%"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"tank", "Serbatoio Benzina", {"L", "L"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"ignangle", "Anticipo d'Accensione", {"°CA", "°CA"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"batt", "Sensore di Detonazione", {"V", "V"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"ritcyl1", "Ritardo di Scoppio C1", {"°CA", "°CA"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"ritcyl2", "Ritardo di Scoppio C2", {"°CA", "°CA"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"ritcyl3", "Ritardo di Scoppio C3", {"°CA", "°CA"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"ritcyl4", "Ritardo di Scoppio C4", {"°CA", "°CA"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"sft", "Correzione Istantanea Carburazione (Benzina)", {"%", "%"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"lmb1", "Sonda Lambda 1", {"V", "V"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - }, - {"lmb2", "Sonda Lambda 2", {"V", "V"}, - {10, 16, 12}, 1, [](double x, bool si) { return x; } - } -}; +GaugesConfig gauges_cfg = + { + {"autonomia", "Autonomia", {"Miles", "Km"}, {10, 16, 12}, 0, [](double x, bool _) + { return x; }}, + {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, {10, 16, 12}, 0, [](double x, bool si) + { return si ? x : Conversion::c_to_f(x); }}, + {"rpm", "Giri al Minuto (RPM)", {"rpm", "rpm"}, {0, 24, 12}, 0, [](double x, bool _) + { return x; }}, + {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) + { return si ? x : Conversion::kph_to_mph(x); }}, + {"intake_temp", "Temperatura Aspirazione", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) + { return si ? x : Conversion::c_to_f(x); }}, + {"ext_temp", "Temperatura Esterna", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) + { return si ? x : Conversion::c_to_f(x); }}, + {"volt", "Tensione Batteria", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"maf", "Debimetro (MAF)", {"g/s", "g/s"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"map", "Pressione Aspirazione (MAP)", {"kPa", "kPa"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"app", "Acceleratore", {"%", "%"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"tpapwm", "Corpo Farfallato", {"%", "%"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"inj", "Iniezione", {"ms", "ms"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"tvent", "Pompa Benzina", {"%", "%"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"tank", "Serbatoio Benzina", {"L", "L"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"ignangle", "Anticipo d'Accensione", {"°CA", "°CA"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"batt", "Sensore di Detonazione", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"ritcyl1", "Ritardo di Scoppio C1", {"°CA", "°CA"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"ritcyl2", "Ritardo di Scoppio C2", {"°CA", "°CA"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"ritcyl3", "Ritardo di Scoppio C3", {"°CA", "°CA"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"ritcyl4", "Ritardo di Scoppio C4", {"°CA", "°CA"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"sft", "Correzione Istantanea Carburazione (Benzina)", {"%", "%"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"lmb1", "Sonda Lambda 1", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}, + {"lmb2", "Sonda Lambda 2", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool si) + { return x; }}}; ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) - : QWidget(parent) - , arbiter(arbiter) + : QWidget(parent), arbiter(arbiter) { QHBoxLayout *layout = new QHBoxLayout(this); - //QWidget *driving_data = this->speedo_tach_widget(); - //layout->addWidget(driving_data); - //layout->addWidget(Session::Forge::br(true)); + // QWidget *driving_data = this->speedo_tach_widget(); + // layout->addWidget(driving_data); + // layout->addWidget(Session::Forge::br(true)); - QWidget *obd_data = this->obd_data_widget(); - layout->addWidget(obd_data); + QWidget *obd_data1 = this->obd_data_widget(1); + layout->addWidget(obd_data1); + layout->addWidget(Session::Forge::br(true)); + QWidget *obd_data2 = this->obd_data_widget(2); + layout->addWidget(obd_data2); + layout->addWidget(Session::Forge::br(true)); + QWidget *obd_data3 = this->obd_data_widget(3); + layout->addWidget(obd_data3); + layout->addWidget(Session::Forge::br(true)); + QWidget *obd_data4 = this->obd_data_widget(4); + layout->addWidget(obd_data4); + layout->addWidget(Session::Forge::br(true)); + QWidget *obd_data5 = this->obd_data_widget(5); + layout->addWidget(obd_data5); + layout->addWidget(Session::Forge::br(true)); + QWidget *obd_data6 = this->obd_data_widget(6); + layout->addWidget(obd_data6); - //QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); - //sp_left.setHorizontalStretch(5); - //driving_data->setSizePolicy(sp_left); + // QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); + // sp_left.setHorizontalStretch(5); + // driving_data->setSizePolicy(sp_left); QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); sp_right.setHorizontalStretch(2); obd_data->setSizePolicy(sp_right); - connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value){ + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value) + { // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { if(gauge->get_id() == gauge_id){ // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); gauge->set_value(value); } - } - }); + } }); } LSTab::LSTab(Arbiter &arbiter, QWidget *parent) - : QWidget(parent) - , arbiter(arbiter) + : QWidget(parent), arbiter(arbiter) { QHBoxLayout *layout = new QHBoxLayout(this); - //QWidget *driving_data = this->speedo_tach_widget(); - //layout->addWidget(driving_data); - //layout->addWidget(Session::Forge::br(true)); + // QWidget *driving_data = this->speedo_tach_widget(); + // layout->addWidget(driving_data); + // layout->addWidget(Session::Forge::br(true)); QWidget *ls_data = this->ls_data_widget(); layout->addWidget(ls_data); - //QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); - //sp_left.setHorizontalStretch(5); - //driving_data->setSizePolicy(sp_left); + // QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); + // sp_left.setHorizontalStretch(5); + // driving_data->setSizePolicy(sp_left); QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); sp_right.setHorizontalStretch(2); ls_data->setSizePolicy(sp_right); - connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value){ + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value) + { // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { if(gauge->get_id() == gauge_id){ // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); gauge->set_value(value); } - } - }); + } }); } Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) -: QWidget(parent) + : QWidget(parent) { Config *config = Config::get_instance(); @@ -168,11 +157,11 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat unit_label->setFont(unit_font); unit_label->setAlignment(Qt::AlignCenter); - connect(config, &Config::si_units_changed, [this, unit_label](bool si) { + connect(config, &Config::si_units_changed, [this, unit_label](bool si) + { this->si = si; unit_label->setText(this->si ? this->units.second : this->units.first); - value_label->setText(this->null_value()); - }); + value_label->setText(this->null_value()); }); layout->addStretch(6); layout->addWidget(value_label); @@ -181,8 +170,9 @@ Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientat layout->addStretch(4); } -void Gauge::set_value(double value){ - DASH_LOG(debug)<<"[Gauges] set_value: "<setText(this->format_value(this->converter(value, this->si))); } @@ -206,8 +196,7 @@ QString Gauge::null_value() } VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) - : QTabWidget(parent) - , Page(arbiter, "Vehicle", "directions_car", true, this) + : QTabWidget(parent), Page(arbiter, "Vehicle", "directions_car", true, this) { } @@ -229,13 +218,15 @@ void VehiclePage::init() Dialog *dialog = new Dialog(this->arbiter, true, this->window()); dialog->set_body(this->dialog_body()); QPushButton *load_button = new QPushButton("load"); - connect(load_button, &QPushButton::clicked, [this]() { this->load_plugin(); }); + connect(load_button, &QPushButton::clicked, [this]() + { this->load_plugin(); }); dialog->set_button(load_button); QPushButton *settings_button = new QPushButton(this); settings_button->setFlat(true); this->arbiter.forge().iconize("settings", settings_button, 24); - connect(settings_button, &QPushButton::clicked, [dialog]() { dialog->open(); }); + connect(settings_button, &QPushButton::clicked, [dialog]() + { dialog->open(); }); this->setCornerWidget(settings_button); this->load_plugin(); @@ -256,12 +247,10 @@ QWidget *VehiclePage::dialog_body() QStringList devices = this->config->get_vehicle_can_bus() ? this->can_devices : this->serial_devices; Selector *interface_selector = new Selector(devices, this->config->get_vehicle_interface(), this->arbiter.forge().font(14), this->arbiter, widget, "disabled"); interface_selector->setVisible((this->can_devices.size() > 0) || (this->serial_devices.size() > 0)); - connect(interface_selector, &Selector::item_changed, [config = this->config](QString item){ - config->set_vehicle_interface(item); - }); - connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state){ - interface_selector->set_options(state ? this->can_devices : this->serial_devices); - }); + connect(interface_selector, &Selector::item_changed, [config = this->config](QString item) + { config->set_vehicle_interface(item); }); + connect(this->config, &Config::vehicle_can_bus_changed, [this, interface_selector](bool state) + { interface_selector->set_options(state ? this->can_devices : this->serial_devices); }); layout->addWidget(interface_selector, 1); layout->addWidget(Session::Forge::br(), 1); @@ -284,9 +273,8 @@ QWidget *VehiclePage::can_bus_toggle_row() QRadioButton *socketcan_button = new QRadioButton("SocketCAN", group); socketcan_button->setChecked(this->config->get_vehicle_can_bus()); socketcan_button->setEnabled(this->can_devices.size() > 0); - connect(socketcan_button, &QRadioButton::clicked, [config = this->config]{ - config->set_vehicle_can_bus(true); - }); + connect(socketcan_button, &QRadioButton::clicked, [config = this->config] + { config->set_vehicle_can_bus(true); }); group_layout->addWidget(socketcan_button); layout->addWidget(group, 1, Qt::AlignHCenter); @@ -305,7 +293,8 @@ QWidget *VehiclePage::si_units_row_widget() Switch *toggle = new Switch(widget); toggle->scale(this->arbiter.layout().scale); toggle->setChecked(this->config->get_si_units()); - connect(toggle, &Switch::stateChanged, [config = this->config](bool state) { config->set_si_units(state); }); + connect(toggle, &Switch::stateChanged, [config = this->config](bool state) + { config->set_si_units(state); }); layout->addWidget(toggle, 1, Qt::AlignHCenter); return widget; @@ -313,7 +302,8 @@ QWidget *VehiclePage::si_units_row_widget() void VehiclePage::get_plugins() { - for (const QFileInfo &plugin : Session::plugin_dir("vehicle").entryInfoList(QDir::Files)) { + for (const QFileInfo &plugin : Session::plugin_dir("vehicle").entryInfoList(QDir::Files)) + { if (QLibrary::isLibrary(plugin.absoluteFilePath())) this->plugins[Session::fmt_plugin(plugin.baseName())] = plugin; } @@ -325,10 +315,12 @@ void VehiclePage::load_plugin() this->active_plugin->unload(); QString key = this->plugin_selector->get_current(); - if (!key.isNull()) { + if (!key.isNull()) + { this->active_plugin->setFileName(this->plugins[key].absoluteFilePath()); - if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) { + if (VehiclePlugin *plugin = qobject_cast(this->active_plugin->instance())) + { plugin->dashize(&this->arbiter); plugin->init(((SocketCANBus *)SocketCANBus::get_instance())); for (QWidget *tab : plugin->widgets()) @@ -339,8 +331,7 @@ void VehiclePage::load_plugin() } DataTab::DataTab(Arbiter &arbiter, QWidget *parent) - : QWidget(parent) - , arbiter(arbiter) + : QWidget(parent), arbiter(arbiter) { QHBoxLayout *layout = new QHBoxLayout(this); @@ -358,15 +349,15 @@ DataTab::DataTab(Arbiter &arbiter, QWidget *parent) sp_right.setHorizontalStretch(2); engine_data->setSizePolicy(sp_right); - connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value){ + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value) + { // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { if(gauge->get_id() == gauge_id){ // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); gauge->set_value(value); } - } - }); + } }); } QWidget *DataTab::speedo_tach_widget() @@ -406,84 +397,93 @@ QWidget *DataTab::engine_data_widget() return widget; } -QWidget *ObdTab::obd_data_widget() +QWidget *ObdTab::obd_data_widget(int colonna) { QWidget *widget = new QWidget(this); QVBoxLayout *layout = new QVBoxLayout(widget); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.INTAKE_TEMP)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.VOLT)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.MAF)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.MAP)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.APP)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.TPAPWM)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.INJ)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.TVENT)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.TANK)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.IGNANGLE)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.BATT)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL1)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL2)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL3)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL4)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.SFT)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.LMB1)); - layout->addStretch(); - layout->addWidget(Session::Forge::br()); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.LMB2)); - layout->addStretch(); + switch (colonna) + { + case 1: + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.INTAKE_TEMP)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.VOLT)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.MAF)); + layout->addStretch(); + break; + case 2: + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.MAP)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.APP)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.TPAPWM)); + layout->addStretch(); + break; + case 3: + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.INJ)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.TVENT)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.TANK)); + layout->addStretch(); + break; + case 4: + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.IGNANGLE)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.BATT)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL1)); + layout->addStretch(); + case 5: + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL2)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL3)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL4)); + layout->addStretch(); + break; + case 6: + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.SFT)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LMB1)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LMB2)); + layout->addStretch(); + break; + } return widget; } @@ -498,7 +498,7 @@ QWidget *LSTab::ls_data_widget() layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.INTAKE_TEMP)); layout->addStretch(); - //layout->addWidget(Session::Forge::br()); + // layout->addWidget(Session::Forge::br()); return widget; } @@ -517,11 +517,12 @@ QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) unit_font.setItalic(true); Gauge *gauge = new Gauge(cfg, - value_font, unit_font, Gauge::RIGHT, widget); + value_font, unit_font, Gauge::RIGHT, widget); layout->addWidget(gauge); this->gauges.push_back(gauge); - if (cfg.font_size.label > 0) { + if (cfg.font_size.label > 0) + { QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); label_font.setWeight(QFont::Light); @@ -548,11 +549,12 @@ QWidget *ObdTab::vehicle_data_widget(GaugeConfig cfg) unit_font.setItalic(true); Gauge *gauge = new Gauge(cfg, - value_font, unit_font, Gauge::RIGHT, widget); + value_font, unit_font, Gauge::RIGHT, widget); layout->addWidget(gauge); this->gauges.push_back(gauge); - if (cfg.font_size.label > 0) { + if (cfg.font_size.label > 0) + { QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); label_font.setWeight(QFont::Light); @@ -579,11 +581,12 @@ QWidget *LSTab::vehicle_data_widget(GaugeConfig cfg) unit_font.setItalic(true); Gauge *gauge = new Gauge(cfg, - value_font, unit_font, Gauge::RIGHT, widget); + value_font, unit_font, Gauge::RIGHT, widget); layout->addWidget(gauge); this->gauges.push_back(gauge); - if (cfg.font_size.label > 0) { + if (cfg.font_size.label > 0) + { QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); label_font.setWeight(QFont::Light); From 388448e71fbba86907366e1093480bb3320d7cd3 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 23 May 2023 01:42:46 +0200 Subject: [PATCH 268/332] prova --- src/app/pages/vehicle.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 5878b58a..11743438 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -87,7 +87,12 @@ ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) // driving_data->setSizePolicy(sp_left); QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); sp_right.setHorizontalStretch(2); - obd_data->setSizePolicy(sp_right); + obd_data1->setSizePolicy(sp_right); + obd_data2->setSizePolicy(sp_right); + obd_data3->setSizePolicy(sp_right); + obd_data4->setSizePolicy(sp_right); + obd_data5->setSizePolicy(sp_right); + obd_data6->setSizePolicy(sp_right); connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value) { From e6efb1c2bedea60c165a603eeaa6e7e970cd0fbd Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 23 May 2023 01:48:44 +0200 Subject: [PATCH 269/332] prova --- src/app/pages/vehicle.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 11743438..ece53fa9 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -462,6 +462,7 @@ QWidget *ObdTab::obd_data_widget(int colonna) layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL1)); layout->addStretch(); + break; case 5: layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL2)); From 75d5231dcb75c110039b6fe5b25cdc3fdf032472 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 23 May 2023 01:57:14 +0200 Subject: [PATCH 270/332] prova --- src/app/pages/vehicle.cpp | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index ece53fa9..42fc7d7f 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -16,43 +16,43 @@ GaugesConfig gauges_cfg = { return x; }}, {"speed", "Velocità", {"mph", "km/h"}, {0, 36, 16}, 0, [](double x, bool si) { return si ? x : Conversion::kph_to_mph(x); }}, - {"intake_temp", "Temperatura Aspirazione", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) + {"intake_temp", "Aspirazione", {"°F", "°C"}, {8, 18, 10}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); }}, {"ext_temp", "Temperatura Esterna", {"°F", "°C"}, {10, 16, 12}, 1, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); }}, - {"volt", "Tensione Batteria", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool si) + {"volt", "Batteria", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"maf", "Debimetro (MAF)", {"g/s", "g/s"}, {10, 16, 12}, 1, [](double x, bool si) + {"maf", "Debimetro", {"g/s", "g/s"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"map", "Pressione Aspirazione (MAP)", {"kPa", "kPa"}, {10, 16, 12}, 1, [](double x, bool si) + {"map", "Pressione Aspirazione (MAP)", {"kPa", "kPa"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"app", "Acceleratore", {"%", "%"}, {10, 16, 12}, 1, [](double x, bool si) + {"app", "Acceleratore", {"%", "%"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"tpapwm", "Corpo Farfallato", {"%", "%"}, {10, 16, 12}, 1, [](double x, bool si) + {"tpapwm", "Corpo Farfallato", {"%", "%"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"inj", "Iniezione", {"ms", "ms"}, {10, 16, 12}, 1, [](double x, bool si) + {"inj", "Iniezione", {"ms", "ms"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"tvent", "Pompa Benzina", {"%", "%"}, {10, 16, 12}, 1, [](double x, bool si) + {"tvent", "Pompa Benzina", {"%", "%"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"tank", "Serbatoio Benzina", {"L", "L"}, {10, 16, 12}, 1, [](double x, bool si) + {"tank", "Serbatoio Benzina", {"L", "L"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"ignangle", "Anticipo d'Accensione", {"°CA", "°CA"}, {10, 16, 12}, 1, [](double x, bool si) + {"ignangle", "A. Accensione", {"°CA", "°CA"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"batt", "Sensore di Detonazione", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool si) + {"batt", "Sensore di Detonazione", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"ritcyl1", "Ritardo di Scoppio C1", {"°CA", "°CA"}, {10, 16, 12}, 1, [](double x, bool si) + {"ritcyl1", "R. Scoppio C1", {"°CA", "°CA"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"ritcyl2", "Ritardo di Scoppio C2", {"°CA", "°CA"}, {10, 16, 12}, 1, [](double x, bool si) + {"ritcyl2", "R. Scoppio C2", {"°CA", "°CA"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"ritcyl3", "Ritardo di Scoppio C3", {"°CA", "°CA"}, {10, 16, 12}, 1, [](double x, bool si) + {"ritcyl3", "R. Scoppio C3", {"°CA", "°CA"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"ritcyl4", "Ritardo di Scoppio C4", {"°CA", "°CA"}, {10, 16, 12}, 1, [](double x, bool si) + {"ritcyl4", "R. Scoppio C4", {"°CA", "°CA"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"sft", "Correzione Istantanea Carburazione (Benzina)", {"%", "%"}, {10, 16, 12}, 1, [](double x, bool si) + {"sft", "Taglio Benzina (Carburazione)", {"%", "%"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"lmb1", "Sonda Lambda 1", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool si) + {"lmb1", "Sonda Lambda 1", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"lmb2", "Sonda Lambda 2", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool si) + {"lmb2", "Sonda Lambda 2", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}}; ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) From 68db0cbb512111851d81ae788046068aadaee9fd Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 22 Jul 2023 21:37:50 +0200 Subject: [PATCH 271/332] prova --- src/app/session.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/session.cpp b/src/app/session.cpp index bcb606e4..018967ff 100644 --- a/src/app/session.cpp +++ b/src/app/session.cpp @@ -394,8 +394,8 @@ Session::Core::Core(QSettings &settings, Arbiter &arbiter) new Action("Toggle Dark Mode", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.toggle_mode(); }, arbiter.window()), new Action("Decrease Brightness", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.decrease_brightness(4); }, arbiter.window()), new Action("Increase Brightness", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.increase_brightness(4); }, arbiter.window()), - new Action("Decrease Volume", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.decrease_volume(2); }, arbiter.window()), - new Action("Increase Volume", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.increase_volume(2); }, arbiter.window()) + new Action("Decrease Volume", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.decrease_volume(10); }, arbiter.window()), + new Action("Increase Volume", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.increase_volume(10); }, arbiter.window()) }; for (auto page : arbiter.layout().pages()) { From 6fa010e8548a474412d26823ce313144637ec9e1 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Jul 2023 01:35:48 +0200 Subject: [PATCH 272/332] last working state 23 may --- assets/stylesheets/dark.qss | 5 -- assets/stylesheets/light.qss | 5 -- include/AAHandler.hpp | 6 +++ include/app/action.hpp | 29 +++++++----- include/app/arbiter.hpp | 16 ++----- include/app/pages/openauto.hpp | 14 ++++++ include/app/pages/page.hpp | 17 +------ include/app/pages/settings.hpp | 2 - include/app/session.hpp | 17 ------- include/app/window.hpp | 17 ++----- install.sh | 8 ++-- plugins/brightness/mocked/mocked.cpp | 4 +- src/app/action.cpp | 24 ++++++---- src/app/arbiter.cpp | 69 ++-------------------------- src/app/pages/openauto.cpp | 29 ++++++++++++ src/app/pages/page.cpp | 22 +-------- src/app/pages/settings.cpp | 40 ---------------- src/app/session.cpp | 31 ++++--------- src/app/widgets/dialog.cpp | 5 +- src/app/window.cpp | 64 ++++++++++---------------- src/dash.cpp | 26 +++++------ 21 files changed, 150 insertions(+), 300 deletions(-) diff --git a/assets/stylesheets/dark.qss b/assets/stylesheets/dark.qss index 00c6586a..dd3034f0 100644 --- a/assets/stylesheets/dark.qss +++ b/assets/stylesheets/dark.qss @@ -107,11 +107,6 @@ QPushButton:!flat:disabled { background-color: rgb(33, 33, 33); } -QPushButton#FullscreenBar { - border-radius: 2px; - margin: 2px; -} - QFrame[frameShape="4"][frameShadow="16"], QFrame[frameShape="5"][frameShadow="16"] { color: rgba(255, 255, 255, 66); diff --git a/assets/stylesheets/light.qss b/assets/stylesheets/light.qss index 38bc1c81..c238e9c7 100644 --- a/assets/stylesheets/light.qss +++ b/assets/stylesheets/light.qss @@ -107,11 +107,6 @@ QPushButton:!flat:disabled { background-color: rgb(224, 224, 224); } -QPushButton#FullscreenBar { - border-radius: 2px; - margin: 2px; -} - QFrame[frameShape="4"][frameShadow="16"], QFrame[frameShape="5"][frameShadow="16"] { color: rgba(0, 0, 0, 31); diff --git a/include/AAHandler.hpp b/include/AAHandler.hpp index 27695cbe..5acf4f81 100644 --- a/include/AAHandler.hpp +++ b/include/AAHandler.hpp @@ -3,6 +3,8 @@ #include "openauto/Service/IAndroidAutoInterface.hpp" #include "app/action.hpp" + + class AAHandler : public QObject, public openauto::service::IAndroidAutoInterface { Q_OBJECT @@ -16,7 +18,10 @@ class AAHandler : public QObject, public openauto::service::IAndroidAutoInterfac void navigationDistanceEvent(const aasdk::proto::messages::NavigationDistanceEvent& distanceEvent) override; void injectButtonPressHelper(aasdk::proto::enums::ButtonCode::Enum buttonCode, Action::ActionState actionState); + + private: + signals: void aa_media_metadata_update(const aasdk::proto::messages::MediaInfoChannelMetadataData& metadata); @@ -24,4 +29,5 @@ class AAHandler : public QObject, public openauto::service::IAndroidAutoInterfac void aa_navigation_status_update(const aasdk::proto::messages::NavigationStatus& navStatus); void aa_navigation_turn_event(const aasdk::proto::messages::NavigationTurnEvent& turnEvent); void aa_navigation_distance_event(const aasdk::proto::messages::NavigationDistanceEvent& distanceEvent); + }; diff --git a/include/app/action.hpp b/include/app/action.hpp index a3997bdb..59c83e5d 100644 --- a/include/app/action.hpp +++ b/include/app/action.hpp @@ -90,24 +90,29 @@ class Action : public QObject { QString name_; QString key_; + }; class ActionEventFilter : public QObject { Q_OBJECT + public: + ActionEventFilter(){}; + bool eventFilter(QObject* obj, QEvent* event); + static ActionEventFilter *get_instance(); + QMap eventFilterMap; + void disable() + { + disabled = true; + } + void enable() + { + disabled = false; + } + private: + std::mutex mutex_; + bool disabled = false; - public: - ActionEventFilter(){}; - bool eventFilter(QObject* obj, QEvent* event); - static ActionEventFilter *get_instance(); - QMap eventFilterMap; - - void enable() { this->disabled = false; } - void disable() { this->disabled = true; } - - private: - std::mutex mutex_; - bool disabled = false; }; diff --git a/include/app/arbiter.hpp b/include/app/arbiter.hpp index 98548481..f8486cce 100644 --- a/include/app/arbiter.hpp +++ b/include/app/arbiter.hpp @@ -10,16 +10,14 @@ #include "app/session.hpp" #include "app/pages/page.hpp" #include "app/quick_views/quick_view.hpp" -#include "app/widgets/fullscreen_toggler.hpp" #include "openauto/Service/InputService.hpp" -class MainWindow; class Arbiter : public QObject { Q_OBJECT public: - Arbiter(MainWindow *window); + Arbiter(QMainWindow *window); void set_mode(Session::Theme::Mode mode); void toggle_mode(); void set_color(const QColor &color); @@ -31,11 +29,6 @@ class Arbiter : public QObject { void set_curr_page(Page *page); void set_curr_page(int id); void set_page(Page *page, bool enabled); - void set_fullscreen(bool fullscreen); - void toggle_fullscreen(); - void set_curr_fullscreen_toggler(FullscreenToggler *toggler); - void set_curr_fullscreen_toggler(int id); - void set_fullscreen_on_start(bool enabled); void set_brightness_plugin(QString plugin); void set_brightness(uint8_t brightness); void decrease_brightness(uint8_t val); @@ -49,7 +42,7 @@ class Arbiter : public QObject { void send_openauto_full_screen(bool fullscreen = true); void send_vehicle_data(QString gauge_id, double value); - QMainWindow *window(); + QMainWindow *window() { return this->window_; } QSettings &settings() { return this->session_.settings_; } Session::Theme &theme() { return this->session_.theme_; } Session::Layout &layout() { return this->session_.layout_; } @@ -60,7 +53,7 @@ class Arbiter : public QObject { void update() { this->session_.update(); } private: - MainWindow *window_; + QMainWindow *window_; Session session_; signals: @@ -72,9 +65,6 @@ class Arbiter : public QObject { void curr_quick_view_changed(QuickView *quick_view); void curr_page_changed(Page *page); void page_changed(Page *page, bool enabled); - void fullscreen_changed(bool fullscreen); - void curr_fullscreen_toggler_changed(FullscreenToggler *toggler); - void fullscreen_on_start_changed(bool enabled); void brightness_plugin_changed(QString plugin); void brightness_changed(uint8_t brightness); void volume_changed(uint8_t volume); diff --git a/include/app/pages/openauto.hpp b/include/app/pages/openauto.hpp index e87a2546..100e08a9 100644 --- a/include/app/pages/openauto.hpp +++ b/include/app/pages/openauto.hpp @@ -55,6 +55,8 @@ class OpenAutoWorker : public QObject { std::shared_ptr connected_accessories_enumerator; std::shared_ptr app; std::vector thread_pool; + + }; class OpenAutoFrame : public QWidget { @@ -63,10 +65,18 @@ class OpenAutoFrame : public QWidget { public: OpenAutoFrame(QWidget *parent); + inline bool is_fullscreen() { return this->fullscreen; } + inline void toggle_fullscreen() { this->fullscreen = !this->fullscreen; } + protected: + void mouseDoubleClickEvent(QMouseEvent *); inline void enterEvent(QEvent *) { this->setFocus(); } + private: + bool fullscreen = false; + signals: + void double_clicked(bool fullscreen); void toggle(bool enable); }; @@ -75,6 +85,7 @@ class OpenAutoPage : public QStackedWidget, public Page { public: OpenAutoPage(Arbiter &arbiter, QWidget *parent = nullptr); + void set_full_screen(bool fullscreen); void init() override; protected: @@ -114,4 +125,7 @@ class OpenAutoPage : public QStackedWidget, public Page { OpenAutoFrame *frame; OpenAutoWorker *worker; const QString connected_icon_name; + + signals: + void toggle_fullscreen(QWidget *widget); }; diff --git a/include/app/pages/page.hpp b/include/app/pages/page.hpp index 041b0f5b..3b4bab56 100644 --- a/include/app/pages/page.hpp +++ b/include/app/pages/page.hpp @@ -1,6 +1,5 @@ #pragma once -#include #include #include #include @@ -10,18 +9,6 @@ class Arbiter; -class PageContainer : public QFrame { - Q_OBJECT - - public: - PageContainer(QWidget *widget); - QWidget *take(); - void reset(); - - private: - QWidget *widget; -}; - class Page { public: Page(Arbiter &arbiter, QString name, QString icon_name, bool toggleable, QWidget *widget); @@ -30,7 +17,7 @@ class Page { const QString &name() { return this->name_; } const QString &icon_name() { return this->icon_name_; } const bool &toggleale() { return this->toggleable_; } - PageContainer *container() { return this->container_; } + QWidget *widget() { return this->widget_; } QPushButton *button() { return this->button_; } const bool &enabled() { return this->enabled_; } @@ -59,7 +46,7 @@ class Page { const QString name_; const QString icon_name_; const bool toggleable_; - PageContainer *container_; + QWidget *widget_; QPushButton *button_; bool enabled_; diff --git a/include/app/pages/settings.hpp b/include/app/pages/settings.hpp index d9db3d0e..031c7623 100644 --- a/include/app/pages/settings.hpp +++ b/include/app/pages/settings.hpp @@ -52,8 +52,6 @@ class LayoutSettingsTab : public QWidget { private: QWidget *settings_widget(); QWidget *pages_widget(); - QWidget *fullscreen_widget(); - QWidget *fullscreen_on_start_widget(); QWidget *status_bar_widget(); QWidget *control_bar_widget(); QWidget *quick_view_row_widget(); diff --git a/include/app/session.hpp b/include/app/session.hpp index b7fb9be6..075852cb 100644 --- a/include/app/session.hpp +++ b/include/app/session.hpp @@ -25,7 +25,6 @@ #include "app/services/bluetooth.hpp" #include "app/services/clock.hpp" #include "app/services/server.hpp" -#include "app/widgets/fullscreen_toggler.hpp" #include "AAHandler.hpp" class Arbiter; @@ -75,24 +74,8 @@ class Session { QList quick_views_; }; - struct Fullscreen { - bool enabled; - FullscreenToggler *curr_toggler; - bool on_start; - - Fullscreen(QSettings &settings, Arbiter &arbiter); - - const QList &togglers() const { return this->togglers_; } - FullscreenToggler *toggler(int id) const { return this->togglers_.value(id, nullptr); } - int toggler_id(FullscreenToggler *toggler) const { return this->togglers_.indexOf(toggler); } - - private: - QList togglers_; - }; - double scale; bool status_bar; - Fullscreen fullscreen; ControlBar control_bar; OpenAutoPage *openauto_page; Page *curr_page; diff --git a/include/app/window.hpp b/include/app/window.hpp index a24f40c5..a9b6a249 100644 --- a/include/app/window.hpp +++ b/include/app/window.hpp @@ -6,10 +6,8 @@ #include #include #include -#include #include #include -#include #include "app/config.hpp" #include "app/pages/openauto.hpp" @@ -17,8 +15,6 @@ #include "app/arbiter.hpp" -class FullscreenToggle; - class Dash : public QWidget { Q_OBJECT @@ -29,7 +25,6 @@ class Dash : public QWidget { private: struct NavRail { QButtonGroup group; - QElapsedTimer timer; QVBoxLayout *layout; NavRail(); @@ -54,19 +49,17 @@ class Dash : public QWidget { QWidget *power_control() const; }; -class MainWindow : public QMainWindow { +class Window : public QMainWindow { Q_OBJECT public: - MainWindow(QRect geometry); - void set_fullscreen(Page *page); + Window(); protected: - void showEvent(QShowEvent *event) override; + void showEvent(QShowEvent *event); + // void keyPressEvent(QKeyEvent *event); + // void keyReleaseEvent(QKeyEvent *event); private: Arbiter arbiter; - QStackedWidget *stack; - - MainWindow *init(QRect geometry); }; diff --git a/install.sh b/install.sh index bab62fc3..4d007143 100755 --- a/install.sh +++ b/install.sh @@ -193,10 +193,10 @@ if [ $pulseaudio = false ] else echo Preparing to compile and install pulseaudio echo Grabbing pulseaudio deps - sudo sed -i 's/#deb-src/deb-src/g' /etc/apt/sources.list + sed -i 's/#deb-src/deb-src/g' /etc/apt/sources.list sudo apt-get update -y git clone git://anongit.freedesktop.org/pulseaudio/pulseaudio - sudo apt-get install -y autopoint + apt-get install -y autopoint cd pulseaudio git checkout tags/v12.99.3 echo Applying imtu patch @@ -226,8 +226,8 @@ if [ $ofono = false ] echo Package failed to install with error code $?, quitting check logs above exit 1 fi - sudo sed -i 's/load-module module-bluetooth-discover/load-module module-bluetooth-discover headset=ofono/g' /usr/local/etc/pulse/default.pa - sudo cat <> /usr/local/etc/pulse/default.pa + sed -i 's/load-module module-bluetooth-discover/load-module module-bluetooth-discover headset=ofono/g' /usr/local/etc/pulse/default.pa + cat <> /usr/local/etc/pulse/default.pa ### Echo cancel and noise reduction .ifexists module-echo-cancel.so load-module module-echo-cancel aec_method=webrtc source_name=ec_out sink_name=ec_ref diff --git a/plugins/brightness/mocked/mocked.cpp b/plugins/brightness/mocked/mocked.cpp index 0acea21e..ae6515c8 100644 --- a/plugins/brightness/mocked/mocked.cpp +++ b/plugins/brightness/mocked/mocked.cpp @@ -24,6 +24,6 @@ uint8_t Mocked::priority() void Mocked::set(int brightness) { - for (auto widget : QApplication::topLevelWidgets()) - widget->setWindowOpacity(brightness / 255.0); + if (this->window != nullptr) + this->window->setWindowOpacity(brightness / 255.0); } diff --git a/src/app/action.cpp b/src/app/action.cpp index eba5ebcf..5f024a11 100644 --- a/src/app/action.cpp +++ b/src/app/action.cpp @@ -129,11 +129,14 @@ Action::Action(QString name, std::function action, QWidget *p bool ActionEventFilter::eventFilter(QObject* obj, QEvent* event) { - if (this->disabled || (this->eventFilterMap.count() == 0)) + std::lock_guard lock(mutex_); + if(disabled) return false; + if(eventFilterMap.count()==0){ return false; - + } Action::ActionState state = Action::ActionState::Triggered; - switch (event->type()) { + switch(event->type()) + { case(QEvent::KeyPress): state = Action::ActionState::Activated; break; @@ -144,13 +147,16 @@ bool ActionEventFilter::eventFilter(QObject* obj, QEvent* event) return false; } QKeyEvent* key = static_cast(event); - if (!key->isAutoRepeat()) + if(!key->isAutoRepeat()) { - auto it = this->eventFilterMap.find(key->key()); - if (it != this->eventFilterMap.end()) - { - std::lock_guard lock(mutex_); - (*it)->func_(state); + QMap::const_iterator i = eventFilterMap.find(key->key()); + int count = 0; + while (i != eventFilterMap.end() && i.key() == key->key()) { + i.value()->func_(state); + ++i; + ++count; + } + if(count > 0){ return true; } } diff --git a/src/app/arbiter.cpp b/src/app/arbiter.cpp index ff5991a6..36850591 100644 --- a/src/app/arbiter.cpp +++ b/src/app/arbiter.cpp @@ -1,9 +1,8 @@ #include "app/session.hpp" -#include "app/window.hpp" #include "app/arbiter.hpp" -Arbiter::Arbiter(MainWindow *window) +Arbiter::Arbiter(QMainWindow *window) : QObject() , window_(window) , session_(*this) @@ -85,15 +84,9 @@ void Arbiter::set_curr_page(Page *page) { if (this->layout().page_id(page) < 0 || !page->enabled()) return; - - if (this->layout().fullscreen.enabled) - this->layout().curr_page->container()->reset(); - + this->layout().curr_page = page; - if (this->layout().fullscreen.enabled) - this->window_->set_fullscreen(page); - emit curr_page_changed(page); } @@ -118,59 +111,6 @@ void Arbiter::set_page(Page *page, bool enabled) emit page_changed(page, enabled); } -void Arbiter::set_fullscreen(bool fullscreen) -{ - this->layout().fullscreen.enabled = fullscreen; - - auto page = this->layout().curr_page; - - if (fullscreen) { - this->window_->set_fullscreen(page); - this->layout().fullscreen.curr_toggler->enable(); - } - else { - this->layout().fullscreen.curr_toggler->disable(); - page->container()->reset(); // reinserts widget into container, removing it from window stack - } - - emit fullscreen_changed(fullscreen); -} - -void Arbiter::toggle_fullscreen() -{ - this->set_fullscreen(!this->layout().fullscreen.enabled); -} - -void Arbiter::set_curr_fullscreen_toggler(FullscreenToggler *toggler) -{ - auto id = this->layout().fullscreen.toggler_id(toggler); - if (id < 0) - return; - - this->layout().fullscreen.curr_toggler->disable(); - - this->layout().fullscreen.curr_toggler = toggler; - this->settings().setValue("Layout/Fullscreen/toggler", id); - - if (this->layout().fullscreen.enabled) - this->layout().fullscreen.curr_toggler->enable(); - - emit curr_fullscreen_toggler_changed(toggler); -} - -void Arbiter::set_curr_fullscreen_toggler(int id) -{ - this->set_curr_fullscreen_toggler(this->layout().fullscreen.toggler(id)); -} - -void Arbiter::set_fullscreen_on_start(bool enabled) -{ - this->layout().fullscreen.on_start = enabled; - this->settings().setValue("Layout/Fullscreen/on_start", enabled); - - emit fullscreen_on_start_changed(enabled); -} - void Arbiter::set_brightness_plugin(QString plugin) { if (!(this->system().brightness.plugins().contains(plugin) || (plugin == Session::System::Brightness::AUTO_PLUGIN))) @@ -255,9 +195,10 @@ void Arbiter::set_action(Action *action, QString key) emit action_changed(action, key); } -QMainWindow *Arbiter::window() + +void Arbiter::send_openauto_full_screen(bool fullscreen) { - return this->window_; + emit openauto_full_screen(fullscreen); } void Arbiter::send_vehicle_data(QString gauge_id, double value) diff --git a/src/app/pages/openauto.cpp b/src/app/pages/openauto.cpp index bc2b875c..afdaeae4 100644 --- a/src/app/pages/openauto.cpp +++ b/src/app/pages/openauto.cpp @@ -68,6 +68,12 @@ OpenAutoFrame::OpenAutoFrame(QWidget *parent) : QWidget(parent) this->setAttribute(Qt::WA_AcceptTouchEvents); } +void OpenAutoFrame::mouseDoubleClickEvent(QMouseEvent *) +{ + this->toggle_fullscreen(); + emit double_clicked(this->fullscreen); +} + OpenAutoPage::Settings::Settings(Arbiter &arbiter, QWidget *parent) : QWidget(parent) , arbiter(arbiter) @@ -423,6 +429,10 @@ void OpenAutoPage::init() this->worker = new OpenAutoWorker(callback, this->arbiter.theme().mode == Session::Theme::Dark, frame, this->arbiter); connect(this->frame, &OpenAutoFrame::toggle, [this](bool enable){ + if (!enable && this->frame->is_fullscreen()) { + this->addWidget(frame); + this->frame->toggle_fullscreen(); + } this->setCurrentIndex(enable ? 1 : 0); if (Config::get_instance()->get_show_aa_connected()) { @@ -434,16 +444,35 @@ void OpenAutoPage::init() this->button()->setIcon(icon); } }); + connect(this->frame, &OpenAutoFrame::double_clicked, [this](bool fullscreen) { + this->set_full_screen(fullscreen); + }); AAHandler *aa_handler = this->arbiter.android_auto().handler; connect(&this->arbiter, &Arbiter::mode_changed, [this, aa_handler](Session::Theme::Mode mode){ aa_handler->setNightMode(mode == Session::Theme::Dark); }); + connect(&this->arbiter, &Arbiter::openauto_full_screen, [this](bool fullscreen) { + this->set_full_screen(fullscreen); + }); + this->addWidget(this->connect_msg()); this->addWidget(this->frame); } +void OpenAutoPage::set_full_screen(bool fullscreen) +{ + if (fullscreen) { + emit toggle_fullscreen(this->frame); + } + else { + this->addWidget(frame); + this->setCurrentWidget(frame); + } + this->worker->update_size(); +} + void OpenAutoPage::resizeEvent(QResizeEvent *event) { QWidget::resizeEvent(event); diff --git a/src/app/pages/page.cpp b/src/app/pages/page.cpp index 457dbab8..d2a6ee69 100644 --- a/src/app/pages/page.cpp +++ b/src/app/pages/page.cpp @@ -4,24 +4,6 @@ #include "app/pages/page.hpp" -PageContainer::PageContainer(QWidget *widget) - : QFrame(nullptr) - , widget(widget) -{ - (new QStackedLayout(this))->addWidget(this->widget); -} - -QWidget *PageContainer::take() -{ - this->layout()->removeWidget(this->widget); - return this->widget; -} - -void PageContainer::reset() -{ - this->layout()->addWidget(this->widget); -} - Page::Settings::Settings() : QWidget() { this->layout_ = new QVBoxLayout(this); @@ -47,7 +29,7 @@ Page::Page(Arbiter &arbiter, QString name, QString icon_name, bool toggleable, Q , name_(name) , icon_name_(icon_name) , toggleable_(toggleable) - , container_(new PageContainer(widget)) + , widget_(widget) , button_(new QPushButton()) , enabled_(true) { @@ -82,7 +64,7 @@ QLayout *Page::settings_layout() Dialog *Page::dialog() { - auto dialog = new Dialog(this->arbiter, true, this->container_); + auto dialog = new Dialog(this->arbiter, true, this->widget_); dialog->set_body(this->settings_body()); auto save_button = new QPushButton("save"); QObject::connect(save_button, &QPushButton::clicked, [this]{ this->on_settings_save(); }); diff --git a/src/app/pages/settings.cpp b/src/app/pages/settings.cpp index 58d97b15..355069fd 100644 --- a/src/app/pages/settings.cpp +++ b/src/app/pages/settings.cpp @@ -272,9 +272,6 @@ QWidget *LayoutSettingsTab::settings_widget() layout->addWidget(this->pages_widget()); layout->addWidget(Session::Forge::br(), 1); - layout->addWidget(this->fullscreen_widget(), 1); - layout->addWidget(this->fullscreen_on_start_widget(), 1); - layout->addWidget(Session::Forge::br(), 1); layout->addWidget(this->status_bar_widget(), 1); layout->addWidget(Session::Forge::br(), 1); layout->addWidget(this->control_bar_widget(), 1); @@ -329,43 +326,6 @@ QWidget *LayoutSettingsTab::pages_widget() return widget; } -QWidget *LayoutSettingsTab::fullscreen_widget() -{ - QWidget *widget = new QWidget(this); - QHBoxLayout *layout = new QHBoxLayout(widget); - - QLabel *label = new QLabel("Fullscreen Toggler", widget); - layout->addWidget(label, 1); - - QStringList togglers; - for (auto toggler : this->arbiter.layout().fullscreen.togglers()) - togglers.append(toggler->name()); - Selector *selector = new Selector(togglers, this->arbiter.layout().fullscreen.curr_toggler->name(), this->arbiter.forge().font(14), this->arbiter, widget); - connect(selector, &Selector::idx_changed, [this](int idx){ - this->arbiter.set_curr_fullscreen_toggler(idx); - }); - layout->addWidget(selector, 1); - - return widget; -} - -QWidget *LayoutSettingsTab::fullscreen_on_start_widget() -{ - QWidget *widget = new QWidget(this); - QHBoxLayout *layout = new QHBoxLayout(widget); - - QLabel *label = new QLabel("Fullscreen on Start", widget); - layout->addWidget(label, 1); - - Switch *toggle = new Switch(widget); - toggle->scale(this->arbiter.layout().scale); - toggle->setChecked(this->arbiter.layout().fullscreen.on_start); - connect(toggle, &Switch::stateChanged, [this](bool state){ this->arbiter.set_fullscreen_on_start(state); }); - layout->addWidget(toggle, 1, Qt::AlignHCenter); - - return widget; -} - QWidget *LayoutSettingsTab::status_bar_widget() { QWidget *widget = new QWidget(this); diff --git a/src/app/session.cpp b/src/app/session.cpp index c05fcc96..bcb606e4 100644 --- a/src/app/session.cpp +++ b/src/app/session.cpp @@ -95,27 +95,12 @@ Session::Layout::ControlBar::ControlBar(QSettings &settings, Arbiter &arbiter) this->curr_quick_view = this->quick_views_.value(settings.value("Layout/ControlBar/quick_view", 0).toInt()); } -Session::Layout::Fullscreen::Fullscreen(QSettings &settings, Arbiter &arbiter) - : enabled(false) - , curr_toggler(nullptr) - , on_start(settings.value("Layout/Fullscreen/on_start", false).toBool()) -{ - this->togglers_ = { - new NullFullscreenToggler(arbiter), - new BarFullscreenToggler(arbiter), - new ButtonFullscreenToggler(arbiter) - }; - - this->curr_toggler = this->togglers_.value(settings.value("Layout/Fullscreen/toggler", 0).toInt()); -} - Session::Layout::Layout(QSettings &settings, Arbiter &arbiter) : scale(settings.value("Layout/scale", 1.0).toDouble()) , status_bar(settings.value("Layout/status_bar", false).toBool()) , control_bar(settings, arbiter) , openauto_page(new OpenAutoPage(arbiter)) , curr_page(nullptr) - , fullscreen(settings, arbiter) { this->pages_ = { this->openauto_page, @@ -178,6 +163,7 @@ Session::System::Brightness::Brightness(QSettings &settings) std::sort(this->plugin_infos_.begin(), this->plugin_infos_.end()); this->load(); + this->set(); } void Session::System::Brightness::load() @@ -409,14 +395,13 @@ Session::Core::Core(QSettings &settings, Arbiter &arbiter) new Action("Decrease Brightness", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.decrease_brightness(4); }, arbiter.window()), new Action("Increase Brightness", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.increase_brightness(4); }, arbiter.window()), new Action("Decrease Volume", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.decrease_volume(2); }, arbiter.window()), - new Action("Increase Volume", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.increase_volume(2); }, arbiter.window()), - new Action("Toggle Fullscreen", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.toggle_fullscreen(); }, arbiter.window()) + new Action("Increase Volume", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.increase_volume(2); }, arbiter.window()) }; for (auto page : arbiter.layout().pages()) { - auto callback = [&arbiter, page](Action::ActionState actionState){ - if (actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) { - QMetaObject::invokeMethod(&arbiter, [&arbiter, page]{ + auto callback = [&arbiter, page](Action::ActionState actionState){ + if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) { + QMetaObject::invokeMethod(&arbiter, [&arbiter, page](){ arbiter.set_curr_page(page); }, Qt::QueuedConnection); } @@ -425,9 +410,9 @@ Session::Core::Core(QSettings &settings, Arbiter &arbiter) } { - auto callback = [&arbiter](Action::ActionState actionState){ - if (actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) { - QMetaObject::invokeMethod(&arbiter, [&arbiter]{ + auto callback = [&arbiter](Action::ActionState actionState){ + if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated){ + QMetaObject::invokeMethod(&arbiter, [&arbiter](){ arbiter.set_curr_page(arbiter.layout().next_enabled_page(arbiter.layout().curr_page)); }, Qt::QueuedConnection); } diff --git a/src/app/widgets/dialog.cpp b/src/app/widgets/dialog.cpp index 03c3f727..50f2e70b 100644 --- a/src/app/widgets/dialog.cpp +++ b/src/app/widgets/dialog.cpp @@ -154,14 +154,15 @@ void Dialog::showEvent(QShowEvent *event) this->set_position(); } -void Dialog::closeEvent(QCloseEvent *) +void Dialog::closeEvent(QCloseEvent *event) { // On Raspberry Pi's, sometimes LXPanel will grab focus after a dialog closes // Focus should be returned to main dash window instead, so that shortcuts work // and that dash remains fullscreen // // Tells the main window to grab focus - this->arbiter.window()->activateWindow(); + arbiter.window()->activateWindow(); + } bool Dialog::eventFilter(QObject *object, QEvent *event) diff --git a/src/app/window.cpp b/src/app/window.cpp index 8e61acba..c6a7c58d 100644 --- a/src/app/window.cpp +++ b/src/app/window.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "app/quick_views/quick_view.hpp" #include "app/utilities/icon_engine.hpp" @@ -10,7 +11,6 @@ Dash::NavRail::NavRail() : group() - , timer() , layout(new QVBoxLayout()) { this->layout->setContentsMargins(0, 0, 0, 0); @@ -55,11 +55,6 @@ Dash::Dash(Arbiter &arbiter) connect(&this->rail.group, QOverload::of(&QButtonGroup::buttonPressed), [this](int id){ this->arbiter.set_curr_page(id); - this->rail.timer.start(); - }); - connect(&this->rail.group, QOverload::of(&QButtonGroup::buttonReleased), [this](int id){ - if (this->rail.timer.hasExpired(1000)) - this->arbiter.set_fullscreen(true); }); connect(&this->arbiter, &Arbiter::curr_page_changed, [this](Page *page){ this->set_page(page); @@ -86,7 +81,7 @@ void Dash::init() this->rail.group.addButton(button, this->arbiter.layout().page_id(page)); this->rail.layout->addWidget(button); - this->body.frame->addWidget(page->container()); + this->body.frame->addWidget(page->widget()); page->init(); button->setVisible(page->enabled()); @@ -100,7 +95,7 @@ void Dash::set_page(Page *page) { auto id = this->arbiter.layout().page_id(page); this->rail.group.button(id)->setChecked(true); - this->body.frame->setCurrentWidget(page->container()); + this->body.frame->setCurrentWidget(page->widget()); } QWidget *Dash::status_bar() const @@ -203,50 +198,39 @@ QWidget *Dash::power_control() const return widget; } -MainWindow::MainWindow(QRect geometry) +Window::Window() : QMainWindow() - , arbiter(this->init(geometry)) - , stack(new QStackedWidget()) + , arbiter(this) { this->setAttribute(Qt::WA_TranslucentBackground, true); - auto frame = new QFrame(); - auto layout = new QVBoxLayout(frame); - layout->setContentsMargins(0, 0, 0, 0); - layout->setSpacing(0); - - layout->addWidget(this->stack); - layout->addWidget(this->arbiter.layout().fullscreen.toggler(1)->widget()); - - this->setCentralWidget(frame); + auto stack = new QStackedWidget(); + this->setCentralWidget(stack); auto dash = new Dash(this->arbiter); - this->stack->addWidget(dash); + stack->addWidget(dash); dash->init(); - this->arbiter.system().brightness.set(); - - if (this->arbiter.layout().fullscreen.on_start) - this->arbiter.set_fullscreen(true); -} - -MainWindow *MainWindow::init(QRect geometry) -{ - // force to either screen or custom size - this->setGeometry(geometry); - - return this; + connect(this->arbiter.layout().openauto_page, &OpenAutoPage::toggle_fullscreen, [stack](QWidget *widget){ + stack->addWidget(widget); + stack->setCurrentWidget(widget); + }); } -void MainWindow::showEvent(QShowEvent *event) +void Window::showEvent(QShowEvent *event) { QWidget::showEvent(event); this->arbiter.update(); } -void MainWindow::set_fullscreen(Page *page) -{ - auto widget = page->container()->take(); - this->stack->addWidget(widget); - this->stack->setCurrentWidget(widget); -} +// void Window::keyPressEvent(QKeyEvent *event) +// { +// QMainWindow::keyPressEvent(event); +// this->arbiter.layout().openauto_page->pass_key_event(event); +// } + +// void Window::keyReleaseEvent(QKeyEvent *event) +// { +// QMainWindow::keyReleaseEvent(event); +// this->arbiter.layout().openauto_page->pass_key_event(event); +// } diff --git a/src/dash.cpp b/src/dash.cpp index 8de2d5cc..ef35f177 100644 --- a/src/dash.cpp +++ b/src/dash.cpp @@ -13,31 +13,27 @@ int main(int argc, char *argv[]) dash.setApplicationName("dash"); dash.installEventFilter(ActionEventFilter::get_instance()); - QSettings settings; + QStringList args = dash.arguments(); + bool use_fixed_size = (args.size() > 2); + QSize size = dash.primaryScreen()->size(); - QPoint pos = dash.primaryScreen()->geometry().topLeft(); - settings.beginGroup("Window"); - bool fixed = settings.contains("size"); - if (fixed) { - size = settings.value("size").toSize(); - if (settings.contains("pos")) - pos = settings.value("pos").toPoint(); - } - DASH_LOG(info) << "loaded config: " << settings.fileName().toStdString(); - - QPixmap pixmap(QPixmap(":/splash.png").scaledToHeight(size.height() / 2)); + if (use_fixed_size) + size = QSize(args.at(1).toInt(), args.at(2).toInt()); + + QPixmap pixmap(QPixmap(":/splash.png").scaledToHeight(size.height()/2)); QSplashScreen splash(pixmap); splash.setMask(pixmap.mask()); - splash.move(pos.x() + ((size.width() / 2) - (splash.width() / 2)), pos.y() + ((size.height() / 2) - (splash.height() / 2))); splash.show(); dash.processEvents(); - MainWindow window(QRect(pos, size)); + Window window; window.setWindowIcon(QIcon(":/logo.png")); window.setWindowFlags(Qt::FramelessWindowHint); - if (!fixed) + if (!use_fixed_size) window.setWindowState(Qt::WindowFullScreen); + // force to either screen or custom size + window.setFixedSize(size); window.show(); splash.finish(&window); From ae0373c42d2d98cca0dd30699fb8fd79a51b7684 Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Thu, 27 Jul 2023 02:03:12 +0200 Subject: [PATCH 273/332] Delete fullscreen_toggler.hpp --- include/app/widgets/fullscreen_toggler.hpp | 69 ---------------------- 1 file changed, 69 deletions(-) delete mode 100644 include/app/widgets/fullscreen_toggler.hpp diff --git a/include/app/widgets/fullscreen_toggler.hpp b/include/app/widgets/fullscreen_toggler.hpp deleted file mode 100644 index c9df0931..00000000 --- a/include/app/widgets/fullscreen_toggler.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#pragma once - -#include - -#include -#include - -class Arbiter; - -class FullscreenToggler { - public: - FullscreenToggler(Arbiter &arbiter, QString name, QWidget *widget); - - virtual void enable() = 0; - virtual void disable() = 0; - - const QString &name() { return this->name_; } - QWidget *widget() { return this->widget_; } - - protected: - Arbiter &arbiter; - - private: - const QString name_; - QWidget *widget_; -}; - -class NullFullscreenToggler : public QFrame, public FullscreenToggler { - Q_OBJECT - - public: - NullFullscreenToggler(Arbiter &arbiter); - - void enable() override {} - void disable() override {} -}; - -class BarFullscreenToggler : public QFrame, public FullscreenToggler { - Q_OBJECT - - public: - BarFullscreenToggler(Arbiter &arbiter); - - void enable() override { this->setVisible(true); } - void disable() override { this->setVisible(false); } -}; - -class ButtonFullscreenToggler : public QDialog, public FullscreenToggler { - Q_OBJECT - - public: - ButtonFullscreenToggler(Arbiter &arbiter); - - void enable() override { this->show(); } - void disable() override { this->close(); } - - protected: - void showEvent(QShowEvent *event) override; - void closeEvent(QCloseEvent *event) override; - void mousePressEvent(QMouseEvent *event) override; - void mouseReleaseEvent(QMouseEvent *event) override; - void mouseMoveEvent(QMouseEvent *event) override; - - private: - QPoint p; - QPoint last_pos; - QTime touch_start; - QLabel *label; -}; From 59b77fef4e543b9f6659fcbaeee333c8a4acec49 Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Thu, 27 Jul 2023 02:03:49 +0200 Subject: [PATCH 274/332] Delete fullscreen_toggler.cpp --- src/app/widgets/fullscreen_toggler.cpp | 102 ------------------------- 1 file changed, 102 deletions(-) delete mode 100644 src/app/widgets/fullscreen_toggler.cpp diff --git a/src/app/widgets/fullscreen_toggler.cpp b/src/app/widgets/fullscreen_toggler.cpp deleted file mode 100644 index 97fd9cde..00000000 --- a/src/app/widgets/fullscreen_toggler.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include - -#include "app/widgets/fullscreen_toggler.hpp" -#include "app/arbiter.hpp" - -FullscreenToggler::FullscreenToggler(Arbiter &arbiter, QString name, QWidget *widget) - : arbiter(arbiter) - , name_(name) - , widget_(widget) -{ -} - -NullFullscreenToggler::NullFullscreenToggler(Arbiter &arbiter) - : QFrame(arbiter.window()) - , FullscreenToggler(arbiter, "none", this) -{ -} - -BarFullscreenToggler::BarFullscreenToggler(Arbiter &arbiter) - : QFrame(arbiter.window()) - , FullscreenToggler(arbiter, "bar", this) -{ - auto layout = new QHBoxLayout(this); - layout->setContentsMargins(0, 0, 0, 0); - - auto bar = new QPushButton(); - connect(bar, &QPushButton::clicked, [&arbiter]{ arbiter.set_fullscreen(false); }); - bar->setFixedHeight(10 * arbiter.layout().scale); - bar->setObjectName("FullscreenBar"); - - layout->addStretch(4); - layout->addWidget(bar, 2); - layout->addStretch(4); - - this->setVisible(false); -} - -ButtonFullscreenToggler::ButtonFullscreenToggler(Arbiter &arbiter) - : QDialog(arbiter.window(), Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint | Qt::WindowDoesNotAcceptFocus) - , FullscreenToggler(arbiter, "button", this) - , p(this->arbiter.window()->pos()) - , last_pos(this->p) - , touch_start() - , label(new QLabel(" X ")) -{ - this->setAttribute(Qt::WA_TranslucentBackground, true); - this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - - this->label->setMargin(2); - this->label->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); - this->label->setAlignment(Qt::AlignCenter); - - QHBoxLayout *layout = new QHBoxLayout(this); - layout->setContentsMargins(0, 0, 0, 0); - layout->setSpacing(0); - layout->addWidget(label); - - connect(&this->arbiter, &Arbiter::brightness_changed, [this](uint8_t brightness){ - this->setWindowOpacity(brightness / 510.0); - }); -} - -void ButtonFullscreenToggler::showEvent(QShowEvent *event) -{ - QDialog::showEvent(event); - - this->setWindowOpacity(this->arbiter.system().brightness.value / 510.0); - this->move(this->last_pos); -} - -void ButtonFullscreenToggler::closeEvent(QCloseEvent *event) -{ - this->last_pos = this->pos(); - this->arbiter.window()->activateWindow(); -} - -void ButtonFullscreenToggler::mousePressEvent(QMouseEvent *event) -{ - this->setWindowOpacity(this->arbiter.system().brightness.value / 255.0); - QFont f = this->label->font(); - f.setPointSize(f.pointSize() * 1.5); - this->label->setFont(f); - this->p = event->pos(); - this->touch_start = QTime::currentTime(); -} - -void ButtonFullscreenToggler::mouseReleaseEvent(QMouseEvent *event) -{ - this->arbiter.window()->activateWindow(); - this->setWindowOpacity(this->arbiter.system().brightness.value / 510.0); - QFont f = this->label->font(); - f.setPointSize(f.pointSize() / 1.5); - this->label->setFont(f); - - if (this->touch_start.msecsTo(QTime::currentTime()) < 100) - this->arbiter.set_fullscreen(false); -} - -void ButtonFullscreenToggler::mouseMoveEvent(QMouseEvent *event) -{ - this->move(event->globalX() - this->p.x(), event->globalY() - this->p.y()); -} From fe79628bffb49d19071f05b1ac29d22963224b0b Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Jul 2023 02:25:09 +0200 Subject: [PATCH 275/332] commit 14 mar install.sh --- install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 4d007143..bab62fc3 100755 --- a/install.sh +++ b/install.sh @@ -193,10 +193,10 @@ if [ $pulseaudio = false ] else echo Preparing to compile and install pulseaudio echo Grabbing pulseaudio deps - sed -i 's/#deb-src/deb-src/g' /etc/apt/sources.list + sudo sed -i 's/#deb-src/deb-src/g' /etc/apt/sources.list sudo apt-get update -y git clone git://anongit.freedesktop.org/pulseaudio/pulseaudio - apt-get install -y autopoint + sudo apt-get install -y autopoint cd pulseaudio git checkout tags/v12.99.3 echo Applying imtu patch @@ -226,8 +226,8 @@ if [ $ofono = false ] echo Package failed to install with error code $?, quitting check logs above exit 1 fi - sed -i 's/load-module module-bluetooth-discover/load-module module-bluetooth-discover headset=ofono/g' /usr/local/etc/pulse/default.pa - cat <> /usr/local/etc/pulse/default.pa + sudo sed -i 's/load-module module-bluetooth-discover/load-module module-bluetooth-discover headset=ofono/g' /usr/local/etc/pulse/default.pa + sudo cat <> /usr/local/etc/pulse/default.pa ### Echo cancel and noise reduction .ifexists module-echo-cancel.so load-module module-echo-cancel aec_method=webrtc source_name=ec_out sink_name=ec_ref From e75c6dc2adb16271b4328effd96eb831e21b7829 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Jul 2023 19:41:31 +0200 Subject: [PATCH 276/332] latest working commit --- include/AAHandler.hpp | 8 +------- include/app/action.hpp | 1 - src/app/session.cpp | 12 ++++++------ 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/include/AAHandler.hpp b/include/AAHandler.hpp index 5acf4f81..ce461f1a 100644 --- a/include/AAHandler.hpp +++ b/include/AAHandler.hpp @@ -3,8 +3,6 @@ #include "openauto/Service/IAndroidAutoInterface.hpp" #include "app/action.hpp" - - class AAHandler : public QObject, public openauto::service::IAndroidAutoInterface { Q_OBJECT @@ -18,10 +16,7 @@ class AAHandler : public QObject, public openauto::service::IAndroidAutoInterfac void navigationDistanceEvent(const aasdk::proto::messages::NavigationDistanceEvent& distanceEvent) override; void injectButtonPressHelper(aasdk::proto::enums::ButtonCode::Enum buttonCode, Action::ActionState actionState); - - private: - signals: void aa_media_metadata_update(const aasdk::proto::messages::MediaInfoChannelMetadataData& metadata); @@ -29,5 +24,4 @@ class AAHandler : public QObject, public openauto::service::IAndroidAutoInterfac void aa_navigation_status_update(const aasdk::proto::messages::NavigationStatus& navStatus); void aa_navigation_turn_event(const aasdk::proto::messages::NavigationTurnEvent& turnEvent); void aa_navigation_distance_event(const aasdk::proto::messages::NavigationDistanceEvent& distanceEvent); - -}; +}; \ No newline at end of file diff --git a/include/app/action.hpp b/include/app/action.hpp index 59c83e5d..400388eb 100644 --- a/include/app/action.hpp +++ b/include/app/action.hpp @@ -90,7 +90,6 @@ class Action : public QObject { QString name_; QString key_; - }; class ActionEventFilter : public QObject diff --git a/src/app/session.cpp b/src/app/session.cpp index bcb606e4..7928e4e0 100644 --- a/src/app/session.cpp +++ b/src/app/session.cpp @@ -399,9 +399,9 @@ Session::Core::Core(QSettings &settings, Arbiter &arbiter) }; for (auto page : arbiter.layout().pages()) { - auto callback = [&arbiter, page](Action::ActionState actionState){ - if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) { - QMetaObject::invokeMethod(&arbiter, [&arbiter, page](){ + auto callback = [&arbiter, page](Action::ActionState actionState){ + if (actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) { + QMetaObject::invokeMethod(&arbiter, [&arbiter, page]{ arbiter.set_curr_page(page); }, Qt::QueuedConnection); } @@ -410,9 +410,9 @@ Session::Core::Core(QSettings &settings, Arbiter &arbiter) } { - auto callback = [&arbiter](Action::ActionState actionState){ - if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated){ - QMetaObject::invokeMethod(&arbiter, [&arbiter](){ + auto callback = [&arbiter](Action::ActionState actionState){ + if (actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) { + QMetaObject::invokeMethod(&arbiter, [&arbiter]{ arbiter.set_curr_page(arbiter.layout().next_enabled_page(arbiter.layout().curr_page)); }, Qt::QueuedConnection); } From d6aad8f3d1f7b3573c903a253868be7878eaf3cb Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Jul 2023 20:20:10 +0200 Subject: [PATCH 277/332] volume action key fix --- include/app/action.hpp | 14 +++++--------- include/app/pages/openauto.hpp | 2 -- plugins/brightness/x/x.cpp | 2 +- src/app/action.cpp | 24 +++++++++--------------- src/dash.cpp | 2 +- 5 files changed, 16 insertions(+), 28 deletions(-) diff --git a/include/app/action.hpp b/include/app/action.hpp index 400388eb..c2099e8e 100644 --- a/include/app/action.hpp +++ b/include/app/action.hpp @@ -95,23 +95,19 @@ class Action : public QObject { class ActionEventFilter : public QObject { Q_OBJECT + public: ActionEventFilter(){}; bool eventFilter(QObject* obj, QEvent* event); static ActionEventFilter *get_instance(); QMap eventFilterMap; - void disable() - { - disabled = true; - } - void enable() - { - disabled = false; - } + + void enable() { this->disabled = false; } + void disable() { this->disabled = true; } + private: std::mutex mutex_; bool disabled = false; - }; diff --git a/include/app/pages/openauto.hpp b/include/app/pages/openauto.hpp index 100e08a9..79826c01 100644 --- a/include/app/pages/openauto.hpp +++ b/include/app/pages/openauto.hpp @@ -55,8 +55,6 @@ class OpenAutoWorker : public QObject { std::shared_ptr connected_accessories_enumerator; std::shared_ptr app; std::vector thread_pool; - - }; class OpenAutoFrame : public QWidget { diff --git a/plugins/brightness/x/x.cpp b/plugins/brightness/x/x.cpp index 54c87b80..ddcf5d33 100644 --- a/plugins/brightness/x/x.cpp +++ b/plugins/brightness/x/x.cpp @@ -24,7 +24,7 @@ void X::set(int brightness) { if (this->screen != nullptr) { QProcess process(this); - process.start(QString("/home/gioele/RPi-USB-Brightness/64/lite/Raspi_USB_Backlight_nogui -b %1").arg((int)(brightness / 25.5))); + process.start(QString("/home/gioele/lum.sh %1").arg(brightness)); process.waitForFinished(); } } diff --git a/src/app/action.cpp b/src/app/action.cpp index 5f024a11..eba5ebcf 100644 --- a/src/app/action.cpp +++ b/src/app/action.cpp @@ -129,14 +129,11 @@ Action::Action(QString name, std::function action, QWidget *p bool ActionEventFilter::eventFilter(QObject* obj, QEvent* event) { - std::lock_guard lock(mutex_); - if(disabled) return false; - if(eventFilterMap.count()==0){ + if (this->disabled || (this->eventFilterMap.count() == 0)) return false; - } + Action::ActionState state = Action::ActionState::Triggered; - switch(event->type()) - { + switch (event->type()) { case(QEvent::KeyPress): state = Action::ActionState::Activated; break; @@ -147,16 +144,13 @@ bool ActionEventFilter::eventFilter(QObject* obj, QEvent* event) return false; } QKeyEvent* key = static_cast(event); - if(!key->isAutoRepeat()) + if (!key->isAutoRepeat()) { - QMap::const_iterator i = eventFilterMap.find(key->key()); - int count = 0; - while (i != eventFilterMap.end() && i.key() == key->key()) { - i.value()->func_(state); - ++i; - ++count; - } - if(count > 0){ + auto it = this->eventFilterMap.find(key->key()); + if (it != this->eventFilterMap.end()) + { + std::lock_guard lock(mutex_); + (*it)->func_(state); return true; } } diff --git a/src/dash.cpp b/src/dash.cpp index ef35f177..bf89f8fe 100644 --- a/src/dash.cpp +++ b/src/dash.cpp @@ -20,7 +20,7 @@ int main(int argc, char *argv[]) if (use_fixed_size) size = QSize(args.at(1).toInt(), args.at(2).toInt()); - QPixmap pixmap(QPixmap(":/splash.png").scaledToHeight(size.height()/2)); + QPixmap pixmap(QPixmap(":/splash.png").scaledToHeight(size.height() / 2)); QSplashScreen splash(pixmap); splash.setMask(pixmap.mask()); splash.show(); From 6226bf3c14c69c0c4d8f02415d93d0ba35e688f0 Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Jul 2023 23:26:24 +0200 Subject: [PATCH 278/332] prova --- assets/stylesheets/dark.qss | 5 +++++ assets/stylesheets/light.qss | 5 +++++ include/AAHandler.hpp | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/assets/stylesheets/dark.qss b/assets/stylesheets/dark.qss index dd3034f0..00c6586a 100644 --- a/assets/stylesheets/dark.qss +++ b/assets/stylesheets/dark.qss @@ -107,6 +107,11 @@ QPushButton:!flat:disabled { background-color: rgb(33, 33, 33); } +QPushButton#FullscreenBar { + border-radius: 2px; + margin: 2px; +} + QFrame[frameShape="4"][frameShadow="16"], QFrame[frameShape="5"][frameShadow="16"] { color: rgba(255, 255, 255, 66); diff --git a/assets/stylesheets/light.qss b/assets/stylesheets/light.qss index c238e9c7..38bc1c81 100644 --- a/assets/stylesheets/light.qss +++ b/assets/stylesheets/light.qss @@ -107,6 +107,11 @@ QPushButton:!flat:disabled { background-color: rgb(224, 224, 224); } +QPushButton#FullscreenBar { + border-radius: 2px; + margin: 2px; +} + QFrame[frameShape="4"][frameShadow="16"], QFrame[frameShape="5"][frameShadow="16"] { color: rgba(0, 0, 0, 31); diff --git a/include/AAHandler.hpp b/include/AAHandler.hpp index ce461f1a..27695cbe 100644 --- a/include/AAHandler.hpp +++ b/include/AAHandler.hpp @@ -24,4 +24,4 @@ class AAHandler : public QObject, public openauto::service::IAndroidAutoInterfac void aa_navigation_status_update(const aasdk::proto::messages::NavigationStatus& navStatus); void aa_navigation_turn_event(const aasdk::proto::messages::NavigationTurnEvent& turnEvent); void aa_navigation_distance_event(const aasdk::proto::messages::NavigationDistanceEvent& distanceEvent); -}; \ No newline at end of file +}; From b879c20a0d824b2e3791452875f403a85164426e Mon Sep 17 00:00:00 2001 From: Gioele Date: Thu, 27 Jul 2023 23:55:07 +0200 Subject: [PATCH 279/332] prova 2 --- include/app/pages/openauto.hpp | 12 ------------ src/app/pages/openauto.cpp | 29 ----------------------------- src/app/widgets/dialog.cpp | 5 ++--- 3 files changed, 2 insertions(+), 44 deletions(-) diff --git a/include/app/pages/openauto.hpp b/include/app/pages/openauto.hpp index 79826c01..e87a2546 100644 --- a/include/app/pages/openauto.hpp +++ b/include/app/pages/openauto.hpp @@ -63,18 +63,10 @@ class OpenAutoFrame : public QWidget { public: OpenAutoFrame(QWidget *parent); - inline bool is_fullscreen() { return this->fullscreen; } - inline void toggle_fullscreen() { this->fullscreen = !this->fullscreen; } - protected: - void mouseDoubleClickEvent(QMouseEvent *); inline void enterEvent(QEvent *) { this->setFocus(); } - private: - bool fullscreen = false; - signals: - void double_clicked(bool fullscreen); void toggle(bool enable); }; @@ -83,7 +75,6 @@ class OpenAutoPage : public QStackedWidget, public Page { public: OpenAutoPage(Arbiter &arbiter, QWidget *parent = nullptr); - void set_full_screen(bool fullscreen); void init() override; protected: @@ -123,7 +114,4 @@ class OpenAutoPage : public QStackedWidget, public Page { OpenAutoFrame *frame; OpenAutoWorker *worker; const QString connected_icon_name; - - signals: - void toggle_fullscreen(QWidget *widget); }; diff --git a/src/app/pages/openauto.cpp b/src/app/pages/openauto.cpp index afdaeae4..bc2b875c 100644 --- a/src/app/pages/openauto.cpp +++ b/src/app/pages/openauto.cpp @@ -68,12 +68,6 @@ OpenAutoFrame::OpenAutoFrame(QWidget *parent) : QWidget(parent) this->setAttribute(Qt::WA_AcceptTouchEvents); } -void OpenAutoFrame::mouseDoubleClickEvent(QMouseEvent *) -{ - this->toggle_fullscreen(); - emit double_clicked(this->fullscreen); -} - OpenAutoPage::Settings::Settings(Arbiter &arbiter, QWidget *parent) : QWidget(parent) , arbiter(arbiter) @@ -429,10 +423,6 @@ void OpenAutoPage::init() this->worker = new OpenAutoWorker(callback, this->arbiter.theme().mode == Session::Theme::Dark, frame, this->arbiter); connect(this->frame, &OpenAutoFrame::toggle, [this](bool enable){ - if (!enable && this->frame->is_fullscreen()) { - this->addWidget(frame); - this->frame->toggle_fullscreen(); - } this->setCurrentIndex(enable ? 1 : 0); if (Config::get_instance()->get_show_aa_connected()) { @@ -444,35 +434,16 @@ void OpenAutoPage::init() this->button()->setIcon(icon); } }); - connect(this->frame, &OpenAutoFrame::double_clicked, [this](bool fullscreen) { - this->set_full_screen(fullscreen); - }); AAHandler *aa_handler = this->arbiter.android_auto().handler; connect(&this->arbiter, &Arbiter::mode_changed, [this, aa_handler](Session::Theme::Mode mode){ aa_handler->setNightMode(mode == Session::Theme::Dark); }); - connect(&this->arbiter, &Arbiter::openauto_full_screen, [this](bool fullscreen) { - this->set_full_screen(fullscreen); - }); - this->addWidget(this->connect_msg()); this->addWidget(this->frame); } -void OpenAutoPage::set_full_screen(bool fullscreen) -{ - if (fullscreen) { - emit toggle_fullscreen(this->frame); - } - else { - this->addWidget(frame); - this->setCurrentWidget(frame); - } - this->worker->update_size(); -} - void OpenAutoPage::resizeEvent(QResizeEvent *event) { QWidget::resizeEvent(event); diff --git a/src/app/widgets/dialog.cpp b/src/app/widgets/dialog.cpp index 50f2e70b..03c3f727 100644 --- a/src/app/widgets/dialog.cpp +++ b/src/app/widgets/dialog.cpp @@ -154,15 +154,14 @@ void Dialog::showEvent(QShowEvent *event) this->set_position(); } -void Dialog::closeEvent(QCloseEvent *event) +void Dialog::closeEvent(QCloseEvent *) { // On Raspberry Pi's, sometimes LXPanel will grab focus after a dialog closes // Focus should be returned to main dash window instead, so that shortcuts work // and that dash remains fullscreen // // Tells the main window to grab focus - arbiter.window()->activateWindow(); - + this->arbiter.window()->activateWindow(); } bool Dialog::eventFilter(QObject *object, QEvent *event) From c83c1f04aa86639a12c09bfdcf89fcf1545b8fdb Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 00:20:26 +0200 Subject: [PATCH 280/332] prova 3 --- include/app/window.hpp | 17 +++++++---- src/app/window.cpp | 64 ++++++++++++++++++++++++++---------------- 2 files changed, 52 insertions(+), 29 deletions(-) diff --git a/include/app/window.hpp b/include/app/window.hpp index a9b6a249..a24f40c5 100644 --- a/include/app/window.hpp +++ b/include/app/window.hpp @@ -6,8 +6,10 @@ #include #include #include +#include #include #include +#include #include "app/config.hpp" #include "app/pages/openauto.hpp" @@ -15,6 +17,8 @@ #include "app/arbiter.hpp" +class FullscreenToggle; + class Dash : public QWidget { Q_OBJECT @@ -25,6 +29,7 @@ class Dash : public QWidget { private: struct NavRail { QButtonGroup group; + QElapsedTimer timer; QVBoxLayout *layout; NavRail(); @@ -49,17 +54,19 @@ class Dash : public QWidget { QWidget *power_control() const; }; -class Window : public QMainWindow { +class MainWindow : public QMainWindow { Q_OBJECT public: - Window(); + MainWindow(QRect geometry); + void set_fullscreen(Page *page); protected: - void showEvent(QShowEvent *event); - // void keyPressEvent(QKeyEvent *event); - // void keyReleaseEvent(QKeyEvent *event); + void showEvent(QShowEvent *event) override; private: Arbiter arbiter; + QStackedWidget *stack; + + MainWindow *init(QRect geometry); }; diff --git a/src/app/window.cpp b/src/app/window.cpp index c6a7c58d..8e61acba 100644 --- a/src/app/window.cpp +++ b/src/app/window.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include "app/quick_views/quick_view.hpp" #include "app/utilities/icon_engine.hpp" @@ -11,6 +10,7 @@ Dash::NavRail::NavRail() : group() + , timer() , layout(new QVBoxLayout()) { this->layout->setContentsMargins(0, 0, 0, 0); @@ -55,6 +55,11 @@ Dash::Dash(Arbiter &arbiter) connect(&this->rail.group, QOverload::of(&QButtonGroup::buttonPressed), [this](int id){ this->arbiter.set_curr_page(id); + this->rail.timer.start(); + }); + connect(&this->rail.group, QOverload::of(&QButtonGroup::buttonReleased), [this](int id){ + if (this->rail.timer.hasExpired(1000)) + this->arbiter.set_fullscreen(true); }); connect(&this->arbiter, &Arbiter::curr_page_changed, [this](Page *page){ this->set_page(page); @@ -81,7 +86,7 @@ void Dash::init() this->rail.group.addButton(button, this->arbiter.layout().page_id(page)); this->rail.layout->addWidget(button); - this->body.frame->addWidget(page->widget()); + this->body.frame->addWidget(page->container()); page->init(); button->setVisible(page->enabled()); @@ -95,7 +100,7 @@ void Dash::set_page(Page *page) { auto id = this->arbiter.layout().page_id(page); this->rail.group.button(id)->setChecked(true); - this->body.frame->setCurrentWidget(page->widget()); + this->body.frame->setCurrentWidget(page->container()); } QWidget *Dash::status_bar() const @@ -198,39 +203,50 @@ QWidget *Dash::power_control() const return widget; } -Window::Window() +MainWindow::MainWindow(QRect geometry) : QMainWindow() - , arbiter(this) + , arbiter(this->init(geometry)) + , stack(new QStackedWidget()) { this->setAttribute(Qt::WA_TranslucentBackground, true); - auto stack = new QStackedWidget(); - this->setCentralWidget(stack); + auto frame = new QFrame(); + auto layout = new QVBoxLayout(frame); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + layout->addWidget(this->stack); + layout->addWidget(this->arbiter.layout().fullscreen.toggler(1)->widget()); + + this->setCentralWidget(frame); auto dash = new Dash(this->arbiter); - stack->addWidget(dash); + this->stack->addWidget(dash); dash->init(); - connect(this->arbiter.layout().openauto_page, &OpenAutoPage::toggle_fullscreen, [stack](QWidget *widget){ - stack->addWidget(widget); - stack->setCurrentWidget(widget); - }); + this->arbiter.system().brightness.set(); + + if (this->arbiter.layout().fullscreen.on_start) + this->arbiter.set_fullscreen(true); } -void Window::showEvent(QShowEvent *event) +MainWindow *MainWindow::init(QRect geometry) +{ + // force to either screen or custom size + this->setGeometry(geometry); + + return this; +} + +void MainWindow::showEvent(QShowEvent *event) { QWidget::showEvent(event); this->arbiter.update(); } -// void Window::keyPressEvent(QKeyEvent *event) -// { -// QMainWindow::keyPressEvent(event); -// this->arbiter.layout().openauto_page->pass_key_event(event); -// } - -// void Window::keyReleaseEvent(QKeyEvent *event) -// { -// QMainWindow::keyReleaseEvent(event); -// this->arbiter.layout().openauto_page->pass_key_event(event); -// } +void MainWindow::set_fullscreen(Page *page) +{ + auto widget = page->container()->take(); + this->stack->addWidget(widget); + this->stack->setCurrentWidget(widget); +} From 737c274f4ba2f55d64b291d8e8ff8dcb04360f51 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 00:29:58 +0200 Subject: [PATCH 281/332] prova 4 --- include/app/arbiter.hpp | 19 ++++++++---- src/app/arbiter.cpp | 68 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 77 insertions(+), 10 deletions(-) diff --git a/include/app/arbiter.hpp b/include/app/arbiter.hpp index f8486cce..9c00c847 100644 --- a/include/app/arbiter.hpp +++ b/include/app/arbiter.hpp @@ -10,14 +10,16 @@ #include "app/session.hpp" #include "app/pages/page.hpp" #include "app/quick_views/quick_view.hpp" +#include "app/widgets/fullscreen_toggler.hpp" #include "openauto/Service/InputService.hpp" +class MainWindow; class Arbiter : public QObject { Q_OBJECT public: - Arbiter(QMainWindow *window); + Arbiter(MainWindow *window); void set_mode(Session::Theme::Mode mode); void toggle_mode(); void set_color(const QColor &color); @@ -29,6 +31,11 @@ class Arbiter : public QObject { void set_curr_page(Page *page); void set_curr_page(int id); void set_page(Page *page, bool enabled); + void set_fullscreen(bool fullscreen); + void toggle_fullscreen(); + void set_curr_fullscreen_toggler(FullscreenToggler *toggler); + void set_curr_fullscreen_toggler(int id); + void set_fullscreen_on_start(bool enabled); void set_brightness_plugin(QString plugin); void set_brightness(uint8_t brightness); void decrease_brightness(uint8_t val); @@ -38,11 +45,9 @@ class Arbiter : public QObject { void increase_volume(uint8_t val); void set_cursor(bool enabled); void set_action(Action *action, QString key); - void send_openauto_button_press(aasdk::proto::enums::ButtonCode::Enum buttonCode, openauto::projection::WheelDirection wheelDirection = openauto::projection::WheelDirection::NONE); - void send_openauto_full_screen(bool fullscreen = true); void send_vehicle_data(QString gauge_id, double value); - QMainWindow *window() { return this->window_; } + QMainWindow *window(); QSettings &settings() { return this->session_.settings_; } Session::Theme &theme() { return this->session_.theme_; } Session::Layout &layout() { return this->session_.layout_; } @@ -53,7 +58,7 @@ class Arbiter : public QObject { void update() { this->session_.update(); } private: - QMainWindow *window_; + MainWindow *window_; Session session_; signals: @@ -65,11 +70,13 @@ class Arbiter : public QObject { void curr_quick_view_changed(QuickView *quick_view); void curr_page_changed(Page *page); void page_changed(Page *page, bool enabled); + void fullscreen_changed(bool fullscreen); + void curr_fullscreen_toggler_changed(FullscreenToggler *toggler); + void fullscreen_on_start_changed(bool enabled); void brightness_plugin_changed(QString plugin); void brightness_changed(uint8_t brightness); void volume_changed(uint8_t volume); void cursor_changed(bool enabled); void action_changed(Action *action, QString key); - void openauto_full_screen(bool fullscreen); void vehicle_update_data(QString gauge_id, double value); }; diff --git a/src/app/arbiter.cpp b/src/app/arbiter.cpp index 36850591..33db8d78 100644 --- a/src/app/arbiter.cpp +++ b/src/app/arbiter.cpp @@ -1,8 +1,9 @@ #include "app/session.hpp" +#include "app/window.hpp" #include "app/arbiter.hpp" -Arbiter::Arbiter(QMainWindow *window) +Arbiter::Arbiter(MainWindow *window) : QObject() , window_(window) , session_(*this) @@ -85,8 +86,14 @@ void Arbiter::set_curr_page(Page *page) if (this->layout().page_id(page) < 0 || !page->enabled()) return; + if (this->layout().fullscreen.enabled) + this->layout().curr_page->container()->reset(); + this->layout().curr_page = page; + if (this->layout().fullscreen.enabled) + this->window_->set_fullscreen(page); + emit curr_page_changed(page); } @@ -111,6 +118,59 @@ void Arbiter::set_page(Page *page, bool enabled) emit page_changed(page, enabled); } +void Arbiter::set_fullscreen(bool fullscreen) +{ + this->layout().fullscreen.enabled = fullscreen; + + auto page = this->layout().curr_page; + + if (fullscreen) { + this->window_->set_fullscreen(page); + this->layout().fullscreen.curr_toggler->enable(); + } + else { + this->layout().fullscreen.curr_toggler->disable(); + page->container()->reset(); // reinserts widget into container, removing it from window stack + } + + emit fullscreen_changed(fullscreen); +} + +void Arbiter::toggle_fullscreen() +{ + this->set_fullscreen(!this->layout().fullscreen.enabled); +} + +void Arbiter::set_curr_fullscreen_toggler(FullscreenToggler *toggler) +{ + auto id = this->layout().fullscreen.toggler_id(toggler); + if (id < 0) + return; + + this->layout().fullscreen.curr_toggler->disable(); + + this->layout().fullscreen.curr_toggler = toggler; + this->settings().setValue("Layout/Fullscreen/toggler", id); + + if (this->layout().fullscreen.enabled) + this->layout().fullscreen.curr_toggler->enable(); + + emit curr_fullscreen_toggler_changed(toggler); +} + +void Arbiter::set_curr_fullscreen_toggler(int id) +{ + this->set_curr_fullscreen_toggler(this->layout().fullscreen.toggler(id)); +} + +void Arbiter::set_fullscreen_on_start(bool enabled) +{ + this->layout().fullscreen.on_start = enabled; + this->settings().setValue("Layout/Fullscreen/on_start", enabled); + + emit fullscreen_on_start_changed(enabled); +} + void Arbiter::set_brightness_plugin(QString plugin) { if (!(this->system().brightness.plugins().contains(plugin) || (plugin == Session::System::Brightness::AUTO_PLUGIN))) @@ -195,12 +255,12 @@ void Arbiter::set_action(Action *action, QString key) emit action_changed(action, key); } - -void Arbiter::send_openauto_full_screen(bool fullscreen) +QMainWindow *Arbiter::window() { - emit openauto_full_screen(fullscreen); + return this->window_; } + void Arbiter::send_vehicle_data(QString gauge_id, double value) { emit vehicle_update_data(gauge_id, value); From 17cf22e056c2578ac0a38e630c354cc585b11821 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 00:31:13 +0200 Subject: [PATCH 282/332] prova 4 --- include/app/widgets/fullscreen_toggler.hpp | 69 ++++++++++++++ src/app/widgets/fullscreen_toggler.cpp | 102 +++++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 include/app/widgets/fullscreen_toggler.hpp create mode 100644 src/app/widgets/fullscreen_toggler.cpp diff --git a/include/app/widgets/fullscreen_toggler.hpp b/include/app/widgets/fullscreen_toggler.hpp new file mode 100644 index 00000000..c9df0931 --- /dev/null +++ b/include/app/widgets/fullscreen_toggler.hpp @@ -0,0 +1,69 @@ +#pragma once + +#include + +#include +#include + +class Arbiter; + +class FullscreenToggler { + public: + FullscreenToggler(Arbiter &arbiter, QString name, QWidget *widget); + + virtual void enable() = 0; + virtual void disable() = 0; + + const QString &name() { return this->name_; } + QWidget *widget() { return this->widget_; } + + protected: + Arbiter &arbiter; + + private: + const QString name_; + QWidget *widget_; +}; + +class NullFullscreenToggler : public QFrame, public FullscreenToggler { + Q_OBJECT + + public: + NullFullscreenToggler(Arbiter &arbiter); + + void enable() override {} + void disable() override {} +}; + +class BarFullscreenToggler : public QFrame, public FullscreenToggler { + Q_OBJECT + + public: + BarFullscreenToggler(Arbiter &arbiter); + + void enable() override { this->setVisible(true); } + void disable() override { this->setVisible(false); } +}; + +class ButtonFullscreenToggler : public QDialog, public FullscreenToggler { + Q_OBJECT + + public: + ButtonFullscreenToggler(Arbiter &arbiter); + + void enable() override { this->show(); } + void disable() override { this->close(); } + + protected: + void showEvent(QShowEvent *event) override; + void closeEvent(QCloseEvent *event) override; + void mousePressEvent(QMouseEvent *event) override; + void mouseReleaseEvent(QMouseEvent *event) override; + void mouseMoveEvent(QMouseEvent *event) override; + + private: + QPoint p; + QPoint last_pos; + QTime touch_start; + QLabel *label; +}; diff --git a/src/app/widgets/fullscreen_toggler.cpp b/src/app/widgets/fullscreen_toggler.cpp new file mode 100644 index 00000000..97fd9cde --- /dev/null +++ b/src/app/widgets/fullscreen_toggler.cpp @@ -0,0 +1,102 @@ +#include + +#include "app/widgets/fullscreen_toggler.hpp" +#include "app/arbiter.hpp" + +FullscreenToggler::FullscreenToggler(Arbiter &arbiter, QString name, QWidget *widget) + : arbiter(arbiter) + , name_(name) + , widget_(widget) +{ +} + +NullFullscreenToggler::NullFullscreenToggler(Arbiter &arbiter) + : QFrame(arbiter.window()) + , FullscreenToggler(arbiter, "none", this) +{ +} + +BarFullscreenToggler::BarFullscreenToggler(Arbiter &arbiter) + : QFrame(arbiter.window()) + , FullscreenToggler(arbiter, "bar", this) +{ + auto layout = new QHBoxLayout(this); + layout->setContentsMargins(0, 0, 0, 0); + + auto bar = new QPushButton(); + connect(bar, &QPushButton::clicked, [&arbiter]{ arbiter.set_fullscreen(false); }); + bar->setFixedHeight(10 * arbiter.layout().scale); + bar->setObjectName("FullscreenBar"); + + layout->addStretch(4); + layout->addWidget(bar, 2); + layout->addStretch(4); + + this->setVisible(false); +} + +ButtonFullscreenToggler::ButtonFullscreenToggler(Arbiter &arbiter) + : QDialog(arbiter.window(), Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint | Qt::WindowDoesNotAcceptFocus) + , FullscreenToggler(arbiter, "button", this) + , p(this->arbiter.window()->pos()) + , last_pos(this->p) + , touch_start() + , label(new QLabel(" X ")) +{ + this->setAttribute(Qt::WA_TranslucentBackground, true); + this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + + this->label->setMargin(2); + this->label->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); + this->label->setAlignment(Qt::AlignCenter); + + QHBoxLayout *layout = new QHBoxLayout(this); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + layout->addWidget(label); + + connect(&this->arbiter, &Arbiter::brightness_changed, [this](uint8_t brightness){ + this->setWindowOpacity(brightness / 510.0); + }); +} + +void ButtonFullscreenToggler::showEvent(QShowEvent *event) +{ + QDialog::showEvent(event); + + this->setWindowOpacity(this->arbiter.system().brightness.value / 510.0); + this->move(this->last_pos); +} + +void ButtonFullscreenToggler::closeEvent(QCloseEvent *event) +{ + this->last_pos = this->pos(); + this->arbiter.window()->activateWindow(); +} + +void ButtonFullscreenToggler::mousePressEvent(QMouseEvent *event) +{ + this->setWindowOpacity(this->arbiter.system().brightness.value / 255.0); + QFont f = this->label->font(); + f.setPointSize(f.pointSize() * 1.5); + this->label->setFont(f); + this->p = event->pos(); + this->touch_start = QTime::currentTime(); +} + +void ButtonFullscreenToggler::mouseReleaseEvent(QMouseEvent *event) +{ + this->arbiter.window()->activateWindow(); + this->setWindowOpacity(this->arbiter.system().brightness.value / 510.0); + QFont f = this->label->font(); + f.setPointSize(f.pointSize() / 1.5); + this->label->setFont(f); + + if (this->touch_start.msecsTo(QTime::currentTime()) < 100) + this->arbiter.set_fullscreen(false); +} + +void ButtonFullscreenToggler::mouseMoveEvent(QMouseEvent *event) +{ + this->move(event->globalX() - this->p.x(), event->globalY() - this->p.y()); +} From cc1833d62a553450616b491cc7b9aad39b973c46 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 00:34:16 +0200 Subject: [PATCH 283/332] prova 5 --- include/app/pages/page.hpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/include/app/pages/page.hpp b/include/app/pages/page.hpp index 3b4bab56..041b0f5b 100644 --- a/include/app/pages/page.hpp +++ b/include/app/pages/page.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -9,6 +10,18 @@ class Arbiter; +class PageContainer : public QFrame { + Q_OBJECT + + public: + PageContainer(QWidget *widget); + QWidget *take(); + void reset(); + + private: + QWidget *widget; +}; + class Page { public: Page(Arbiter &arbiter, QString name, QString icon_name, bool toggleable, QWidget *widget); @@ -17,7 +30,7 @@ class Page { const QString &name() { return this->name_; } const QString &icon_name() { return this->icon_name_; } const bool &toggleale() { return this->toggleable_; } - QWidget *widget() { return this->widget_; } + PageContainer *container() { return this->container_; } QPushButton *button() { return this->button_; } const bool &enabled() { return this->enabled_; } @@ -46,7 +59,7 @@ class Page { const QString name_; const QString icon_name_; const bool toggleable_; - QWidget *widget_; + PageContainer *container_; QPushButton *button_; bool enabled_; From 920f28dcaac528dba7bd0c67a612a1e26a783b58 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 00:40:12 +0200 Subject: [PATCH 284/332] prova 3 --- include/app/session.hpp | 17 +++++++++++++++++ src/app/pages/page.cpp | 22 ++++++++++++++++++++-- src/app/session.cpp | 15 +++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/include/app/session.hpp b/include/app/session.hpp index 075852cb..b7fb9be6 100644 --- a/include/app/session.hpp +++ b/include/app/session.hpp @@ -25,6 +25,7 @@ #include "app/services/bluetooth.hpp" #include "app/services/clock.hpp" #include "app/services/server.hpp" +#include "app/widgets/fullscreen_toggler.hpp" #include "AAHandler.hpp" class Arbiter; @@ -74,8 +75,24 @@ class Session { QList quick_views_; }; + struct Fullscreen { + bool enabled; + FullscreenToggler *curr_toggler; + bool on_start; + + Fullscreen(QSettings &settings, Arbiter &arbiter); + + const QList &togglers() const { return this->togglers_; } + FullscreenToggler *toggler(int id) const { return this->togglers_.value(id, nullptr); } + int toggler_id(FullscreenToggler *toggler) const { return this->togglers_.indexOf(toggler); } + + private: + QList togglers_; + }; + double scale; bool status_bar; + Fullscreen fullscreen; ControlBar control_bar; OpenAutoPage *openauto_page; Page *curr_page; diff --git a/src/app/pages/page.cpp b/src/app/pages/page.cpp index d2a6ee69..457dbab8 100644 --- a/src/app/pages/page.cpp +++ b/src/app/pages/page.cpp @@ -4,6 +4,24 @@ #include "app/pages/page.hpp" +PageContainer::PageContainer(QWidget *widget) + : QFrame(nullptr) + , widget(widget) +{ + (new QStackedLayout(this))->addWidget(this->widget); +} + +QWidget *PageContainer::take() +{ + this->layout()->removeWidget(this->widget); + return this->widget; +} + +void PageContainer::reset() +{ + this->layout()->addWidget(this->widget); +} + Page::Settings::Settings() : QWidget() { this->layout_ = new QVBoxLayout(this); @@ -29,7 +47,7 @@ Page::Page(Arbiter &arbiter, QString name, QString icon_name, bool toggleable, Q , name_(name) , icon_name_(icon_name) , toggleable_(toggleable) - , widget_(widget) + , container_(new PageContainer(widget)) , button_(new QPushButton()) , enabled_(true) { @@ -64,7 +82,7 @@ QLayout *Page::settings_layout() Dialog *Page::dialog() { - auto dialog = new Dialog(this->arbiter, true, this->widget_); + auto dialog = new Dialog(this->arbiter, true, this->container_); dialog->set_body(this->settings_body()); auto save_button = new QPushButton("save"); QObject::connect(save_button, &QPushButton::clicked, [this]{ this->on_settings_save(); }); diff --git a/src/app/session.cpp b/src/app/session.cpp index 7928e4e0..99447661 100644 --- a/src/app/session.cpp +++ b/src/app/session.cpp @@ -95,12 +95,27 @@ Session::Layout::ControlBar::ControlBar(QSettings &settings, Arbiter &arbiter) this->curr_quick_view = this->quick_views_.value(settings.value("Layout/ControlBar/quick_view", 0).toInt()); } +Session::Layout::Fullscreen::Fullscreen(QSettings &settings, Arbiter &arbiter) + : enabled(false) + , curr_toggler(nullptr) + , on_start(settings.value("Layout/Fullscreen/on_start", false).toBool()) +{ + this->togglers_ = { + new NullFullscreenToggler(arbiter), + new BarFullscreenToggler(arbiter), + new ButtonFullscreenToggler(arbiter) + }; + + this->curr_toggler = this->togglers_.value(settings.value("Layout/Fullscreen/toggler", 0).toInt()); +} + Session::Layout::Layout(QSettings &settings, Arbiter &arbiter) : scale(settings.value("Layout/scale", 1.0).toDouble()) , status_bar(settings.value("Layout/status_bar", false).toBool()) , control_bar(settings, arbiter) , openauto_page(new OpenAutoPage(arbiter)) , curr_page(nullptr) + , fullscreen(settings, arbiter) { this->pages_ = { this->openauto_page, From 16ab60ba7ae3686a9859daadbc5e2f5de66e76e7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 00:51:38 +0200 Subject: [PATCH 285/332] prova 3 --- src/dash.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/dash.cpp b/src/dash.cpp index bf89f8fe..8de2d5cc 100644 --- a/src/dash.cpp +++ b/src/dash.cpp @@ -13,27 +13,31 @@ int main(int argc, char *argv[]) dash.setApplicationName("dash"); dash.installEventFilter(ActionEventFilter::get_instance()); - QStringList args = dash.arguments(); - bool use_fixed_size = (args.size() > 2); - + QSettings settings; QSize size = dash.primaryScreen()->size(); - if (use_fixed_size) - size = QSize(args.at(1).toInt(), args.at(2).toInt()); + QPoint pos = dash.primaryScreen()->geometry().topLeft(); + settings.beginGroup("Window"); + bool fixed = settings.contains("size"); + if (fixed) { + size = settings.value("size").toSize(); + if (settings.contains("pos")) + pos = settings.value("pos").toPoint(); + } + DASH_LOG(info) << "loaded config: " << settings.fileName().toStdString(); QPixmap pixmap(QPixmap(":/splash.png").scaledToHeight(size.height() / 2)); QSplashScreen splash(pixmap); splash.setMask(pixmap.mask()); + splash.move(pos.x() + ((size.width() / 2) - (splash.width() / 2)), pos.y() + ((size.height() / 2) - (splash.height() / 2))); splash.show(); dash.processEvents(); - Window window; + MainWindow window(QRect(pos, size)); window.setWindowIcon(QIcon(":/logo.png")); window.setWindowFlags(Qt::FramelessWindowHint); - if (!use_fixed_size) + if (!fixed) window.setWindowState(Qt::WindowFullScreen); - // force to either screen or custom size - window.setFixedSize(size); window.show(); splash.finish(&window); From cda80d0b3f2ff62fb2f83d5b261b5dc097f06a10 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 01:41:54 +0200 Subject: [PATCH 286/332] prova 3 --- src/dash.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dash.cpp b/src/dash.cpp index 8de2d5cc..1b90366d 100644 --- a/src/dash.cpp +++ b/src/dash.cpp @@ -35,8 +35,8 @@ int main(int argc, char *argv[]) MainWindow window(QRect(pos, size)); window.setWindowIcon(QIcon(":/logo.png")); window.setWindowFlags(Qt::FramelessWindowHint); - if (!fixed) - window.setWindowState(Qt::WindowFullScreen); + //if (!fixed) + // window.setWindowState(Qt::WindowFullScreen); window.show(); splash.finish(&window); From 8a2982518ff456b6ba604280a0242e8943fcb5c9 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 01:58:48 +0200 Subject: [PATCH 287/332] prova 3 --- src/dash.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dash.cpp b/src/dash.cpp index 1b90366d..9d6bbe77 100644 --- a/src/dash.cpp +++ b/src/dash.cpp @@ -23,7 +23,7 @@ int main(int argc, char *argv[]) if (settings.contains("pos")) pos = settings.value("pos").toPoint(); } - DASH_LOG(info) << "loaded config: " << settings.fileName().toStdString(); + DASH_LOG(info) << "loaded config: " << settings.fileName().toStdString() << ";size: " << size.toStdString() << ";pos: " << pos.toStdString(); QPixmap pixmap(QPixmap(":/splash.png").scaledToHeight(size.height() / 2)); QSplashScreen splash(pixmap); @@ -35,8 +35,8 @@ int main(int argc, char *argv[]) MainWindow window(QRect(pos, size)); window.setWindowIcon(QIcon(":/logo.png")); window.setWindowFlags(Qt::FramelessWindowHint); - //if (!fixed) - // window.setWindowState(Qt::WindowFullScreen); + if (!fixed) + window.setWindowState(Qt::WindowFullScreen); window.show(); splash.finish(&window); From db2d08ab4ce86ba10e994a25be448f495dff4b76 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 01:59:00 +0200 Subject: [PATCH 288/332] prova 3 --- plugins/brightness/mocked/mocked.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/brightness/mocked/mocked.cpp b/plugins/brightness/mocked/mocked.cpp index ae6515c8..0acea21e 100644 --- a/plugins/brightness/mocked/mocked.cpp +++ b/plugins/brightness/mocked/mocked.cpp @@ -24,6 +24,6 @@ uint8_t Mocked::priority() void Mocked::set(int brightness) { - if (this->window != nullptr) - this->window->setWindowOpacity(brightness / 255.0); + for (auto widget : QApplication::topLevelWidgets()) + widget->setWindowOpacity(brightness / 255.0); } From c2a7ecc28eb184054e3288ff2c29896be76a3f3e Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 02:03:09 +0200 Subject: [PATCH 289/332] prova 3 --- src/dash.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dash.cpp b/src/dash.cpp index 9d6bbe77..e247a57c 100644 --- a/src/dash.cpp +++ b/src/dash.cpp @@ -23,7 +23,7 @@ int main(int argc, char *argv[]) if (settings.contains("pos")) pos = settings.value("pos").toPoint(); } - DASH_LOG(info) << "loaded config: " << settings.fileName().toStdString() << ";size: " << size.toStdString() << ";pos: " << pos.toStdString(); + DASH_LOG(info) << "loaded config: " << settings.fileName().toStdString() << ";size: " << size << ";pos: " << pos; QPixmap pixmap(QPixmap(":/splash.png").scaledToHeight(size.height() / 2)); QSplashScreen splash(pixmap); From 7630e1faa965b16665c141cb4bf6920a7863b04b Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 02:12:25 +0200 Subject: [PATCH 290/332] prova 3 --- src/dash.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dash.cpp b/src/dash.cpp index e247a57c..338a8d6d 100644 --- a/src/dash.cpp +++ b/src/dash.cpp @@ -23,7 +23,7 @@ int main(int argc, char *argv[]) if (settings.contains("pos")) pos = settings.value("pos").toPoint(); } - DASH_LOG(info) << "loaded config: " << settings.fileName().toStdString() << ";size: " << size << ";pos: " << pos; + DASH_LOG(info) << "loaded config: " << settings.fileName().toStdString() << ";width: " << size.width() << ";height: " << size.height() << ";x: " << pos.x() << ";y: " << pos.y(); QPixmap pixmap(QPixmap(":/splash.png").scaledToHeight(size.height() / 2)); QSplashScreen splash(pixmap); From cffc6d622f0fd5779a24300de69db8264a872d67 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 12:42:47 +0200 Subject: [PATCH 291/332] prova 3 --- include/app/pages/settings.hpp | 2 ++ src/app/pages/settings.cpp | 40 ++++++++++++++++++++++++++++++++++ src/app/session.cpp | 4 ++-- src/dash.cpp | 2 +- 4 files changed, 45 insertions(+), 3 deletions(-) diff --git a/include/app/pages/settings.hpp b/include/app/pages/settings.hpp index 031c7623..d9db3d0e 100644 --- a/include/app/pages/settings.hpp +++ b/include/app/pages/settings.hpp @@ -52,6 +52,8 @@ class LayoutSettingsTab : public QWidget { private: QWidget *settings_widget(); QWidget *pages_widget(); + QWidget *fullscreen_widget(); + QWidget *fullscreen_on_start_widget(); QWidget *status_bar_widget(); QWidget *control_bar_widget(); QWidget *quick_view_row_widget(); diff --git a/src/app/pages/settings.cpp b/src/app/pages/settings.cpp index 355069fd..58d97b15 100644 --- a/src/app/pages/settings.cpp +++ b/src/app/pages/settings.cpp @@ -272,6 +272,9 @@ QWidget *LayoutSettingsTab::settings_widget() layout->addWidget(this->pages_widget()); layout->addWidget(Session::Forge::br(), 1); + layout->addWidget(this->fullscreen_widget(), 1); + layout->addWidget(this->fullscreen_on_start_widget(), 1); + layout->addWidget(Session::Forge::br(), 1); layout->addWidget(this->status_bar_widget(), 1); layout->addWidget(Session::Forge::br(), 1); layout->addWidget(this->control_bar_widget(), 1); @@ -326,6 +329,43 @@ QWidget *LayoutSettingsTab::pages_widget() return widget; } +QWidget *LayoutSettingsTab::fullscreen_widget() +{ + QWidget *widget = new QWidget(this); + QHBoxLayout *layout = new QHBoxLayout(widget); + + QLabel *label = new QLabel("Fullscreen Toggler", widget); + layout->addWidget(label, 1); + + QStringList togglers; + for (auto toggler : this->arbiter.layout().fullscreen.togglers()) + togglers.append(toggler->name()); + Selector *selector = new Selector(togglers, this->arbiter.layout().fullscreen.curr_toggler->name(), this->arbiter.forge().font(14), this->arbiter, widget); + connect(selector, &Selector::idx_changed, [this](int idx){ + this->arbiter.set_curr_fullscreen_toggler(idx); + }); + layout->addWidget(selector, 1); + + return widget; +} + +QWidget *LayoutSettingsTab::fullscreen_on_start_widget() +{ + QWidget *widget = new QWidget(this); + QHBoxLayout *layout = new QHBoxLayout(widget); + + QLabel *label = new QLabel("Fullscreen on Start", widget); + layout->addWidget(label, 1); + + Switch *toggle = new Switch(widget); + toggle->scale(this->arbiter.layout().scale); + toggle->setChecked(this->arbiter.layout().fullscreen.on_start); + connect(toggle, &Switch::stateChanged, [this](bool state){ this->arbiter.set_fullscreen_on_start(state); }); + layout->addWidget(toggle, 1, Qt::AlignHCenter); + + return widget; +} + QWidget *LayoutSettingsTab::status_bar_widget() { QWidget *widget = new QWidget(this); diff --git a/src/app/session.cpp b/src/app/session.cpp index 99447661..c05fcc96 100644 --- a/src/app/session.cpp +++ b/src/app/session.cpp @@ -178,7 +178,6 @@ Session::System::Brightness::Brightness(QSettings &settings) std::sort(this->plugin_infos_.begin(), this->plugin_infos_.end()); this->load(); - this->set(); } void Session::System::Brightness::load() @@ -410,7 +409,8 @@ Session::Core::Core(QSettings &settings, Arbiter &arbiter) new Action("Decrease Brightness", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.decrease_brightness(4); }, arbiter.window()), new Action("Increase Brightness", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.increase_brightness(4); }, arbiter.window()), new Action("Decrease Volume", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.decrease_volume(2); }, arbiter.window()), - new Action("Increase Volume", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.increase_volume(2); }, arbiter.window()) + new Action("Increase Volume", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.increase_volume(2); }, arbiter.window()), + new Action("Toggle Fullscreen", [&arbiter](Action::ActionState actionState){ if(actionState == Action::ActionState::Triggered || actionState == Action::ActionState::Activated) arbiter.toggle_fullscreen(); }, arbiter.window()) }; for (auto page : arbiter.layout().pages()) { diff --git a/src/dash.cpp b/src/dash.cpp index 338a8d6d..8de2d5cc 100644 --- a/src/dash.cpp +++ b/src/dash.cpp @@ -23,7 +23,7 @@ int main(int argc, char *argv[]) if (settings.contains("pos")) pos = settings.value("pos").toPoint(); } - DASH_LOG(info) << "loaded config: " << settings.fileName().toStdString() << ";width: " << size.width() << ";height: " << size.height() << ";x: " << pos.x() << ";y: " << pos.y(); + DASH_LOG(info) << "loaded config: " << settings.fileName().toStdString(); QPixmap pixmap(QPixmap(":/splash.png").scaledToHeight(size.height() / 2)); QSplashScreen splash(pixmap); From 2506b75ad8d59aa2422a1369660e471909942122 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 14:52:49 +0200 Subject: [PATCH 292/332] prova 3 --- src/app/pages/vehicle.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 42fc7d7f..4dbf3955 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -5,7 +5,7 @@ #include "app/pages/vehicle.hpp" #include "app/window.hpp" #include "plugins/vehicle_plugin.hpp" - +/* GaugesConfig gauges_cfg = { {"autonomia", "Autonomia", {"Miles", "Km"}, {10, 16, 12}, 0, [](double x, bool _) @@ -603,4 +603,4 @@ QWidget *LSTab::vehicle_data_widget(GaugeConfig cfg) } return widget; -} \ No newline at end of file +}*/ From 89bf0918b35dc568eb266e2c7fb66551fddf9b0e Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 15:01:52 +0200 Subject: [PATCH 293/332] prova 3 --- src/app/pages/vehicle.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 4dbf3955..891a9a1e 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -5,7 +5,7 @@ #include "app/pages/vehicle.hpp" #include "app/window.hpp" #include "plugins/vehicle_plugin.hpp" -/* + GaugesConfig gauges_cfg = { {"autonomia", "Autonomia", {"Miles", "Km"}, {10, 16, 12}, 0, [](double x, bool _) @@ -208,8 +208,8 @@ VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) void VehiclePage::init() { this->addTab(new DataTab(this->arbiter, this), "Data"); - this->addTab(new ObdTab(this->arbiter, this), "Obd"); - this->addTab(new LSTab(this->arbiter, this), "LS"); + //this->addTab(new ObdTab(this->arbiter, this), "Obd"); + //this->addTab(new LSTab(this->arbiter, this), "LS"); this->config = Config::get_instance(); for (auto device : QCanBus::instance()->availableDevices("socketcan")) @@ -603,4 +603,4 @@ QWidget *LSTab::vehicle_data_widget(GaugeConfig cfg) } return widget; -}*/ +} \ No newline at end of file From cddecb4cf76f8663fa731d48802f454d83768a8f Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 15:06:11 +0200 Subject: [PATCH 294/332] prova 3 funz +lstab --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 891a9a1e..0322ecb4 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -209,7 +209,7 @@ void VehiclePage::init() { this->addTab(new DataTab(this->arbiter, this), "Data"); //this->addTab(new ObdTab(this->arbiter, this), "Obd"); - //this->addTab(new LSTab(this->arbiter, this), "LS"); + this->addTab(new LSTab(this->arbiter, this), "LS"); this->config = Config::get_instance(); for (auto device : QCanBus::instance()->availableDevices("socketcan")) From 3bf44cea4f8435107f5a30b0aa20e17070fe0740 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 15:53:12 +0200 Subject: [PATCH 295/332] prova 4 --- src/app/pages/vehicle.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 0322ecb4..cf475897 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -408,7 +408,7 @@ QWidget *ObdTab::obd_data_widget(int colonna) QVBoxLayout *layout = new QVBoxLayout(widget); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - +/* switch (colonna) { case 1: @@ -489,7 +489,7 @@ QWidget *ObdTab::obd_data_widget(int colonna) layout->addWidget(this->vehicle_data_widget(gauges_cfg.LMB2)); layout->addStretch(); break; - } + }*/ return widget; } From 3c34949da179005cbba4133f3770a12b4589528e Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 15:58:28 +0200 Subject: [PATCH 296/332] prova 4 --- src/app/pages/vehicle.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index cf475897..4d7d4d6f 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -408,7 +408,7 @@ QWidget *ObdTab::obd_data_widget(int colonna) QVBoxLayout *layout = new QVBoxLayout(widget); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); -/* + switch (colonna) { case 1: @@ -423,7 +423,7 @@ QWidget *ObdTab::obd_data_widget(int colonna) layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.MAF)); layout->addStretch(); - break; + break;/* case 2: layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.MAP)); @@ -488,8 +488,8 @@ QWidget *ObdTab::obd_data_widget(int colonna) layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.LMB2)); layout->addStretch(); - break; - }*/ + break;*/ + } return widget; } From feeb4e408b59f7f25be7036a81bc76cf2c7708ce Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 16:00:10 +0200 Subject: [PATCH 297/332] prova 4 --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 4d7d4d6f..b9f50cfa 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -208,7 +208,7 @@ VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) void VehiclePage::init() { this->addTab(new DataTab(this->arbiter, this), "Data"); - //this->addTab(new ObdTab(this->arbiter, this), "Obd"); + this->addTab(new ObdTab(this->arbiter, this), "Obd"); this->addTab(new LSTab(this->arbiter, this), "LS"); this->config = Config::get_instance(); From af1aaf3746da620b27b287adae6ad443ee47e7d2 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 16:01:53 +0200 Subject: [PATCH 298/332] prova 4 --- src/app/pages/vehicle.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index b9f50cfa..7792cc51 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -423,7 +423,7 @@ QWidget *ObdTab::obd_data_widget(int colonna) layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.MAF)); layout->addStretch(); - break;/* + break; case 2: layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.MAP)); @@ -449,7 +449,7 @@ QWidget *ObdTab::obd_data_widget(int colonna) layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.TANK)); layout->addStretch(); - break; + break;/* case 4: layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.IGNANGLE)); From ba62ebf77526f526591aac5c664cb64a9ef547de Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 17:24:46 +0200 Subject: [PATCH 299/332] prova --- include/app/pages/vehicle.hpp | 19 +++++- src/app/pages/vehicle.cpp | 107 ++++++++++++++++++++++++++++++---- 2 files changed, 113 insertions(+), 13 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index dedc652d..87c098fc 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -135,12 +135,27 @@ class DataTab : public QWidget std::vector gauges; }; -class ObdTab : public QWidget +class Obd1Tab : public QWidget { Q_OBJECT public: - ObdTab(Arbiter &arbiter, QWidget *parent = nullptr); + Obd1Tab(Arbiter &arbiter, QWidget *parent = nullptr); + +private: + Arbiter &arbiter; + QWidget *obd_data_widget(int colonna); + QWidget *vehicle_data_widget(GaugeConfig cfg); + + std::vector gauges; +}; + +class Obd2Tab : public QWidget +{ + Q_OBJECT + +public: + Obd2Tab(Arbiter &arbiter, QWidget *parent = nullptr); private: Arbiter &arbiter; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 7792cc51..3f44acdb 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -55,7 +55,7 @@ GaugesConfig gauges_cfg = {"lmb2", "Sonda Lambda 2", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}}; -ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) +Obd1Tab::Obd1Tab(Arbiter &arbiter, QWidget *parent) : QWidget(parent), arbiter(arbiter) { QHBoxLayout *layout = new QHBoxLayout(this); @@ -105,6 +105,44 @@ ObdTab::ObdTab(Arbiter &arbiter, QWidget *parent) } }); } +Obd2Tab::Obd2Tab(Arbiter &arbiter, QWidget *parent) + : QWidget(parent), arbiter(arbiter) +{ + QHBoxLayout *layout = new QHBoxLayout(this); + + // QWidget *driving_data = this->speedo_tach_widget(); + // layout->addWidget(driving_data); + // layout->addWidget(Session::Forge::br(true)); + + QWidget *obd_data1 = this->obd_data_widget(1); + layout->addWidget(obd_data1); + layout->addWidget(Session::Forge::br(true)); + QWidget *obd_data2 = this->obd_data_widget(2); + layout->addWidget(obd_data2); + layout->addWidget(Session::Forge::br(true)); + QWidget *obd_data3 = this->obd_data_widget(3); + layout->addWidget(obd_data3); + + // QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); + // sp_left.setHorizontalStretch(5); + // driving_data->setSizePolicy(sp_left); + QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); + sp_right.setHorizontalStretch(2); + obd_data1->setSizePolicy(sp_right); + obd_data2->setSizePolicy(sp_right); + obd_data3->setSizePolicy(sp_right); + + connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value) + { + // DASH_LOG(info)<<"[Gauges] arbiter update: "<gauges) { + if(gauge->get_id() == gauge_id){ + // DASH_LOG(info)<<"[Gauges] Found: "<get_id(); + gauge->set_value(value); + } + } }); +} + LSTab::LSTab(Arbiter &arbiter, QWidget *parent) : QWidget(parent), arbiter(arbiter) { @@ -207,9 +245,10 @@ VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) void VehiclePage::init() { - this->addTab(new DataTab(this->arbiter, this), "Data"); - this->addTab(new ObdTab(this->arbiter, this), "Obd"); - this->addTab(new LSTab(this->arbiter, this), "LS"); + this->addTab(new DataTab(this->arbiter, this), "CAN1"); + this->addTab(new LSTab(this->arbiter, this), "CAN2"); + this->addTab(new Obd1Tab(this->arbiter, this), "OBD1"); + this->addTab(new Obd2Tab(this->arbiter, this), "OBD2"); this->config = Config::get_instance(); for (auto device : QCanBus::instance()->availableDevices("socketcan")) @@ -402,7 +441,7 @@ QWidget *DataTab::engine_data_widget() return widget; } -QWidget *ObdTab::obd_data_widget(int colonna) +QWidget *Obd1Tab::obd_data_widget(int colonna) { QWidget *widget = new QWidget(this); QVBoxLayout *layout = new QVBoxLayout(widget); @@ -449,8 +488,22 @@ QWidget *ObdTab::obd_data_widget(int colonna) layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.TANK)); layout->addStretch(); - break;/* - case 4: + break; + } + + return widget; +} + +QWidget *Obd2Tab::obd_data_widget(int colonna) +{ + QWidget *widget = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(widget); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + switch (colonna) + { + case 1: layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.IGNANGLE)); layout->addStretch(); @@ -463,7 +516,7 @@ QWidget *ObdTab::obd_data_widget(int colonna) layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL1)); layout->addStretch(); break; - case 5: + case 2: layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL2)); layout->addStretch(); @@ -476,7 +529,7 @@ QWidget *ObdTab::obd_data_widget(int colonna) layout->addWidget(this->vehicle_data_widget(gauges_cfg.RITCYL4)); layout->addStretch(); break; - case 6: + case 3: layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.SFT)); layout->addStretch(); @@ -488,7 +541,7 @@ QWidget *ObdTab::obd_data_widget(int colonna) layout->addStretch(); layout->addWidget(this->vehicle_data_widget(gauges_cfg.LMB2)); layout->addStretch(); - break;*/ + break; } return widget; @@ -541,7 +594,39 @@ QWidget *DataTab::vehicle_data_widget(GaugeConfig cfg) return widget; } -QWidget *ObdTab::vehicle_data_widget(GaugeConfig cfg) +QWidget *Obd1Tab::vehicle_data_widget(GaugeConfig cfg) +{ + QWidget *widget = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(widget); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + QFont value_font(this->arbiter.forge().font(cfg.font_size.value, true)); + + QFont unit_font(this->arbiter.forge().font(cfg.font_size.unit)); + unit_font.setWeight(QFont::Light); + unit_font.setItalic(true); + + Gauge *gauge = new Gauge(cfg, + value_font, unit_font, Gauge::RIGHT, widget); + layout->addWidget(gauge); + this->gauges.push_back(gauge); + + if (cfg.font_size.label > 0) + { + QFont label_font(this->arbiter.forge().font(cfg.font_size.label)); + label_font.setWeight(QFont::Light); + + QLabel *gauge_label = new QLabel(cfg.description, widget); + gauge_label->setFont(label_font); + gauge_label->setAlignment(Qt::AlignHCenter); + layout->addWidget(gauge_label); + } + + return widget; +} + +QWidget *Obd2Tab::vehicle_data_widget(GaugeConfig cfg) { QWidget *widget = new QWidget(this); QVBoxLayout *layout = new QVBoxLayout(widget); From b55212ae05fe8d88bffb3577f0e58ad030552469 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 17:27:20 +0200 Subject: [PATCH 300/332] prova --- src/app/pages/vehicle.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 3f44acdb..0876738f 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -72,15 +72,6 @@ Obd1Tab::Obd1Tab(Arbiter &arbiter, QWidget *parent) layout->addWidget(Session::Forge::br(true)); QWidget *obd_data3 = this->obd_data_widget(3); layout->addWidget(obd_data3); - layout->addWidget(Session::Forge::br(true)); - QWidget *obd_data4 = this->obd_data_widget(4); - layout->addWidget(obd_data4); - layout->addWidget(Session::Forge::br(true)); - QWidget *obd_data5 = this->obd_data_widget(5); - layout->addWidget(obd_data5); - layout->addWidget(Session::Forge::br(true)); - QWidget *obd_data6 = this->obd_data_widget(6); - layout->addWidget(obd_data6); // QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); // sp_left.setHorizontalStretch(5); From be106f320187797da51f569d610c0a0f23b0e4c2 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 28 Jul 2023 17:28:53 +0200 Subject: [PATCH 301/332] last working --- src/app/pages/vehicle.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 0876738f..4a4a2b0a 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -81,9 +81,6 @@ Obd1Tab::Obd1Tab(Arbiter &arbiter, QWidget *parent) obd_data1->setSizePolicy(sp_right); obd_data2->setSizePolicy(sp_right); obd_data3->setSizePolicy(sp_right); - obd_data4->setSizePolicy(sp_right); - obd_data5->setSizePolicy(sp_right); - obd_data6->setSizePolicy(sp_right); connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value) { From ae4270edae2fe9b1471ab76231fb2b037a65ea22 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 29 Jul 2023 16:40:25 +0200 Subject: [PATCH 302/332] ADDED LS GAUGES --- include/app/pages/vehicle.hpp | 11 ++++- src/app/pages/vehicle.cpp | 83 +++++++++++++++++++++++++++++++---- 2 files changed, 84 insertions(+), 10 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 87c098fc..f62e91dd 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -59,6 +59,15 @@ struct GaugesConfig GaugeConfig SFT; GaugeConfig LMB1; GaugeConfig LMB2; + GaugeConfig LSCOOLANT; + GaugeConfig LSOIL; + GaugeConfig LSLVLCOOLANT; + GaugeConfig LSTEMPEXT; + GaugeConfig LSBENZ; + GaugeConfig LSVOLT; + GaugeConfig LSINIEZS; + GaugeConfig LSINIEZH; + GaugeConfig LSINIEZKM; }; class Gauge : public QWidget @@ -174,7 +183,7 @@ class LSTab : public QWidget private: Arbiter &arbiter; - QWidget *ls_data_widget(); + QWidget *ls_data_widget(int colonna); QWidget *vehicle_data_widget(GaugeConfig cfg); std::vector gauges; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 4a4a2b0a..4e2340f7 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -53,7 +53,26 @@ GaugesConfig gauges_cfg = {"lmb1", "Sonda Lambda 1", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, {"lmb2", "Sonda Lambda 2", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) - { return x; }}}; + { return x; }}, + {"lscoolant", "Antigelo", {"°C", "°C"}, {8, 18, 10}, 1, [](double x, bool si) + { return x; }}, + {"lsoil", "Olio motore", {"lvl", "lvl"}, {8, 18, 10}, 0, [](double x, bool si) + { return x; }}, + {"lslvlcoolant", "Livello Antigelo", {"lvl", "lvl"}, {8, 18, 10}, 0, [](double x, bool si) + { return x; }}, + {"lstempext", "Temperatura Esterna", {"°C", "°C"}, {8, 18, 10}, 1, [](double x, bool si) + { return x; }}, + {"lsbenz", "Benzina", {"L", "L"}, {8, 18, 10}, 1, [](double x, bool si) + { return x; }}, + {"lsvolt", "Tensione Batteria", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) + { return x; }}, + {"lsiniezs", "Cons. inst.", {"ml/s", "ml/s"}, {8, 18, 10}, 1, [](double x, bool si) + { return x; }}, + {"lsiniezh", "Cons. orari", {"L", "L"}, {8, 18, 10}, 1, [](double x, bool si) + { return x; }}, + {"lsiniezkm", "Cons. ogni 100km", {"L", "L"}, {8, 18, 10}, 1, [](double x, bool si) + { return x; }} + }; Obd1Tab::Obd1Tab(Arbiter &arbiter, QWidget *parent) : QWidget(parent), arbiter(arbiter) @@ -140,15 +159,23 @@ LSTab::LSTab(Arbiter &arbiter, QWidget *parent) // layout->addWidget(driving_data); // layout->addWidget(Session::Forge::br(true)); - QWidget *ls_data = this->ls_data_widget(); - layout->addWidget(ls_data); + QWidget *ls_data1 = this->ls_data_widget(1); + layout->addWidget(ls_data1); + layout->addWidget(Session::Forge::br(true)); + QWidget *ls_data2 = this->ls_data_widget(2); + layout->addWidget(ls_data2); + layout->addWidget(Session::Forge::br(true)); + QWidget *ls_data3 = this->ls_data_widget(3); + layout->addWidget(ls_data3); // QSizePolicy sp_left(QSizePolicy::Preferred, QSizePolicy::Preferred); // sp_left.setHorizontalStretch(5); // driving_data->setSizePolicy(sp_left); QSizePolicy sp_right(QSizePolicy::Preferred, QSizePolicy::Preferred); sp_right.setHorizontalStretch(2); - ls_data->setSizePolicy(sp_right); + ls_data1->setSizePolicy(sp_right); + ls_data2->setSizePolicy(sp_right); + ls_data3->setSizePolicy(sp_right); connect(&this->arbiter, &Arbiter::vehicle_update_data, [this](QString gauge_id, double value) { @@ -535,17 +562,55 @@ QWidget *Obd2Tab::obd_data_widget(int colonna) return widget; } -QWidget *LSTab::ls_data_widget() +QWidget *LSTab::ls_data_widget(int colonna) { QWidget *widget = new QWidget(this); QVBoxLayout *layout = new QVBoxLayout(widget); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.INTAKE_TEMP)); - layout->addStretch(); - // layout->addWidget(Session::Forge::br()); + switch (colonna) + { + case 1: + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSCOOLANT)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSOIL)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSLVLCOOLANT)); + layout->addStretch(); + break; + case 2: + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSTEMPEXT)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSBENZ)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSVOLT)); + layout->addStretch(); + break; + case 3: + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSINIEZS)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSINIEZH)); + layout->addStretch(); + layout->addWidget(Session::Forge::br()); + layout->addStretch(); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSINIEZKM)); + layout->addStretch(); + break; + } return widget; } From 1b25ae6c46b08548f253339a07d32b28f2982b0a Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 29 Jul 2023 18:33:33 +0200 Subject: [PATCH 303/332] prova coolant --- include/app/pages/vehicle.hpp | 1 - plugins/vehicle/test/test.cpp | 14 +++++++++++++- src/app/pages/vehicle.cpp | 4 +--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index f62e91dd..01e42816 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -59,7 +59,6 @@ struct GaugesConfig GaugeConfig SFT; GaugeConfig LMB1; GaugeConfig LMB2; - GaugeConfig LSCOOLANT; GaugeConfig LSOIL; GaugeConfig LSLVLCOOLANT; GaugeConfig LSTEMPEXT; diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 3d794bb8..b855a42d 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -420,7 +420,19 @@ void Test::readFrame() if (ttCoolRX2 != tempCoolant) { // DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; - // this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); + this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); + ttCoolRX2 = tempCoolant; + } + } + + if(id == "0145") + { + int tempCoolant = ((int)canMsg[3]) - 40; + + if (ttCoolRX2 != tempCoolant) + { + // DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; + this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); ttCoolRX2 = tempCoolant; } } diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 4e2340f7..20e69fa4 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -54,8 +54,6 @@ GaugesConfig gauges_cfg = { return x; }}, {"lmb2", "Sonda Lambda 2", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"lscoolant", "Antigelo", {"°C", "°C"}, {8, 18, 10}, 1, [](double x, bool si) - { return x; }}, {"lsoil", "Olio motore", {"lvl", "lvl"}, {8, 18, 10}, 0, [](double x, bool si) { return x; }}, {"lslvlcoolant", "Livello Antigelo", {"lvl", "lvl"}, {8, 18, 10}, 0, [](double x, bool si) @@ -573,7 +571,7 @@ QWidget *LSTab::ls_data_widget(int colonna) { case 1: layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSCOOLANT)); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.COOLANT_TEMP)); layout->addStretch(); layout->addWidget(Session::Forge::br()); layout->addStretch(); From 24ffc589dad84d499dbaf552a461acfa43c2f3a2 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 30 Jul 2023 17:18:34 +0200 Subject: [PATCH 304/332] LS manca solo iniezione --- include/app/pages/vehicle.hpp | 1 - plugins/vehicle/test/test.cpp | 82 ++++++++++++++++++++++++++++++++--- plugins/vehicle/test/test.hpp | 8 +++- src/app/pages/vehicle.cpp | 6 +-- 4 files changed, 84 insertions(+), 13 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 01e42816..31315f30 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -61,7 +61,6 @@ struct GaugesConfig GaugeConfig LMB2; GaugeConfig LSOIL; GaugeConfig LSLVLCOOLANT; - GaugeConfig LSTEMPEXT; GaugeConfig LSBENZ; GaugeConfig LSVOLT; GaugeConfig LSINIEZS; diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index b855a42d..a7e69ddc 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -325,11 +325,11 @@ void Test::readFrame() int tempCoolant = ((int)canMsg[2]) - 40; - if (ttCoolRX1 != tempCoolant) + if (ttCool != tempCoolant) { // DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); - ttCoolRX1 = tempCoolant; + ttCool = tempCoolant; } } @@ -417,23 +417,93 @@ void Test::readFrame() int tempCoolant = ((int)canMsg[1]) - 40; - if (ttCoolRX2 != tempCoolant) + if (ttCool != tempCoolant) { // DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); - ttCoolRX2 = tempCoolant; + ttCool = tempCoolant; } } + //LSCAN + if(id == "0145") { int tempCoolant = ((int)canMsg[3]) - 40; - if (ttCoolRX2 != tempCoolant) + if (ttCool != tempCoolant) { // DASH_LOG(info) << "Antigelo:" << QString::number(tempCoolant).toStdString() << "\r\n"; this->arbiter->vehicle_update_data("coolant_temp", tempCoolant); - ttCoolRX2 = tempCoolant; + ttCool = tempCoolant; + } + + int tempOil = ((int)canMsg[2]); + + if (ttOil != tempOil) + { + this->arbiter->vehicle_update_data("lsoil", tempOil); + ttOil = tempOil; + } + } + + if(id=="0350") + { + int templvlCoolant = (int)(canMsg[1] & 8); //se 0b....1... allora and con 8 = 8 e coolant basso, altrimenti coolant alto + + if (ttlvlCool != templvlCoolant) + { + this->arbiter->vehicle_update_data("lslvlcoolant", templvlCoolant); + ttlvlCool = templvlCoolant; + } + + double temp = ((((canMsg[1] & 0x03) << 8) + canMsg[2])/ 8.0) - 40.0; + + if (temp != tempsalvata) + { + // DASH_LOG(info) << "Temperatura esterna:" << QString::number(temp).toStdString() << "\r\n"; + this->arbiter->vehicle_update_data("ext_temp", temp); + tempsalvata = temp; + } + } + + if (id == "0375") + { + //double tempBenz = 94 - (canMsg[1]/2); + //double tempBenz = (((int)(canMsg[1] & 255) | (canMsg[0] << 8)) * (-0.6d)) + 100.0d; + + double tempBenz = codBenz[((int)canMsg[1])-80]; + + if (ttBenz != tempBenz) + { + this->arbiter->vehicle_update_data("lsbenz", tempBenz); + ttBenz = tempBenz; + } + } + + if (id == "0500") + { + + //double tempVolt = (((canMsg[0] << 8) + canMsg[1])-28.0)/10.0; + double tempVolt = 2.8+canMsg[1]*0.1; + + if (ttVolt != tempVolt) + { + this->arbiter->vehicle_update_data("lsvolt", tempVolt); + ttVolt = tempVolt; + } + } + + if (id == "0130") + { + + //double tempVolt = (((canMsg[0] << 8) + canMsg[1])-28.0)/10.0; + double tempVolt = 2.8+canMsg[1]*0.1; + + if (ttVolt != tempVolt) + { + this->arbiter->vehicle_update_data("lsvolt", tempVolt); + ttVolt = tempVolt; } } } diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 9cb32f3d..a86d68e5 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -32,12 +32,16 @@ class Test : public QObject, VehiclePlugin int lumws = 0; int tempAC = 0; int fanAC = 0; - int ttCoolRX2 = 0; - int ttCoolRX1 = 0; + int ttCool = 0; + int ttlvlCool = 0; int kmsalvati = 0; int rpmsalvati = 0; int velsalvata = 0; double tempsalvata = 0; + int ttOil = 0; + double ttVolt = 0; + double ttBenz = 0; + double codBenz [100] = {52.0, 52.0, 52.0, 52.0, 52.0, 51.2, 50.5, 49.8, 49.1, 48.4, 47.7, 47.0, 46.2, 45.2, 44.8, 44.1, 43.4, 42.7, 42.0, 41.3, 40.7, 40.1, 39.5, 38.8, 38.2, 37.6, 37.0, 36.3, 35.7, 35.1, 34.5, 33.8, 33.2, 32.6, 32.0, 31.3, 30.6, 30.0, 29.3, 28.6, 28.0, 27.3, 26.6, 26.0, 25.3, 24.6, 24.0, 23.3, 22.6, 22.0, 21.3, 20.7, 20.0, 19.4, 18.7, 18.1, 17.5, 16.8, 16.2, 15.5, 14.9, 14.2, 13.6, 13.0, 12.5, 12.1, 11.6, 11.2, 10.8, 10.3, 9.9, 9.5, 9.0, 8.6, 8.1, 7.7, 7.3, 6.8, 6.4, 6.0, 5.7, 5.4, 5.1, 4.8, 4.5, 4.2, 4.0, 3.7, 3.4, 3.1, 2.8, 2.5, 2.2, 2.0, 1.7, 1.4, 1.1, 0.8, 0.5, 0.2}; bool premuto = false; SocketCANBus *bus = nullptr; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 20e69fa4..01aa0631 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -10,7 +10,7 @@ GaugesConfig gauges_cfg = { {"autonomia", "Autonomia", {"Miles", "Km"}, {10, 16, 12}, 0, [](double x, bool _) { return x; }}, - {"coolant_temp", "Temperatura Refrigerante Motore", {"°F", "°C"}, {10, 16, 12}, 0, [](double x, bool si) + {"coolant_temp", "Antigelo", {"°F", "°C"}, {10, 16, 12}, 0, [](double x, bool si) { return si ? x : Conversion::c_to_f(x); }}, {"rpm", "Giri al Minuto (RPM)", {"rpm", "rpm"}, {0, 24, 12}, 0, [](double x, bool _) { return x; }}, @@ -58,8 +58,6 @@ GaugesConfig gauges_cfg = { return x; }}, {"lslvlcoolant", "Livello Antigelo", {"lvl", "lvl"}, {8, 18, 10}, 0, [](double x, bool si) { return x; }}, - {"lstempext", "Temperatura Esterna", {"°C", "°C"}, {8, 18, 10}, 1, [](double x, bool si) - { return x; }}, {"lsbenz", "Benzina", {"L", "L"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, {"lsvolt", "Tensione Batteria", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) @@ -584,7 +582,7 @@ QWidget *LSTab::ls_data_widget(int colonna) break; case 2: layout->addStretch(); - layout->addWidget(this->vehicle_data_widget(gauges_cfg.LSTEMPEXT)); + layout->addWidget(this->vehicle_data_widget(gauges_cfg.EXT_TEMP)); layout->addStretch(); layout->addWidget(Session::Forge::br()); layout->addStretch(); From a84154a406497f2601fdfa5989d0fd5e26784a0b Mon Sep 17 00:00:00 2001 From: Gioele Date: Sun, 30 Jul 2023 19:14:19 +0200 Subject: [PATCH 305/332] consumo istantaneo secondo --- plugins/vehicle/test/test.cpp | 14 +++++++++----- plugins/vehicle/test/test.hpp | 2 ++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index a7e69ddc..1089f5cf 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -496,14 +496,18 @@ void Test::readFrame() if (id == "0130") { + double cons = ((canMsg[1]<<8)+canMsg[2])*0.03054; + double tempcons; - //double tempVolt = (((canMsg[0] << 8) + canMsg[1])-28.0)/10.0; - double tempVolt = 2.8+canMsg[1]*0.1; + if(cons != lastcons){ + tempcons = cons - lastcons; + lastcons = cons; + } - if (ttVolt != tempVolt) + if (ttlastcons != tempcons) { - this->arbiter->vehicle_update_data("lsvolt", tempVolt); - ttVolt = tempVolt; + this->arbiter->vehicle_update_data("lsiniezs", tempcons); + ttlastcons = tempcons; } } } diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index a86d68e5..ccf0b72f 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -38,6 +38,8 @@ class Test : public QObject, VehiclePlugin int rpmsalvati = 0; int velsalvata = 0; double tempsalvata = 0; + double lastcons = 0; + double ttlastcons = 0; int ttOil = 0; double ttVolt = 0; double ttBenz = 0; From 64750dc48db64147e9216b4fe66e6fae6292ed35 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 31 Jul 2023 12:02:52 +0200 Subject: [PATCH 306/332] aggiunto consumo orario e istantaneo --- plugins/vehicle/test/test.cpp | 43 +++++++++++++++++++++++++++-------- plugins/vehicle/test/test.hpp | 4 +++- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 1089f5cf..b27c67aa 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -494,20 +494,45 @@ void Test::readFrame() } } + if( id == "0145"){ + ign = canMsg[1]; + } + if (id == "0130") { - double cons = ((canMsg[1]<<8)+canMsg[2])*0.03054; + double cons = (canMsg[1]<<8)+canMsg[2]; double tempcons; + double hcons; - if(cons != lastcons){ - tempcons = cons - lastcons; - lastcons = cons; - } + if(ign!=0){ + + if(cons != lastcons){ + + if(conslastcons){ + tempcons = (cons - lastcons) * 0.03054; + hcons = (cons - lastcons) * 0.03054 * 36; + } + + lastcons = cons; + } + + if (ttlastconss != tempcons) + { + this->arbiter->vehicle_update_data("lsiniezs", tempcons); + ttlastconss = tempcons; + } + + if (ttlastconsh != hcons) + { + this->arbiter->vehicle_update_data("lsiniezh", hcons); + ttlastconsh = hcons; + } - if (ttlastcons != tempcons) - { - this->arbiter->vehicle_update_data("lsiniezs", tempcons); - ttlastcons = tempcons; } } } diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index ccf0b72f..951c8f80 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -39,8 +39,10 @@ class Test : public QObject, VehiclePlugin int velsalvata = 0; double tempsalvata = 0; double lastcons = 0; - double ttlastcons = 0; + double ttlastconss = 0; + double ttlastconsh = 0; int ttOil = 0; + int ign = 0; double ttVolt = 0; double ttBenz = 0; double codBenz [100] = {52.0, 52.0, 52.0, 52.0, 52.0, 51.2, 50.5, 49.8, 49.1, 48.4, 47.7, 47.0, 46.2, 45.2, 44.8, 44.1, 43.4, 42.7, 42.0, 41.3, 40.7, 40.1, 39.5, 38.8, 38.2, 37.6, 37.0, 36.3, 35.7, 35.1, 34.5, 33.8, 33.2, 32.6, 32.0, 31.3, 30.6, 30.0, 29.3, 28.6, 28.0, 27.3, 26.6, 26.0, 25.3, 24.6, 24.0, 23.3, 22.6, 22.0, 21.3, 20.7, 20.0, 19.4, 18.7, 18.1, 17.5, 16.8, 16.2, 15.5, 14.9, 14.2, 13.6, 13.0, 12.5, 12.1, 11.6, 11.2, 10.8, 10.3, 9.9, 9.5, 9.0, 8.6, 8.1, 7.7, 7.3, 6.8, 6.4, 6.0, 5.7, 5.4, 5.1, 4.8, 4.5, 4.2, 4.0, 3.7, 3.4, 3.1, 2.8, 2.5, 2.2, 2.0, 1.7, 1.4, 1.1, 0.8, 0.5, 0.2}; From c4ed795db82c7aab318a489a94724cea2b6265d7 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 31 Jul 2023 12:07:26 +0200 Subject: [PATCH 307/332] tolto exttemp da lscan e fix dimensione can2 --- plugins/vehicle/test/test.cpp | 3 ++- src/app/pages/vehicle.cpp | 14 +++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index b27c67aa..744ed378 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -456,7 +456,7 @@ void Test::readFrame() this->arbiter->vehicle_update_data("lslvlcoolant", templvlCoolant); ttlvlCool = templvlCoolant; } - + /* double temp = ((((canMsg[1] & 0x03) << 8) + canMsg[2])/ 8.0) - 40.0; if (temp != tempsalvata) @@ -465,6 +465,7 @@ void Test::readFrame() this->arbiter->vehicle_update_data("ext_temp", temp); tempsalvata = temp; } + */ } if (id == "0375") diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 01aa0631..b9135b77 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -54,19 +54,19 @@ GaugesConfig gauges_cfg = { return x; }}, {"lmb2", "Sonda Lambda 2", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) { return x; }}, - {"lsoil", "Olio motore", {"lvl", "lvl"}, {8, 18, 10}, 0, [](double x, bool si) + {"lsoil", "Olio motore", {"lvl", "lvl"}, {10, 16, 12}, 0, [](double x, bool si) { return x; }}, - {"lslvlcoolant", "Livello Antigelo", {"lvl", "lvl"}, {8, 18, 10}, 0, [](double x, bool si) + {"lslvlcoolant", "Livello Antigelo", {"lvl", "lvl"}, {10, 16, 12}, 0, [](double x, bool si) { return x; }}, - {"lsbenz", "Benzina", {"L", "L"}, {8, 18, 10}, 1, [](double x, bool si) + {"lsbenz", "Benzina", {"L", "L"}, {10, 16, 12}, 1, [](double x, bool si) { return x; }}, - {"lsvolt", "Tensione Batteria", {"V", "V"}, {8, 18, 10}, 1, [](double x, bool si) + {"lsvolt", "Tensione Batteria", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool si) { return x; }}, - {"lsiniezs", "Cons. inst.", {"ml/s", "ml/s"}, {8, 18, 10}, 1, [](double x, bool si) + {"lsiniezs", "Cons. inst.", {"ml/s", "ml/s"}, {10, 16, 12}, 1, [](double x, bool si) { return x; }}, - {"lsiniezh", "Cons. orari", {"L", "L"}, {8, 18, 10}, 1, [](double x, bool si) + {"lsiniezh", "Cons. orari", {"L", "L"}, {10, 16, 12}, 1, [](double x, bool si) { return x; }}, - {"lsiniezkm", "Cons. ogni 100km", {"L", "L"}, {8, 18, 10}, 1, [](double x, bool si) + {"lsiniezkm", "Cons. ogni 100km", {"L", "L"}, {10, 16, 12}, 1, [](double x, bool si) { return x; }} }; From 873da63cd496bb9854db0b86ff77cb371c3b16ae Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 31 Jul 2023 16:31:27 +0200 Subject: [PATCH 308/332] manca da finire AC, consumi ogni 100km --- include/app/widgets/climate.hpp | 4 +- plugins/vehicle/test/test.cpp | 88 +++++++++++++++++++++++++++++---- plugins/vehicle/test/test.hpp | 3 ++ src/app/widgets/climate.cpp | 6 +-- 4 files changed, 86 insertions(+), 15 deletions(-) diff --git a/include/app/widgets/climate.hpp b/include/app/widgets/climate.hpp index 784f5332..5b8439d7 100644 --- a/include/app/widgets/climate.hpp +++ b/include/app/widgets/climate.hpp @@ -24,7 +24,7 @@ class ClimateSnackBar : public SnackBar { public: ClimateSnackBar(Arbiter &arbiter); - void set_left_temp(int temp); + void set_left_temp(QString temp); void set_right_temp(int temp); void set_airflow(uint8_t airflow); void set_max_fan_speed(int max_speed); @@ -52,7 +52,7 @@ class Climate : public QWidget { uint8_t airflow() const { return this->airflow_; } void airflow(uint8_t airflow); int left_temp() const { return this->left_temp_; } - void left_temp(int left_temp); + void left_temp(QString left_temp); int right_temp() const { return this->right_temp_; } void right_temp(int right_temp); diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 744ed378..85b61ecb 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -26,7 +26,7 @@ bool Test::init(SocketCANBus *bus) if (this->arbiter) { this->vehicle = new Vehicle(*this->arbiter); - this->vehicle->pressure_init("psi", 35); + this->vehicle->pressure_init("km", 35); this->vehicle->disable_sensors(); this->vehicle->rotate(270); @@ -40,18 +40,12 @@ bool Test::init(SocketCANBus *bus) case 0: this->climate->airflow(Airflow::OFF); break; - case 9: - this->vehicle->sensor(Position::FRONT_LEFT, rand() % 5); - break; case 10: this->vehicle->sensor(Position::FRONT_MIDDLE_LEFT, rand() % 5); break; case 11: this->vehicle->sensor(Position::FRONT_MIDDLE_RIGHT, rand() % 5); break; - case 12: - this->vehicle->sensor(Position::FRONT_RIGHT, rand() % 5); - break; case 13: this->vehicle->sensor(Position::BACK_LEFT, rand() % 5); break; @@ -337,6 +331,37 @@ void Test::readFrame() if (id == "06C8") { + switch (canMsg[4]) + { + case 0x30: + this->climate->fan_speed(0) + break; + case 0x31: + this->climate->fan_speed(1) + break; + case 0x32: + this->climate->fan_speed(2) + break; + case 0x33: + this->climate->fan_speed(3) + break; + case 0x34: + this->climate->fan_speed(4) + break; + case 0x35: + this->climate->fan_speed(5) + break; + case 0x36: + this->climate->fan_speed(6) + break; + case 0x37: + this->climate->fan_speed(7) + break; + case 0x41: + //fanSpeed = "AUTO"; + break; + } + switch (canMsg[0]) // mode? { case 0x21: // normal mode, change flow direction @@ -366,7 +391,7 @@ void Test::readFrame() this->climate->airflow(Airflow::DEFROST | Airflow::FEET); break; case 0x59: // dir_auto: - DASH_LOG(info) << "AC AUTO \r\n"; + //DASH_LOG(info) << "AC AUTO \r\n"; break; } } @@ -377,14 +402,38 @@ void Test::readFrame() { case 0x03: tempAC = 10 * (canMsg[3] - 0x30) + (canMsg[5] - 0x30); - this->climate->left_temp(tempAC); - this->climate->right_temp(tempAC); + this->climate->left_temp(QString("%1°").arg(tempAC)); + //this->climate->right_temp(tempAC); + break; + + case 0x4C: + this->climate->left_temp(QString("LOW")); break; + case 0x48: + this->climate->left_temp(QString("HIGH")); + break; + case 0x36: + this->climate->airflow(Airflow::DEFROST); + break; + /* case 0x50: // fan set. canMsg[3] = canMsg[4] = ascii fanAC = canMsg[3] - 0x30; this->climate->fan_speed(fanAC); break; + */ + } + if(canMsg[4] == 0x25){ + if(canMsg[5] == 0x01){ + this->climate->airflow(Airflow::AC); //ac on + } + if(canMsg[5] == 0x03){ + this->climate->airflow(Airflow::OFF); //ac off + } + } + if(canMsg[2] == 0xE0){ + //fanauto + //climauto } break; @@ -427,6 +476,25 @@ void Test::readFrame() //LSCAN + if(id == "0110"){ + double leftWheel = ((canMsg[1] << 8 | canMsg[2])*1.5748)*0.00001; + double rightWheel = ((canMsg[3] << 8 | canMsg[4]) * 1.5748) * 0.00001; + dist = (leftWheel + rightWheel) /2; + + if (ttrightWheel != rightWheel) + { + this->vehicle->sensor(Position::FRONT_RIGHT, rightWheel); + ttrightWheel = rightWheel; + } + + if (ttlefttWheel != leftWheel) + { + this->vehicle->sensor(Position::FRONT_LEFT, leftWheel); + ttleftWheel = leftWheel; + } + + } + if(id == "0145") { int tempCoolant = ((int)canMsg[3]) - 40; diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 951c8f80..23e22655 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -43,6 +43,9 @@ class Test : public QObject, VehiclePlugin double ttlastconsh = 0; int ttOil = 0; int ign = 0; + double ttleftWheel=0; + double ttrightWheel=0; + double dist = 0; double ttVolt = 0; double ttBenz = 0; double codBenz [100] = {52.0, 52.0, 52.0, 52.0, 52.0, 51.2, 50.5, 49.8, 49.1, 48.4, 47.7, 47.0, 46.2, 45.2, 44.8, 44.1, 43.4, 42.7, 42.0, 41.3, 40.7, 40.1, 39.5, 38.8, 38.2, 37.6, 37.0, 36.3, 35.7, 35.1, 34.5, 33.8, 33.2, 32.6, 32.0, 31.3, 30.6, 30.0, 29.3, 28.6, 28.0, 27.3, 26.6, 26.0, 25.3, 24.6, 24.0, 23.3, 22.6, 22.0, 21.3, 20.7, 20.0, 19.4, 18.7, 18.1, 17.5, 16.8, 16.2, 15.5, 14.9, 14.2, 13.6, 13.0, 12.5, 12.1, 11.6, 11.2, 10.8, 10.3, 9.9, 9.5, 9.0, 8.6, 8.1, 7.7, 7.3, 6.8, 6.4, 6.0, 5.7, 5.4, 5.1, 4.8, 4.5, 4.2, 4.0, 3.7, 3.4, 3.1, 2.8, 2.5, 2.2, 2.0, 1.7, 1.4, 1.1, 0.8, 0.5, 0.2}; diff --git a/src/app/widgets/climate.cpp b/src/app/widgets/climate.cpp index 890c8b49..0c7fb85c 100644 --- a/src/app/widgets/climate.cpp +++ b/src/app/widgets/climate.cpp @@ -51,9 +51,9 @@ QLayout *ClimateSnackBar::state() return layout; } -void ClimateSnackBar::set_left_temp(int temp) +void ClimateSnackBar::set_left_temp(QString temp) { - this->left_temp->setText(QString("%1°").arg(temp)); + this->left_temp->setText(temp); this->open(3000); } @@ -107,7 +107,7 @@ void Climate::airflow(uint8_t airflow) this->snack_bar->set_airflow(this->airflow_); } -void Climate::left_temp(int left_temp) +void Climate::left_temp(QString left_temp) { this->left_temp_ = left_temp; this->snack_bar->set_left_temp(this->left_temp_); From 953b36aa6b91a9df20bea845f91c0d8203ab3eea Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 31 Jul 2023 16:38:48 +0200 Subject: [PATCH 309/332] fix left_temp string to int --- include/app/widgets/climate.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/app/widgets/climate.hpp b/include/app/widgets/climate.hpp index 5b8439d7..9de0ac1d 100644 --- a/include/app/widgets/climate.hpp +++ b/include/app/widgets/climate.hpp @@ -51,7 +51,7 @@ class Climate : public QWidget { void fan_speed(int fan_speed); uint8_t airflow() const { return this->airflow_; } void airflow(uint8_t airflow); - int left_temp() const { return this->left_temp_; } + QString left_temp() const { return this->left_temp_; } void left_temp(QString left_temp); int right_temp() const { return this->right_temp_; } void right_temp(int right_temp); @@ -60,7 +60,7 @@ class Climate : public QWidget { int max_fan_speed_ = 0; int fan_speed_ = 0; uint8_t airflow_ = Airflow::OFF; - int left_temp_ = 0; + QString left_temp_; int right_temp_ = 0; ClimateSnackBar *snack_bar; From 8590b1c48c76bfb8ae50b8d7b32ed8eb8155f3fa Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 31 Jul 2023 16:42:39 +0200 Subject: [PATCH 310/332] fix ; and t from leftt --- plugins/vehicle/test/test.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 85b61ecb..73dbbfc3 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -334,28 +334,28 @@ void Test::readFrame() switch (canMsg[4]) { case 0x30: - this->climate->fan_speed(0) + this->climate->fan_speed(0); break; case 0x31: - this->climate->fan_speed(1) + this->climate->fan_speed(1); break; case 0x32: - this->climate->fan_speed(2) + this->climate->fan_speed(2); break; case 0x33: - this->climate->fan_speed(3) + this->climate->fan_speed(3); break; case 0x34: - this->climate->fan_speed(4) + this->climate->fan_speed(4); break; case 0x35: - this->climate->fan_speed(5) + this->climate->fan_speed(5); break; case 0x36: - this->climate->fan_speed(6) + this->climate->fan_speed(6); break; case 0x37: - this->climate->fan_speed(7) + this->climate->fan_speed(7); break; case 0x41: //fanSpeed = "AUTO"; @@ -487,7 +487,7 @@ void Test::readFrame() ttrightWheel = rightWheel; } - if (ttlefttWheel != leftWheel) + if (ttleftWheel != leftWheel) { this->vehicle->sensor(Position::FRONT_LEFT, leftWheel); ttleftWheel = leftWheel; From 0f2f81a96cb5de3c77a7df0f503aee6ed31ac19f Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 31 Jul 2023 17:06:53 +0200 Subject: [PATCH 311/332] aggiunti filtri lscan, uniti filtri su id 0145 can --- plugins/vehicle/test/test.cpp | 5 +---- src/canbus/socketcanbus.cpp | 28 ++++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 73dbbfc3..ef79e8dc 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -498,6 +498,7 @@ void Test::readFrame() if(id == "0145") { int tempCoolant = ((int)canMsg[3]) - 40; + ign = canMsg[1]; if (ttCool != tempCoolant) { @@ -563,10 +564,6 @@ void Test::readFrame() } } - if( id == "0145"){ - ign = canMsg[1]; - } - if (id == "0130") { double cons = (canMsg[1]<<8)+canMsg[2]; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 7cf6db43..466d30bb 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -22,8 +22,10 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare QString aperturaMS = "CAN USER OPEN CH1 95K2\r\n"; this->socket.write(aperturaMS.toUtf8()); - QString aperturaHS = "CAN USER OPEN CH2 500K\r\n"; - this->socket.write(aperturaHS.toUtf8()); + //QString aperturaHS = "CAN USER OPEN CH2 500K\r\n"; + //this->socket.write(aperturaHS.toUtf8()); + QString aperturaLS = "CAN USER OPEN CH2 33K3 GMLAN\r\n"; + this->socket.write(aperturaLS.toUtf8()); QString mascheraMS = "CAN USER MASK CH1 0FFF\r\n"; this->socket.write(mascheraMS.toUtf8()); @@ -52,8 +54,26 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare QString filtroTempAntigeloRX1 = "CAN USER FILTER CH1 6 04EC\r\n"; this->socket.write(filtroTempAntigeloRX1.toUtf8()); - QString filtroTempAntigeloRX2 = "CAN USER FILTER CH2 0 0510\r\n"; - this->socket.write(filtroTempAntigeloRX2.toUtf8()); + //QString filtroTempAntigeloRX2 = "CAN USER FILTER CH2 0 0510\r\n"; + //this->socket.write(filtroTempAntigeloRX2.toUtf8()); + + QString filtroCH2_0 = "CAN USER FILTER CH2 0 0110\r\n"; + this->socket.write(filtroCH2_0.toUtf8()); + + QString filtroCH2_1 = "CAN USER FILTER CH2 1 0145\r\n"; + this->socket.write(filtroCH2_1.toUtf8()); + + QString filtroCH2_2 = "CAN USER FILTER CH2 2 0350\r\n"; + this->socket.write(filtroCH2_2.toUtf8()); + + QString filtroCH2_3 = "CAN USER FILTER CH2 3 0375\r\n"; + this->socket.write(filtroCH2_3.toUtf8()); + + QString filtroCH2_4 = "CAN USER FILTER CH2 4 0500\r\n"; + this->socket.write(filtroCH2_4.toUtf8()); + + QString filtroCH2_5 = "CAN USER FILTER CH2 5 0130\r\n"; + this->socket.write(filtroCH2_5.toUtf8()); DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; } From 42d66ee5c9588d3ecf3b0d524c8fc7cf34f5d299 Mon Sep 17 00:00:00 2001 From: Gioele Date: Mon, 31 Jul 2023 22:53:07 +0200 Subject: [PATCH 312/332] fix benz calc, fix fan number --- plugins/vehicle/test/test.cpp | 37 ++--------------------------------- plugins/vehicle/test/test.hpp | 2 +- 2 files changed, 3 insertions(+), 36 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index ef79e8dc..f9ee787e 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -331,36 +331,6 @@ void Test::readFrame() if (id == "06C8") { - switch (canMsg[4]) - { - case 0x30: - this->climate->fan_speed(0); - break; - case 0x31: - this->climate->fan_speed(1); - break; - case 0x32: - this->climate->fan_speed(2); - break; - case 0x33: - this->climate->fan_speed(3); - break; - case 0x34: - this->climate->fan_speed(4); - break; - case 0x35: - this->climate->fan_speed(5); - break; - case 0x36: - this->climate->fan_speed(6); - break; - case 0x37: - this->climate->fan_speed(7); - break; - case 0x41: - //fanSpeed = "AUTO"; - break; - } switch (canMsg[0]) // mode? { @@ -416,12 +386,10 @@ void Test::readFrame() case 0x36: this->climate->airflow(Airflow::DEFROST); break; - /* case 0x50: // fan set. canMsg[3] = canMsg[4] = ascii fanAC = canMsg[3] - 0x30; this->climate->fan_speed(fanAC); break; - */ } if(canMsg[4] == 0x25){ if(canMsg[5] == 0x01){ @@ -539,10 +507,9 @@ void Test::readFrame() if (id == "0375") { - //double tempBenz = 94 - (canMsg[1]/2); + double tempBenz = 94 - (canMsg[1]/2); //double tempBenz = (((int)(canMsg[1] & 255) | (canMsg[0] << 8)) * (-0.6d)) + 100.0d; - - double tempBenz = codBenz[((int)canMsg[1])-80]; + //double tempBenz = codBenz[((int)canMsg[1])-80]; if (ttBenz != tempBenz) { diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index 23e22655..f37787b6 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -48,7 +48,7 @@ class Test : public QObject, VehiclePlugin double dist = 0; double ttVolt = 0; double ttBenz = 0; - double codBenz [100] = {52.0, 52.0, 52.0, 52.0, 52.0, 51.2, 50.5, 49.8, 49.1, 48.4, 47.7, 47.0, 46.2, 45.2, 44.8, 44.1, 43.4, 42.7, 42.0, 41.3, 40.7, 40.1, 39.5, 38.8, 38.2, 37.6, 37.0, 36.3, 35.7, 35.1, 34.5, 33.8, 33.2, 32.6, 32.0, 31.3, 30.6, 30.0, 29.3, 28.6, 28.0, 27.3, 26.6, 26.0, 25.3, 24.6, 24.0, 23.3, 22.6, 22.0, 21.3, 20.7, 20.0, 19.4, 18.7, 18.1, 17.5, 16.8, 16.2, 15.5, 14.9, 14.2, 13.6, 13.0, 12.5, 12.1, 11.6, 11.2, 10.8, 10.3, 9.9, 9.5, 9.0, 8.6, 8.1, 7.7, 7.3, 6.8, 6.4, 6.0, 5.7, 5.4, 5.1, 4.8, 4.5, 4.2, 4.0, 3.7, 3.4, 3.1, 2.8, 2.5, 2.2, 2.0, 1.7, 1.4, 1.1, 0.8, 0.5, 0.2}; + //double codBenz [100] = {52.0, 52.0, 52.0, 52.0, 52.0, 51.2, 50.5, 49.8, 49.1, 48.4, 47.7, 47.0, 46.2, 45.2, 44.8, 44.1, 43.4, 42.7, 42.0, 41.3, 40.7, 40.1, 39.5, 38.8, 38.2, 37.6, 37.0, 36.3, 35.7, 35.1, 34.5, 33.8, 33.2, 32.6, 32.0, 31.3, 30.6, 30.0, 29.3, 28.6, 28.0, 27.3, 26.6, 26.0, 25.3, 24.6, 24.0, 23.3, 22.6, 22.0, 21.3, 20.7, 20.0, 19.4, 18.7, 18.1, 17.5, 16.8, 16.2, 15.5, 14.9, 14.2, 13.6, 13.0, 12.5, 12.1, 11.6, 11.2, 10.8, 10.3, 9.9, 9.5, 9.0, 8.6, 8.1, 7.7, 7.3, 6.8, 6.4, 6.0, 5.7, 5.4, 5.1, 4.8, 4.5, 4.2, 4.0, 3.7, 3.4, 3.1, 2.8, 2.5, 2.2, 2.0, 1.7, 1.4, 1.1, 0.8, 0.5, 0.2}; bool premuto = false; SocketCANBus *bus = nullptr; From 117ff586511dcb238ba69a958c50cce834e088a8 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 1 Aug 2023 18:01:58 +0200 Subject: [PATCH 313/332] show ac on/off, test consumption, test actab --- include/app/pages/vehicle.hpp | 12 ++++++++++++ include/app/widgets/climate.hpp | 8 ++++---- plugins/vehicle/test/test.cpp | 13 +++++++------ src/app/pages/vehicle.cpp | 25 ++++++++++++++++++++++++- src/app/widgets/climate.cpp | 6 +++--- 5 files changed, 50 insertions(+), 14 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 31315f30..d2b5b67b 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -186,3 +186,15 @@ class LSTab : public QWidget std::vector gauges; }; + +class ACTab : public QWidget +{ + Q_OBJECT + +public: + ACTab(Arbiter &arbiter, QWidget *parent = nullptr); + +private: + Arbiter &arbiter; + QWidget *aq_widget(); +}; diff --git a/include/app/widgets/climate.hpp b/include/app/widgets/climate.hpp index 9de0ac1d..17670dba 100644 --- a/include/app/widgets/climate.hpp +++ b/include/app/widgets/climate.hpp @@ -25,7 +25,7 @@ class ClimateSnackBar : public SnackBar { ClimateSnackBar(Arbiter &arbiter); void set_left_temp(QString temp); - void set_right_temp(int temp); + void set_right_temp(QString temp); void set_airflow(uint8_t airflow); void set_max_fan_speed(int max_speed); void set_fan_speed(int speed); @@ -53,15 +53,15 @@ class Climate : public QWidget { void airflow(uint8_t airflow); QString left_temp() const { return this->left_temp_; } void left_temp(QString left_temp); - int right_temp() const { return this->right_temp_; } - void right_temp(int right_temp); + QString right_temp() const { return this->right_temp_; } + void right_temp(QString right_temp); private: int max_fan_speed_ = 0; int fan_speed_ = 0; uint8_t airflow_ = Airflow::OFF; QString left_temp_; - int right_temp_ = 0; + QString right_temp_; ClimateSnackBar *snack_bar; }; diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index f9ee787e..c79f90e7 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -362,6 +362,7 @@ void Test::readFrame() break; case 0x59: // dir_auto: //DASH_LOG(info) << "AC AUTO \r\n"; + this->climate->right_temp("AUTO"); break; } } @@ -373,7 +374,6 @@ void Test::readFrame() case 0x03: tempAC = 10 * (canMsg[3] - 0x30) + (canMsg[5] - 0x30); this->climate->left_temp(QString("%1°").arg(tempAC)); - //this->climate->right_temp(tempAC); break; case 0x4C: @@ -394,14 +394,15 @@ void Test::readFrame() if(canMsg[4] == 0x25){ if(canMsg[5] == 0x01){ this->climate->airflow(Airflow::AC); //ac on + this->climate->right_temp("AC ON"); } if(canMsg[5] == 0x03){ this->climate->airflow(Airflow::OFF); //ac off + this->climate->right_temp("AC OFF"); } } if(canMsg[2] == 0xE0){ - //fanauto - //climauto + this->climate->right_temp("AUTO");//climauto flowauto } break; @@ -412,7 +413,7 @@ void Test::readFrame() break; case 0x25: // normal mode, auto flow speed, status - // 4 is E0 = full auto speed, 41 = manual flow direction + // [4] is E0 = full auto speed, 41 = manual flow direction break; case 0x26: // air distribution mode, @@ -543,12 +544,12 @@ void Test::readFrame() if(conslastcons){ tempcons = (cons - lastcons) * 0.03054; - hcons = (cons - lastcons) * 0.03054 * 36; + hcons = tempcons * 3.6; } lastcons = cons; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index b9135b77..bc51df4d 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -62,7 +62,7 @@ GaugesConfig gauges_cfg = { return x; }}, {"lsvolt", "Tensione Batteria", {"V", "V"}, {10, 16, 12}, 1, [](double x, bool si) { return x; }}, - {"lsiniezs", "Cons. inst.", {"ml/s", "ml/s"}, {10, 16, 12}, 1, [](double x, bool si) + {"lsiniezs", "Cons. inst.", {"ml/s", "ml/s"}, {10, 16, 12}, 2, [](double x, bool si) { return x; }}, {"lsiniezh", "Cons. orari", {"L", "L"}, {10, 16, 12}, 1, [](double x, bool si) { return x; }}, @@ -184,6 +184,28 @@ LSTab::LSTab(Arbiter &arbiter, QWidget *parent) } }); } +ACTab::ACTab(Arbiter &arbiter, QWidget *parent) + : QWidget(parent), arbiter(arbiter) +{ + QHBoxLayout *layout = new QHBoxLayout(this); + layout->addWidget(this->aq_widget(), 1); +} + +QWidget *ACTab::aq_widget() +{ + QWidget *widget = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(widget); + + QList autoblower = {"low","med","high"}; + + Selector *selector = new Selector(autoblower, "high", this->arbiter.forge().font(14), this->arbiter, widget, "high"); + //connect(selector, &Selector::item_changed, [this](QString item){ this->arbiter.set_brightness_plugin(item); }); + + layout->addWidget(selector); + + return widget; +} + Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) : QWidget(parent) { @@ -260,6 +282,7 @@ void VehiclePage::init() this->addTab(new LSTab(this->arbiter, this), "CAN2"); this->addTab(new Obd1Tab(this->arbiter, this), "OBD1"); this->addTab(new Obd2Tab(this->arbiter, this), "OBD2"); + this->addTab(new ACTab(this->arbiter, this), "AC"); this->config = Config::get_instance(); for (auto device : QCanBus::instance()->availableDevices("socketcan")) diff --git a/src/app/widgets/climate.cpp b/src/app/widgets/climate.cpp index 0c7fb85c..bcf46dd6 100644 --- a/src/app/widgets/climate.cpp +++ b/src/app/widgets/climate.cpp @@ -57,9 +57,9 @@ void ClimateSnackBar::set_left_temp(QString temp) this->open(3000); } -void ClimateSnackBar::set_right_temp(int temp) +void ClimateSnackBar::set_right_temp(QString temp) { - this->right_temp->setText(QString("%1°").arg(temp)); + this->right_temp->setText(temp); this->open(3000); } @@ -113,7 +113,7 @@ void Climate::left_temp(QString left_temp) this->snack_bar->set_left_temp(this->left_temp_); } -void Climate::right_temp(int right_temp) +void Climate::right_temp(QString right_temp) { this->right_temp_ = right_temp; this->snack_bar->set_right_temp(this->right_temp_); From 0eab2812411a3e1e3848c237c17d5bb588549517 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 1 Aug 2023 18:20:11 +0200 Subject: [PATCH 314/332] test switch aq --- include/app/pages/vehicle.hpp | 3 ++- src/app/pages/vehicle.cpp | 29 ++++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index d2b5b67b..7e11220b 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -196,5 +196,6 @@ class ACTab : public QWidget private: Arbiter &arbiter; - QWidget *aq_widget(); + QWidget *aq_row_widget(); + QWidget *aq_selector_widget(); }; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index bc51df4d..f9c8df88 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -187,11 +187,26 @@ LSTab::LSTab(Arbiter &arbiter, QWidget *parent) ACTab::ACTab(Arbiter &arbiter, QWidget *parent) : QWidget(parent), arbiter(arbiter) { - QHBoxLayout *layout = new QHBoxLayout(this); - layout->addWidget(this->aq_widget(), 1); + QVBoxLayout *layout = new QVBoxLayout(this); + + layout->addWidget(this->aq_row_widget(), 1); + layout->addWidget(Session::Forge::br(), 1); +} + +QWidget *ACTab::aq_row_widget() +{ + QWidget *widget = new QWidget(this); + QHBoxLayout *layout = new QHBoxLayout(widget); + + QLabel *label = new QLabel("Ventilazione automatica", widget); + layout->addWidget(label, 1); + + layout->addWidget(this->aq_selector_widget(), 1); + + return widget; } -QWidget *ACTab::aq_widget() +QWidget *ACTab::aq_selector_widget() { QWidget *widget = new QWidget(this); QVBoxLayout *layout = new QVBoxLayout(widget); @@ -202,6 +217,14 @@ QWidget *ACTab::aq_widget() //connect(selector, &Selector::item_changed, [this](QString item){ this->arbiter.set_brightness_plugin(item); }); layout->addWidget(selector); + + Switch *toggle = new Switch(widget); + toggle->scale(this->arbiter.layout().scale); + /*toggle->setChecked(this->arbiter.core().cursor); + connect(toggle, &Switch::stateChanged, [this](bool state){ + this->arbiter.set_cursor(state); + });*/ + layout->addWidget(toggle, 1, Qt::AlignHCenter); return widget; } From 2e14ad68ba1c4a60ecca665848317c62c60f1d78 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 1 Aug 2023 18:31:38 +0200 Subject: [PATCH 315/332] prova fix ac --- src/app/pages/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index f9c8df88..6cd722e9 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -190,7 +190,7 @@ ACTab::ACTab(Arbiter &arbiter, QWidget *parent) QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(this->aq_row_widget(), 1); - layout->addWidget(Session::Forge::br(), 1); + layout->addWidget(Session::Forge::br(true)); } QWidget *ACTab::aq_row_widget() From 41205325520561fc751eb56b84f4e3dcdec39577 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 1 Aug 2023 18:48:11 +0200 Subject: [PATCH 316/332] prova actab --- src/app/pages/vehicle.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 6cd722e9..5761ee61 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -190,7 +190,7 @@ ACTab::ACTab(Arbiter &arbiter, QWidget *parent) QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(this->aq_row_widget(), 1); - layout->addWidget(Session::Forge::br(true)); + layout->addWidget(Session::Forge::br(), 1); } QWidget *ACTab::aq_row_widget() @@ -216,7 +216,7 @@ QWidget *ACTab::aq_selector_widget() Selector *selector = new Selector(autoblower, "high", this->arbiter.forge().font(14), this->arbiter, widget, "high"); //connect(selector, &Selector::item_changed, [this](QString item){ this->arbiter.set_brightness_plugin(item); }); - layout->addWidget(selector); + layout->addWidget(selector, 1); Switch *toggle = new Switch(widget); toggle->scale(this->arbiter.layout().scale); From 97bcba81c86f2694f12d8a7e0be09fc4dcf820f1 Mon Sep 17 00:00:00 2001 From: Gioele Date: Tue, 1 Aug 2023 19:03:47 +0200 Subject: [PATCH 317/332] aggiunta switch ac --- include/app/pages/vehicle.hpp | 2 ++ src/app/pages/vehicle.cpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/include/app/pages/vehicle.hpp b/include/app/pages/vehicle.hpp index 7e11220b..deda45f6 100644 --- a/include/app/pages/vehicle.hpp +++ b/include/app/pages/vehicle.hpp @@ -198,4 +198,6 @@ class ACTab : public QWidget Arbiter &arbiter; QWidget *aq_row_widget(); QWidget *aq_selector_widget(); + QWidget *ac_row_widget(); + QWidget *ac_switch_widget(); }; diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 5761ee61..89ff1d3c 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -191,6 +191,7 @@ ACTab::ACTab(Arbiter &arbiter, QWidget *parent) layout->addWidget(this->aq_row_widget(), 1); layout->addWidget(Session::Forge::br(), 1); + layout->addWidget(this->ac_row_widget(), 1); } QWidget *ACTab::aq_row_widget() @@ -206,6 +207,19 @@ QWidget *ACTab::aq_row_widget() return widget; } +QWidget *ACTab::ac_row_widget() +{ + QWidget *widget = new QWidget(this); + QHBoxLayout *layout = new QHBoxLayout(widget); + + QLabel *label = new QLabel("Aria Condizionata", widget); + layout->addWidget(label, 1); + + layout->addWidget(this->ac_switch_widget(), 1); + + return widget; +} + QWidget *ACTab::aq_selector_widget() { QWidget *widget = new QWidget(this); @@ -229,6 +243,22 @@ QWidget *ACTab::aq_selector_widget() return widget; } +QWidget *ACTab::ac_switch_widget() +{ + QWidget *widget = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(widget); + + Switch *toggle = new Switch(widget); + toggle->scale(this->arbiter.layout().scale); + /*toggle->setChecked(this->arbiter.core().cursor); + connect(toggle, &Switch::stateChanged, [this](bool state){ + this->arbiter.set_cursor(state); + });*/ + layout->addWidget(toggle, 1, Qt::AlignHCenter); + + return widget; +} + Gauge::Gauge(GaugeConfig cfg, QFont value_font, QFont unit_font, Gauge::Orientation orientation, QWidget *parent) : QWidget(parent) { From 6ef7b9dfa60ebd9091d1218c5d8b6f3647dcd526 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 4 Aug 2023 19:54:08 +0200 Subject: [PATCH 318/332] prova ac e roba rimasta indietro --- include/canbus/socketcanbus.hpp | 2 +- plugins/vehicle/test/test.cpp | 37 +++++++++++++++++++++++++-- plugins/vehicle/test/test.hpp | 1 + src/app/pages/vehicle.cpp | 6 ++--- src/canbus/socketcanbus.cpp | 44 +++++++++++++++++++-------------- 5 files changed, 66 insertions(+), 24 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index e12445df..e5333987 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -19,7 +19,7 @@ class SocketCANBus : public QObject SocketCANBus(QObject *parent = 0, QString canInterface = "can0"); ~SocketCANBus(); static SocketCANBus *get_instance(); - bool writeFrame(QString frame); + bool writeFrame(int ch, QString frame); QTcpSocket socket; private: diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index c79f90e7..9470cb7c 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include "test.hpp" @@ -261,6 +262,38 @@ void Test::readFrame() } } + if (id == "02B0") + { + if(!((canMsg[0] == 0x46) && (canMsg[1] == 0x0C) && (canMsg[2] == 0x00) && (canMsg[3] == 0xC8))){ + bloccato = true; + } + } + + if (id == "0208") + { + if((canMsg[0] == 0x01) && (canMsg[1] == 0x17) && (canMsg[2] == 0x00) && bloccato == false){ + msleep(200); + bus->socket.writeFrame(1, "0208 06081601"); //turn right + msleep(200); + bus->socket.writeFrame(1, "0208 06011700"); //button press + msleep(70); + bus->socket.writeFrame(1, "0208 06001700"); //button release + msleep(200); + bus->socket.writeFrame(1, "0208 060816FF"); //turn left + msleep(30); + bus->socket.writeFrame(1, "0208 060816FF"); //turn left + msleep(200); + bus->socket.writeFrame(1, "0208 060816FF"); //turn left + msleep(30); + bus->socket.writeFrame(1, "0208 060816FF"); //turn left + msleep(200); + bus->socket.writeFrame(1, "0208 06011700"); //button press + msleep(70); + bus->socket.writeFrame(1, "0208 06001700"); //button release + msleep(200); + } + } + // Esempio RX1 0450-460706FF if (id == "0450") @@ -393,11 +426,11 @@ void Test::readFrame() } if(canMsg[4] == 0x25){ if(canMsg[5] == 0x01){ - this->climate->airflow(Airflow::AC); //ac on + //this->climate->airflow(Airflow::AC); ac on this->climate->right_temp("AC ON"); } if(canMsg[5] == 0x03){ - this->climate->airflow(Airflow::OFF); //ac off + //this->climate->airflow(Airflow::OFF); ac off this->climate->right_temp("AC OFF"); } } diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index f37787b6..a37b8079 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -50,6 +50,7 @@ class Test : public QObject, VehiclePlugin double ttBenz = 0; //double codBenz [100] = {52.0, 52.0, 52.0, 52.0, 52.0, 51.2, 50.5, 49.8, 49.1, 48.4, 47.7, 47.0, 46.2, 45.2, 44.8, 44.1, 43.4, 42.7, 42.0, 41.3, 40.7, 40.1, 39.5, 38.8, 38.2, 37.6, 37.0, 36.3, 35.7, 35.1, 34.5, 33.8, 33.2, 32.6, 32.0, 31.3, 30.6, 30.0, 29.3, 28.6, 28.0, 27.3, 26.6, 26.0, 25.3, 24.6, 24.0, 23.3, 22.6, 22.0, 21.3, 20.7, 20.0, 19.4, 18.7, 18.1, 17.5, 16.8, 16.2, 15.5, 14.9, 14.2, 13.6, 13.0, 12.5, 12.1, 11.6, 11.2, 10.8, 10.3, 9.9, 9.5, 9.0, 8.6, 8.1, 7.7, 7.3, 6.8, 6.4, 6.0, 5.7, 5.4, 5.1, 4.8, 4.5, 4.2, 4.0, 3.7, 3.4, 3.1, 2.8, 2.5, 2.2, 2.0, 1.7, 1.4, 1.1, 0.8, 0.5, 0.2}; bool premuto = false; + bool bloccato = false; SocketCANBus *bus = nullptr; signals: diff --git a/src/app/pages/vehicle.cpp b/src/app/pages/vehicle.cpp index 89ff1d3c..4b2244ea 100644 --- a/src/app/pages/vehicle.cpp +++ b/src/app/pages/vehicle.cpp @@ -225,9 +225,9 @@ QWidget *ACTab::aq_selector_widget() QWidget *widget = new QWidget(this); QVBoxLayout *layout = new QVBoxLayout(widget); - QList autoblower = {"low","med","high"}; + QList autoblower = {"bassa","media","alta"}; - Selector *selector = new Selector(autoblower, "high", this->arbiter.forge().font(14), this->arbiter, widget, "high"); + Selector *selector = new Selector(autoblower, "alta", this->arbiter.forge().font(14), this->arbiter, widget, "high"); //connect(selector, &Selector::item_changed, [this](QString item){ this->arbiter.set_brightness_plugin(item); }); layout->addWidget(selector, 1); @@ -325,7 +325,7 @@ QString Gauge::null_value() } VehiclePage::VehiclePage(Arbiter &arbiter, QWidget *parent) - : QTabWidget(parent), Page(arbiter, "Vehicle", "directions_car", true, this) + : QTabWidget(parent), Page(arbiter, "AUTO", "directions_car", true, this) { } diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index 466d30bb..e5c8fb89 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -24,39 +24,46 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare //QString aperturaHS = "CAN USER OPEN CH2 500K\r\n"; //this->socket.write(aperturaHS.toUtf8()); + QString aperturaLS = "CAN USER OPEN CH2 33K3 GMLAN\r\n"; this->socket.write(aperturaLS.toUtf8()); QString mascheraMS = "CAN USER MASK CH1 0FFF\r\n"; this->socket.write(mascheraMS.toUtf8()); - QString mascheraHS = "CAN USER MASK CH2 0FFF\r\n"; - this->socket.write(mascheraHS.toUtf8()); + QString filtroCH1_1 = "CAN USER FILTER CH1 1 0450\r\n"; + this->socket.write(filtroCH1_1.toUtf8()); + + QString filtroCH1_2 = "CAN USER FILTER CH1 2 04EE\r\n"; + this->socket.write(filtroCH1_2.toUtf8()); - QString filtroPulsantiVolante = "CAN USER FILTER CH1 0 0206\r\n"; - this->socket.write(filtroPulsantiVolante.toUtf8()); + QString filtroCH1_3 = "CAN USER FILTER CH1 3 04E8\r\n"; + this->socket.write(filtroCH1_3.toUtf8()); - QString filtroLuminosita = "CAN USER FILTER CH1 1 0450\r\n"; - this->socket.write(filtroLuminosita.toUtf8()); + QString filtroCH1_4 = "CAN USER FILTER CH1 4 0682\r\n"; + this->socket.write(filtroCH1_4.toUtf8()); - QString filtroAutonomia = "CAN USER FILTER CH1 2 04EE\r\n"; - this->socket.write(filtroAutonomia.toUtf8()); + QString filtroCH1_0 = "CAN USER FILTER CH1 0 0206\r\n"; + this->socket.write(filtroCH1_0.toUtf8()); - QString filtroRPMeVel = "CAN USER FILTER CH1 3 04E8\r\n"; - this->socket.write(filtroRPMeVel.toUtf8()); + QString filtroCH1_5 = "CAN USER FILTER CH1 5 06C8\r\n"; + this->socket.write(filtroCH1_5.toUtf8()); - QString filtroTemp = "CAN USER FILTER CH1 4 0682\r\n"; - this->socket.write(filtroTemp.toUtf8()); + QString filtroCH1_6 = "CAN USER FILTER CH1 6 04EC\r\n"; + this->socket.write(filtroCH1_6.toUtf8()); - QString filtroAC = "CAN USER FILTER CH1 5 06C8\r\n"; - this->socket.write(filtroAC.toUtf8()); + QString filtroCH1_7 = "CAN USER FILTER CH1 7 0208\r\n"; + this->socket.write(filtroCH1_7.toUtf8()); - QString filtroTempAntigeloRX1 = "CAN USER FILTER CH1 6 04EC\r\n"; - this->socket.write(filtroTempAntigeloRX1.toUtf8()); + QString filtroCH1_8 = "CAN USER FILTER CH1 8 02B0\r\n"; + this->socket.write(filtroCH1_8.toUtf8()); //QString filtroTempAntigeloRX2 = "CAN USER FILTER CH2 0 0510\r\n"; //this->socket.write(filtroTempAntigeloRX2.toUtf8()); + QString mascheraHS = "CAN USER MASK CH2 0FFF\r\n"; + this->socket.write(mascheraHS.toUtf8()); + QString filtroCH2_0 = "CAN USER FILTER CH2 0 0110\r\n"; this->socket.write(filtroCH2_0.toUtf8()); @@ -91,10 +98,11 @@ SocketCANBus::~SocketCANBus() this->socket.close(); } -bool SocketCANBus::writeFrame(QString frame) +bool SocketCANBus::writeFrame(int ch, QString frame) { - if (this->socket.write(frame.toUtf8()) < 0) + if (this->socket.write(QString("CAN USER TX CH%1 %2").arg(ch).arg(frame).toUtf8()) < 0) return false; + return true; } From ce5a7ea17f8f9a21075174a6aa7786fd71b6f36a Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 4 Aug 2023 20:03:19 +0200 Subject: [PATCH 319/332] fix writeframe --- include/canbus/socketcanbus.hpp | 1 - plugins/vehicle/test/test.cpp | 20 ++++++++++---------- src/canbus/socketcanbus.cpp | 8 -------- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/include/canbus/socketcanbus.hpp b/include/canbus/socketcanbus.hpp index e5333987..f747494a 100644 --- a/include/canbus/socketcanbus.hpp +++ b/include/canbus/socketcanbus.hpp @@ -19,7 +19,6 @@ class SocketCANBus : public QObject SocketCANBus(QObject *parent = 0, QString canInterface = "can0"); ~SocketCANBus(); static SocketCANBus *get_instance(); - bool writeFrame(int ch, QString frame); QTcpSocket socket; private: diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 9470cb7c..8db33e7a 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -273,23 +273,23 @@ void Test::readFrame() { if((canMsg[0] == 0x01) && (canMsg[1] == 0x17) && (canMsg[2] == 0x00) && bloccato == false){ msleep(200); - bus->socket.writeFrame(1, "0208 06081601"); //turn right + bus->socket.write(QString("CAN USER TX CH1 0208 06081601").toUtf8()); //turn right msleep(200); - bus->socket.writeFrame(1, "0208 06011700"); //button press + bus->socket.write(QString("CAN USER TX CH1 0208 06011700").toUtf8()); //button press msleep(70); - bus->socket.writeFrame(1, "0208 06001700"); //button release + bus->socket.write(QString("CAN USER TX CH1 0208 06001700").toUtf8()); //button release msleep(200); - bus->socket.writeFrame(1, "0208 060816FF"); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left msleep(30); - bus->socket.writeFrame(1, "0208 060816FF"); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left msleep(200); - bus->socket.writeFrame(1, "0208 060816FF"); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left msleep(30); - bus->socket.writeFrame(1, "0208 060816FF"); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left msleep(200); - bus->socket.writeFrame(1, "0208 06011700"); //button press + bus->socket.write(QString("CAN USER TX CH1 0208 06011700").toUtf8()); //button press msleep(70); - bus->socket.writeFrame(1, "0208 06001700"); //button release + bus->socket.write(QString("CAN USER TX CH1 0208 06001700").toUtf8()); //button release msleep(200); } } @@ -541,7 +541,7 @@ void Test::readFrame() if (id == "0375") { - double tempBenz = 94 - (canMsg[1]/2); + double tempBenz = 94 - (((int)canMsg[1])/2); //double tempBenz = (((int)(canMsg[1] & 255) | (canMsg[0] << 8)) * (-0.6d)) + 100.0d; //double tempBenz = codBenz[((int)canMsg[1])-80]; diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index e5c8fb89..c20fe4fb 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -98,14 +98,6 @@ SocketCANBus::~SocketCANBus() this->socket.close(); } -bool SocketCANBus::writeFrame(int ch, QString frame) -{ - if (this->socket.write(QString("CAN USER TX CH%1 %2").arg(ch).arg(frame).toUtf8()) < 0) - return false; - - return true; -} - SocketCANBus *SocketCANBus::get_instance() { static SocketCANBus bus(NULL, Config::get_instance()->get_vehicle_interface()); From d60c3fa8958266845a006ce276887c9d4de8c970 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 4 Aug 2023 20:09:15 +0200 Subject: [PATCH 320/332] msleep to usleep --- plugins/vehicle/test/test.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 8db33e7a..933e8cfd 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -272,25 +272,25 @@ void Test::readFrame() if (id == "0208") { if((canMsg[0] == 0x01) && (canMsg[1] == 0x17) && (canMsg[2] == 0x00) && bloccato == false){ - msleep(200); + usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 06081601").toUtf8()); //turn right - msleep(200); + usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 06011700").toUtf8()); //button press - msleep(70); + usleep(70000); bus->socket.write(QString("CAN USER TX CH1 0208 06001700").toUtf8()); //button release - msleep(200); + usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left - msleep(30); + usleep(30000); bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left - msleep(200); + usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left - msleep(30); + usleep(30000); bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left - msleep(200); + usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 06011700").toUtf8()); //button press - msleep(70); + usleep(70000); bus->socket.write(QString("CAN USER TX CH1 0208 06001700").toUtf8()); //button release - msleep(200); + usleep(200000); } } @@ -542,7 +542,7 @@ void Test::readFrame() if (id == "0375") { double tempBenz = 94 - (((int)canMsg[1])/2); - //double tempBenz = (((int)(canMsg[1] & 255) | (canMsg[0] << 8)) * (-0.6d)) + 100.0d; + double tempBenz = (((int)((canMsg[1] & 255) | (canMsg[0] << 8))) * (-0.6)) + 100.0; //double tempBenz = codBenz[((int)canMsg[1])-80]; if (ttBenz != tempBenz) From 0ed54f648fe274335b55a8ff42b87a45ad15d039 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 4 Aug 2023 20:10:24 +0200 Subject: [PATCH 321/332] tolto tempbenz di prova --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 933e8cfd..5266b9e2 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -542,7 +542,7 @@ void Test::readFrame() if (id == "0375") { double tempBenz = 94 - (((int)canMsg[1])/2); - double tempBenz = (((int)((canMsg[1] & 255) | (canMsg[0] << 8))) * (-0.6)) + 100.0; + //double tempBenz = (((int)((canMsg[1] & 255) | (canMsg[0] << 8))) * (-0.6)) + 100.0; //double tempBenz = codBenz[((int)canMsg[1])-80]; if (ttBenz != tempBenz) From db6a216d5f9f85184384f7964d87e7b80edf7502 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 4 Aug 2023 20:15:26 +0200 Subject: [PATCH 322/332] added qtcpsocket flush --- plugins/vehicle/test/test.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 5266b9e2..e2c972e0 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -274,22 +274,31 @@ void Test::readFrame() if((canMsg[0] == 0x01) && (canMsg[1] == 0x17) && (canMsg[2] == 0x00) && bloccato == false){ usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 06081601").toUtf8()); //turn right + bus->socket.flush(); usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 06011700").toUtf8()); //button press + bus->socket.flush(); usleep(70000); bus->socket.write(QString("CAN USER TX CH1 0208 06001700").toUtf8()); //button release + bus->socket.flush(); usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left + bus->socket.flush(); usleep(30000); bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left + bus->socket.flush(); usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left + bus->socket.flush(); usleep(30000); bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left + bus->socket.flush(); usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 06011700").toUtf8()); //button press + bus->socket.flush(); usleep(70000); bus->socket.write(QString("CAN USER TX CH1 0208 06001700").toUtf8()); //button release + bus->socket.flush(); usleep(200000); } } From dae5f13d801d63af9733354e63e89dc392388bb4 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 4 Aug 2023 20:21:12 +0200 Subject: [PATCH 323/332] added \r\n to writesocket --- plugins/vehicle/test/test.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index e2c972e0..0622b386 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -273,31 +273,31 @@ void Test::readFrame() { if((canMsg[0] == 0x01) && (canMsg[1] == 0x17) && (canMsg[2] == 0x00) && bloccato == false){ usleep(200000); - bus->socket.write(QString("CAN USER TX CH1 0208 06081601").toUtf8()); //turn right + bus->socket.write(QString("CAN USER TX CH1 0208 06081601\r\n").toUtf8()); //turn right bus->socket.flush(); usleep(200000); - bus->socket.write(QString("CAN USER TX CH1 0208 06011700").toUtf8()); //button press + bus->socket.write(QString("CAN USER TX CH1 0208 06011700\r\n").toUtf8()); //button press bus->socket.flush(); usleep(70000); - bus->socket.write(QString("CAN USER TX CH1 0208 06001700").toUtf8()); //button release + bus->socket.write(QString("CAN USER TX CH1 0208 06001700\r\n").toUtf8()); //button release bus->socket.flush(); usleep(200000); - bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 060816FF\r\n").toUtf8()); //turn left bus->socket.flush(); usleep(30000); - bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 060816FF\r\n").toUtf8()); //turn left bus->socket.flush(); usleep(200000); - bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 060816FF\r\n").toUtf8()); //turn left bus->socket.flush(); usleep(30000); - bus->socket.write(QString("CAN USER TX CH1 0208 060816FF").toUtf8()); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 060816FF\r\n").toUtf8()); //turn left bus->socket.flush(); usleep(200000); - bus->socket.write(QString("CAN USER TX CH1 0208 06011700").toUtf8()); //button press + bus->socket.write(QString("CAN USER TX CH1 0208 06011700\r\n").toUtf8()); //button press bus->socket.flush(); usleep(70000); - bus->socket.write(QString("CAN USER TX CH1 0208 06001700").toUtf8()); //button release + bus->socket.write(QString("CAN USER TX CH1 0208 06001700\r\n").toUtf8()); //button release bus->socket.flush(); usleep(200000); } From e5b83966a412fd37206fcb7970c9b384b0c3684c Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Fri, 4 Aug 2023 20:56:35 +0200 Subject: [PATCH 324/332] Update test.cpp test rimosso bloccato --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 0622b386..5b8570ee 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -271,7 +271,7 @@ void Test::readFrame() if (id == "0208") { - if((canMsg[0] == 0x01) && (canMsg[1] == 0x17) && (canMsg[2] == 0x00) && bloccato == false){ + if((canMsg[0] == 0x01) && (canMsg[1] == 0x17) && (canMsg[2] == 0x00)){ usleep(200000); bus->socket.write(QString("CAN USER TX CH1 0208 06081601\r\n").toUtf8()); //turn right bus->socket.flush(); From a3aa0a03528457b9344c155a199a87fba2694981 Mon Sep 17 00:00:00 2001 From: Gioele Date: Fri, 4 Aug 2023 21:17:43 +0200 Subject: [PATCH 325/332] clima dovrebbe essere appost --- plugins/vehicle/test/test.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 5b8570ee..e6015952 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -264,40 +264,42 @@ void Test::readFrame() if (id == "02B0") { - if(!((canMsg[0] == 0x46) && (canMsg[1] == 0x0C) && (canMsg[2] == 0x00) && (canMsg[3] == 0xC8))){ + if((canMsg[0] == 0x46) && (canMsg[1] == 0x0C) && (canMsg[2] == 0x00) && (canMsg[3] == 0xC8)){ + bloccato = false; + } else { bloccato = true; } } if (id == "0208") { - if((canMsg[0] == 0x01) && (canMsg[1] == 0x17) && (canMsg[2] == 0x00)){ + if((canMsg[0] == 0x01) && (canMsg[1] == 0x17) && (canMsg[2] == 0x00) && bloccato == false){ usleep(200000); - bus->socket.write(QString("CAN USER TX CH1 0208 06081601\r\n").toUtf8()); //turn right + bus->socket.write(QString("CAN USER TX CH1 0208 081601000000\r\n").toUtf8()); //turn right bus->socket.flush(); usleep(200000); - bus->socket.write(QString("CAN USER TX CH1 0208 06011700\r\n").toUtf8()); //button press + bus->socket.write(QString("CAN USER TX CH1 0208 011700000000\r\n").toUtf8()); //button press bus->socket.flush(); usleep(70000); - bus->socket.write(QString("CAN USER TX CH1 0208 06001700\r\n").toUtf8()); //button release + bus->socket.write(QString("CAN USER TX CH1 0208 001700000000\r\n").toUtf8()); //button release bus->socket.flush(); usleep(200000); - bus->socket.write(QString("CAN USER TX CH1 0208 060816FF\r\n").toUtf8()); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 0816FF000000\r\n").toUtf8()); //turn left bus->socket.flush(); usleep(30000); - bus->socket.write(QString("CAN USER TX CH1 0208 060816FF\r\n").toUtf8()); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 0816FF000000\r\n").toUtf8()); //turn left bus->socket.flush(); usleep(200000); - bus->socket.write(QString("CAN USER TX CH1 0208 060816FF\r\n").toUtf8()); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 0816FF000000\r\n").toUtf8()); //turn left bus->socket.flush(); usleep(30000); - bus->socket.write(QString("CAN USER TX CH1 0208 060816FF\r\n").toUtf8()); //turn left + bus->socket.write(QString("CAN USER TX CH1 0208 0816FF000000\r\n").toUtf8()); //turn left bus->socket.flush(); usleep(200000); - bus->socket.write(QString("CAN USER TX CH1 0208 06011700\r\n").toUtf8()); //button press + bus->socket.write(QString("CAN USER TX CH1 0208 011700000000\r\n").toUtf8()); //button press bus->socket.flush(); usleep(70000); - bus->socket.write(QString("CAN USER TX CH1 0208 06001700\r\n").toUtf8()); //button release + bus->socket.write(QString("CAN USER TX CH1 0208 001700000000\r\n").toUtf8()); //button release bus->socket.flush(); usleep(200000); } From adf04d63f3df81ab74d38cd3a33a63fff65f4854 Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Fri, 4 Aug 2023 21:29:49 +0200 Subject: [PATCH 326/332] Update test.cpp --- plugins/vehicle/test/test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index e6015952..af56577d 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -406,7 +406,7 @@ void Test::readFrame() break; case 0x59: // dir_auto: //DASH_LOG(info) << "AC AUTO \r\n"; - this->climate->right_temp("AUTO"); + this->climate->right_temp("AUTO1"); break; } } @@ -446,7 +446,7 @@ void Test::readFrame() } } if(canMsg[2] == 0xE0){ - this->climate->right_temp("AUTO");//climauto flowauto + this->climate->right_temp("AUTO2");//climauto flowauto } break; From a452aea73ae0031b77a73255bcbf8980effc1bfb Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Fri, 4 Aug 2023 21:33:12 +0200 Subject: [PATCH 327/332] Update test.cpp --- plugins/vehicle/test/test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index af56577d..6a38d005 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -446,7 +446,7 @@ void Test::readFrame() } } if(canMsg[2] == 0xE0){ - this->climate->right_temp("AUTO2");//climauto flowauto + } break; From 5f74b380f16d5b9c5e5150936292ef05c075381c Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 5 Aug 2023 12:37:05 +0200 Subject: [PATCH 328/332] tolto spam ac --- plugins/vehicle/test/test.cpp | 13 ++++++++----- plugins/vehicle/test/test.hpp | 2 ++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/plugins/vehicle/test/test.cpp b/plugins/vehicle/test/test.cpp index 6a38d005..e6a429e4 100644 --- a/plugins/vehicle/test/test.cpp +++ b/plugins/vehicle/test/test.cpp @@ -437,16 +437,19 @@ void Test::readFrame() } if(canMsg[4] == 0x25){ if(canMsg[5] == 0x01){ - //this->climate->airflow(Airflow::AC); ac on - this->climate->right_temp("AC ON"); + ac = true; } if(canMsg[5] == 0x03){ - //this->climate->airflow(Airflow::OFF); ac off - this->climate->right_temp("AC OFF"); + ac = false; + } + + if(acprev!=ac){ + this->climate->right_temp(QString("AC %1").arg(ac?"ON":"OFF")); + acprev=ac; } } if(canMsg[2] == 0xE0){ - + //this->climate->right_temp("AUTO2");climauto flowauto } break; diff --git a/plugins/vehicle/test/test.hpp b/plugins/vehicle/test/test.hpp index a37b8079..96123091 100644 --- a/plugins/vehicle/test/test.hpp +++ b/plugins/vehicle/test/test.hpp @@ -51,6 +51,8 @@ class Test : public QObject, VehiclePlugin //double codBenz [100] = {52.0, 52.0, 52.0, 52.0, 52.0, 51.2, 50.5, 49.8, 49.1, 48.4, 47.7, 47.0, 46.2, 45.2, 44.8, 44.1, 43.4, 42.7, 42.0, 41.3, 40.7, 40.1, 39.5, 38.8, 38.2, 37.6, 37.0, 36.3, 35.7, 35.1, 34.5, 33.8, 33.2, 32.6, 32.0, 31.3, 30.6, 30.0, 29.3, 28.6, 28.0, 27.3, 26.6, 26.0, 25.3, 24.6, 24.0, 23.3, 22.6, 22.0, 21.3, 20.7, 20.0, 19.4, 18.7, 18.1, 17.5, 16.8, 16.2, 15.5, 14.9, 14.2, 13.6, 13.0, 12.5, 12.1, 11.6, 11.2, 10.8, 10.3, 9.9, 9.5, 9.0, 8.6, 8.1, 7.7, 7.3, 6.8, 6.4, 6.0, 5.7, 5.4, 5.1, 4.8, 4.5, 4.2, 4.0, 3.7, 3.4, 3.1, 2.8, 2.5, 2.2, 2.0, 1.7, 1.4, 1.1, 0.8, 0.5, 0.2}; bool premuto = false; bool bloccato = false; + bool ac = false; + bool acprev = false; SocketCANBus *bus = nullptr; signals: From 537401c8cc920b46480dd005369287ba8e45d526 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 5 Aug 2023 16:46:07 +0200 Subject: [PATCH 329/332] fix comandi --- src/canbus/socketcanbus.cpp | 66 +++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index c20fe4fb..df898e9b 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "canbus/socketcanbus.hpp" #include @@ -16,72 +17,133 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare if (this->socket.state() == QAbstractSocket::ConnectedState) { + usleep(200000); + QString allineamento = "CAN USER ALIGN RIGHT\r\n"; this->socket.write(allineamento.toUtf8()); + this->socket.flush(); + usleep(200000); + QString aperturaMS = "CAN USER OPEN CH1 95K2\r\n"; this->socket.write(aperturaMS.toUtf8()); + this->socket.flush(); + usleep(200000); + //QString aperturaHS = "CAN USER OPEN CH2 500K\r\n"; //this->socket.write(aperturaHS.toUtf8()); QString aperturaLS = "CAN USER OPEN CH2 33K3 GMLAN\r\n"; this->socket.write(aperturaLS.toUtf8()); + this->socket.flush(); + usleep(200000); + QString mascheraMS = "CAN USER MASK CH1 0FFF\r\n"; this->socket.write(mascheraMS.toUtf8()); + this->socket.flush(); + usleep(200000); + + QString filtroCH1_0 = "CAN USER FILTER CH1 0 0206\r\n"; + this->socket.write(filtroCH1_0.toUtf8()); + + this->socket.flush(); + usleep(200000); + QString filtroCH1_1 = "CAN USER FILTER CH1 1 0450\r\n"; this->socket.write(filtroCH1_1.toUtf8()); + this->socket.flush(); + usleep(200000); + QString filtroCH1_2 = "CAN USER FILTER CH1 2 04EE\r\n"; this->socket.write(filtroCH1_2.toUtf8()); + this->socket.flush(); + usleep(200000); + QString filtroCH1_3 = "CAN USER FILTER CH1 3 04E8\r\n"; this->socket.write(filtroCH1_3.toUtf8()); + this->socket.flush(); + usleep(200000); + QString filtroCH1_4 = "CAN USER FILTER CH1 4 0682\r\n"; this->socket.write(filtroCH1_4.toUtf8()); - QString filtroCH1_0 = "CAN USER FILTER CH1 0 0206\r\n"; - this->socket.write(filtroCH1_0.toUtf8()); + this->socket.flush(); + usleep(200000); QString filtroCH1_5 = "CAN USER FILTER CH1 5 06C8\r\n"; this->socket.write(filtroCH1_5.toUtf8()); + this->socket.flush(); + usleep(200000); + QString filtroCH1_6 = "CAN USER FILTER CH1 6 04EC\r\n"; this->socket.write(filtroCH1_6.toUtf8()); + this->socket.flush(); + usleep(200000); + QString filtroCH1_7 = "CAN USER FILTER CH1 7 0208\r\n"; this->socket.write(filtroCH1_7.toUtf8()); + this->socket.flush(); + usleep(200000); + QString filtroCH1_8 = "CAN USER FILTER CH1 8 02B0\r\n"; this->socket.write(filtroCH1_8.toUtf8()); + this->socket.flush(); + usleep(200000); + //QString filtroTempAntigeloRX2 = "CAN USER FILTER CH2 0 0510\r\n"; //this->socket.write(filtroTempAntigeloRX2.toUtf8()); QString mascheraHS = "CAN USER MASK CH2 0FFF\r\n"; this->socket.write(mascheraHS.toUtf8()); + this->socket.flush(); + usleep(200000); + QString filtroCH2_0 = "CAN USER FILTER CH2 0 0110\r\n"; this->socket.write(filtroCH2_0.toUtf8()); + + this->socket.flush(); + usleep(200000); QString filtroCH2_1 = "CAN USER FILTER CH2 1 0145\r\n"; this->socket.write(filtroCH2_1.toUtf8()); + + this->socket.flush(); + usleep(200000); QString filtroCH2_2 = "CAN USER FILTER CH2 2 0350\r\n"; this->socket.write(filtroCH2_2.toUtf8()); + + this->socket.flush(); + usleep(200000); QString filtroCH2_3 = "CAN USER FILTER CH2 3 0375\r\n"; this->socket.write(filtroCH2_3.toUtf8()); + + this->socket.flush(); + usleep(200000); QString filtroCH2_4 = "CAN USER FILTER CH2 4 0500\r\n"; this->socket.write(filtroCH2_4.toUtf8()); + + this->socket.flush(); + usleep(200000); QString filtroCH2_5 = "CAN USER FILTER CH2 5 0130\r\n"; this->socket.write(filtroCH2_5.toUtf8()); + this->socket.flush(); + DASH_LOG(info) << "[SocketCANBus] Connesso a Carberry"; } else From 84947091faa44d6172f5543fca2e56dfb6126a10 Mon Sep 17 00:00:00 2001 From: Gioele Date: Sat, 5 Aug 2023 16:51:43 +0200 Subject: [PATCH 330/332] prova --- src/canbus/socketcanbus.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/canbus/socketcanbus.cpp b/src/canbus/socketcanbus.cpp index df898e9b..64112322 100644 --- a/src/canbus/socketcanbus.cpp +++ b/src/canbus/socketcanbus.cpp @@ -34,12 +34,6 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare //QString aperturaHS = "CAN USER OPEN CH2 500K\r\n"; //this->socket.write(aperturaHS.toUtf8()); - QString aperturaLS = "CAN USER OPEN CH2 33K3 GMLAN\r\n"; - this->socket.write(aperturaLS.toUtf8()); - - this->socket.flush(); - usleep(200000); - QString mascheraMS = "CAN USER MASK CH1 0FFF\r\n"; this->socket.write(mascheraMS.toUtf8()); @@ -103,6 +97,12 @@ SocketCANBus::SocketCANBus(QObject *parent, QString canInterface) : QObject(pare //QString filtroTempAntigeloRX2 = "CAN USER FILTER CH2 0 0510\r\n"; //this->socket.write(filtroTempAntigeloRX2.toUtf8()); + QString aperturaLS = "CAN USER OPEN CH2 33K3 GMLAN\r\n"; + this->socket.write(aperturaLS.toUtf8()); + + this->socket.flush(); + usleep(200000); + QString mascheraHS = "CAN USER MASK CH2 0FFF\r\n"; this->socket.write(mascheraHS.toUtf8()); From a6e59281687ae500c2c9db905fa35776f4a357eb Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Fri, 15 Sep 2023 16:01:32 +0200 Subject: [PATCH 331/332] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ef93a0c..dabe4df0 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,4 @@ Main added features of astraDash include: * Read CanBus frames from localhost * Camera size fix and brightness control * Fix clima bar -* Read SWC, Clima, Temps, Speed. \ No newline at end of file +* Read SWC, Clima, Temps, Speed, oil level, fuel level, and more. \ No newline at end of file From 45177f83be9f3e5b38d12a677321f11a19b9743f Mon Sep 17 00:00:00 2001 From: Gioee <48024736+Gioee@users.noreply.github.com> Date: Fri, 15 Sep 2023 17:32:29 +0200 Subject: [PATCH 332/332] Update README.md --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index dabe4df0..8f629f09 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,16 @@ Main added features of astraDash include: * Read CanBus frames from localhost * Camera size fix and brightness control * Fix clima bar -* Read SWC, Clima, Temps, Speed, oil level, fuel level, and more. \ No newline at end of file +* Read SWC, Clima, Temps, Speed, oil level, fuel level, and more. + + + +![VirtualBox_Raspberry_15_09_2023_17_28_48](https://github.com/Gioee/astraDash/assets/48024736/cc016721-bed5-4a62-a9d0-ec41741e3f75) + +![VirtualBox_Raspberry_15_09_2023_17_29_05](https://github.com/Gioee/astraDash/assets/48024736/859c11ee-af64-4587-9a68-9535dddefcbb) + +![VirtualBox_Raspberry_15_09_2023_17_29_18](https://github.com/Gioee/astraDash/assets/48024736/0e7b7945-c339-4613-9159-b08777a23825) + +![VirtualBox_Raspberry_15_09_2023_17_29_27](https://github.com/Gioee/astraDash/assets/48024736/d01e0933-ddb3-4da1-bf81-2d1f71bbdc3f) + +![VirtualBox_Raspberry_15_09_2023_17_29_36](https://github.com/Gioee/astraDash/assets/48024736/ab18e7df-929a-46ed-b63c-08c1ce8a1979)