From fd5887d933cdc34b3ed86d9fdeb0d129fc36b47b Mon Sep 17 00:00:00 2001 From: "peter.pinter" Date: Wed, 10 Feb 2021 18:53:10 +0100 Subject: [PATCH] Don't send display status when the ignition is off --- src/Van/VanWriterContainer.h | 2 +- src/Van/Writers/VanDisplayStatus.h | 52 +++++++++++++++++------------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/Van/VanWriterContainer.h b/src/Van/VanWriterContainer.h index f9f08b4..7e2d583 100644 --- a/src/Van/VanWriterContainer.h +++ b/src/Van/VanWriterContainer.h @@ -55,7 +55,7 @@ class VanWriterContainer { { tripComputerQuery->Stop(); - displayStatus->SetData(ignitionData.TripButtonPressed, currentTime); + displayStatus->SetData(ignitionData.Ignition, ignitionData.TripButtonPressed, currentTime); displayStatus->Process(currentTime); _sendTripDataQuery = 1; } diff --git a/src/Van/Writers/VanDisplayStatus.h b/src/Van/Writers/VanDisplayStatus.h index a7ce85e..3a06449 100644 --- a/src/Van/Writers/VanDisplayStatus.h +++ b/src/Van/Writers/VanDisplayStatus.h @@ -17,20 +17,24 @@ class VanDisplayStatus : public VanMessageWriterBase uint8_t _resetTrip = 0; uint8_t _resetSent = 0; unsigned long _tripButtonPressedTime = 0; + uint8_t _ignition = 0; VanDisplayStatusPacketSender* displayStatusSender; virtual void InternalProcess() override { - if (_resetTrip == 1 && _resetSent == 0) + if (_ignition) { - displayStatusSender->SendTripReset(SEND_STATUS_CHANNEL); - _resetTrip = 0; - _resetSent = 1; - } - else - { - displayStatusSender->SendReady(SEND_STATUS_CHANNEL); + if (_resetTrip == 1 && _resetSent == 0) + { + displayStatusSender->SendTripReset(SEND_STATUS_CHANNEL); + _resetTrip = 0; + _resetSent = 1; + } + else + { + displayStatusSender->SendReady(SEND_STATUS_CHANNEL); + } } } @@ -41,22 +45,26 @@ class VanDisplayStatus : public VanMessageWriterBase displayStatusSender->SendReady(SEND_STATUS_CHANNEL); } - void SetData(uint8_t tripButton, unsigned long currentTime) + void SetData(uint8_t ignition, uint8_t tripButton, unsigned long currentTime) { - if (tripButton == 1 && _tripButtonState == 0) - { - _tripButtonState = 1; - _tripButtonPressedTime = currentTime; - } - if (tripButton == 0 && _tripButtonState == 1) - { - _tripButtonState = 0; - _resetSent = 0; - _resetTrip = 0; - } - if (tripButton == 1 && _tripButtonState == 1 && currentTime - _tripButtonPressedTime > 2000) + _ignition = ignition; + if (_ignition) { - _resetTrip = 1; + if (tripButton == 1 && _tripButtonState == 0) + { + _tripButtonState = 1; + _tripButtonPressedTime = currentTime; + } + if (tripButton == 0 && _tripButtonState == 1) + { + _tripButtonState = 0; + _resetSent = 0; + _resetTrip = 0; + } + if (tripButton == 1 && _tripButtonState == 1 && currentTime - _tripButtonPressedTime > 2000) + { + _resetTrip = 1; + } } }