From a052888a3845ade3262d89d4ec3c79b5e215bb79 Mon Sep 17 00:00:00 2001 From: Hector van der Aa Date: Fri, 3 Apr 2026 16:39:41 +0200 Subject: [PATCH] Updated driver display to have lap count --- src/data/general_store.cpp | 5 +++++ src/data/general_store.h | 8 ++++++-- src/modules/lap_counter/lap_counter.cpp | 2 ++ src/modules/lcd/lcd.cpp | 24 ++++++------------------ 4 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/data/general_store.cpp b/src/data/general_store.cpp index 1c5d60a..11e4f30 100644 --- a/src/data/general_store.cpp +++ b/src/data/general_store.cpp @@ -7,6 +7,7 @@ volatile float vbat_global = 0; volatile float teng_global = 0; volatile int gps_trigger_global = 0; volatile uint32_t last_lap_time_global = 0; +volatile uint16_t lap_count_global = 0; void vbatGlobalRead(float &out) { out = vbat_global; } @@ -23,3 +24,7 @@ void gpsTriggerGlobalWrite(const int &in) { gps_trigger_global = in; } void lastLapTimeGlobalRead(uint32_t &out) { out = last_lap_time_global; } void lastLapTimeGlobalWrite(const uint32_t &in) { last_lap_time_global = in; } + +void lapCountGlobalRead(uint16_t &out) { out = lap_count_global; } + +void lapCountGlobalWrite(const uint16_t &in) { lap_count_global = in; } diff --git a/src/data/general_store.h b/src/data/general_store.h index 8233928..803c7a8 100644 --- a/src/data/general_store.h +++ b/src/data/general_store.h @@ -8,6 +8,7 @@ extern volatile float vbat_global; extern volatile float teng_global; extern volatile int gps_trigger_global; extern volatile uint32_t last_lap_time_global; +extern volatile uint16_t lap_count_global; void vbatGlobalRead(float& out); void vbatGlobalWrite(const float& in); @@ -18,5 +19,8 @@ void tengGlobalWrite(const float& in); void gpsTriggerGlobalRead(int& out); void gpsTriggerGlobalWrite(const int& in); -void lastLapTimeGlobalRead(uint32_t& in); -void lastLapTimeGlobalWrite(const uint32_t& out); +void lastLapTimeGlobalRead(uint32_t& out); +void lastLapTimeGlobalWrite(const uint32_t& in); + +void lapCountGlobalRead(uint16_t& out); +void lapCountGlobalWrite(const uint16_t& in); diff --git a/src/modules/lap_counter/lap_counter.cpp b/src/modules/lap_counter/lap_counter.cpp index f418f84..e0b8b56 100644 --- a/src/modules/lap_counter/lap_counter.cpp +++ b/src/modules/lap_counter/lap_counter.cpp @@ -19,6 +19,7 @@ LapCounter::~LapCounter() {} int LapCounter::init() { counting_ = false; count_ = false; + return 0; } int LapCounter::loop() { @@ -54,6 +55,7 @@ int LapCounter::loop() { lap_times_[lap_times_idx_] = lap_time; count_++; + lapCountGlobalWrite(count_); last_trigger_time_ = time_cs; diff --git a/src/modules/lcd/lcd.cpp b/src/modules/lcd/lcd.cpp index c2c6cc8..a351631 100644 --- a/src/modules/lcd/lcd.cpp +++ b/src/modules/lcd/lcd.cpp @@ -163,6 +163,9 @@ int Lcd::renderDriverPrimary() { int line_trigger; gpsTriggerGlobalRead(line_trigger); + + uint16_t num_laps; + lapCountGlobalRead(num_laps); display_->setCursor(0, 0); this->print("GPS:"); @@ -173,24 +176,9 @@ int Lcd::renderDriverPrimary() { } display_->setCursor(7, 0); - this->print("TRIG:"); - switch (line_trigger) { - case 0: - this->print("I"); - break; - - case 1: - this->print("A"); - break; - - case 2: - this->print("T"); - break; - - default: - this->print("NULL"); - break; - } + this->print("LAPS:"); + if (num_laps < 10) this->print('0'); + this->print(num_laps, 10); display_->setCursor(0, 2); this->print("SPD:");