Skip to content

Commit

Permalink
Don't send display status when the ignition is off
Browse files Browse the repository at this point in the history
  • Loading branch information
morcibacsi committed Feb 10, 2021
1 parent c8e2be5 commit fd5887d
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 23 deletions.
2 changes: 1 addition & 1 deletion src/Van/VanWriterContainer.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
52 changes: 30 additions & 22 deletions src/Van/Writers/VanDisplayStatus.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
}

Expand All @@ -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;
}
}
}

Expand Down

0 comments on commit fd5887d

Please sign in to comment.