From 106fdbb4dd082ee584e4a58626a8cb9b88028d43 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Tue, 20 May 2025 23:15:26 +0100 Subject: [PATCH] Added the G29 base mount for the display and the tacho BAR --- G29Mount/.gitignore | 2 + G29Mount/g29Mount.FCStd | Bin 0 -> 114525 bytes lib/cursesAtHome/src/UIBar.cpp | 103 ++++++++++++++++++++++++++++++ lib/cursesAtHome/src/UIBar.h | 20 ++++++ lib/cursesAtHome/src/UIString.cpp | 3 +- src/main.cpp | 22 ++++++- src/ui.cpp | 5 +- src/ui.h | 2 + 8 files changed, 153 insertions(+), 4 deletions(-) create mode 100644 G29Mount/.gitignore create mode 100644 G29Mount/g29Mount.FCStd create mode 100644 lib/cursesAtHome/src/UIBar.cpp create mode 100644 lib/cursesAtHome/src/UIBar.h diff --git a/G29Mount/.gitignore b/G29Mount/.gitignore new file mode 100644 index 0000000..2b6c5bc --- /dev/null +++ b/G29Mount/.gitignore @@ -0,0 +1,2 @@ +*.stl +*.FCStd1 diff --git a/G29Mount/g29Mount.FCStd b/G29Mount/g29Mount.FCStd new file mode 100644 index 0000000000000000000000000000000000000000..20a5064ff246b20038951336fae85d2b20db5548 GIT binary patch literal 114525 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 z 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 v{rw!;5pZlastUpdate) <= this->refreshRate) { + return; + } + + // Conver the string to an integer + uint32_t newVal = atoi(v); + + if (this->value == newVal) { + // If the value hasn't changed we do not need to re-render + return; + } + + this->DrawBar(&this->value, &newVal); + this->value = newVal; +} + +void UIBar::DrawBar(uint32_t *oldValue, uint32_t *newValue) { + // We can help identifying cur RPM visually by using different + // colors on the bar, for example, at a given distance of the ideal shift + // we can change the color gradually + + // If the new value is larger than the old one + // we just paint a new rectangle + // If the new value is smaller than the old one + // we have to delete a chunk of the old rectangle + int16_t startX = 0; + int16_t len = 0; + uint16_t colour = WHITE; + + if (*newValue > *oldValue) { // Increment the bar + int32_t newV = + (*newValue * (uint32_t)(this->dims.width - 4)) / (this->range * 1000); + int32_t oldV = + (this->value * (uint32_t)(this->dims.width - 4)) / (this->range * 1000); + + startX = oldV; + len = newV - oldV; + + } else { // Decrement the bar + int32_t newV = + (*newValue * (uint32_t)(this->dims.width - 4)) / (this->range * 1000); + int32_t oldV = + (this->value * (uint32_t)(this->dims.width - 4)) / (this->range * 1000); + + startX = newV; + len = oldV - newV; + colour = BLACK; + } + this->display->fillRect(this->dims.x + 2 + startX, this->dims.y + 2, len, + this->dims.height - 4, colour); + + this->value = *newValue; +} + +void UIBar::renderBlank() { + this->display->setCursor(this->dims.x, this->dims.y); + this->display->print("!RANGE"); +} + +void UIBar::Box() { + // If the range was not set, we cannot draw our ruler + if (this->range <= 0) { + this->renderBlank(); + return; + } + + // Bounding box for the bar + this->display->drawRect(this->dims.x, this->dims.y, this->dims.width, + this->dims.height, RED); + + // Now we can draw the scale (this should be easy to modify if needed) + // dividirs will be the range of the tach - 8 = 8000rpm + + // Calculate step size as a float for accurate positioning + float step = (float)this->dims.width / this->range; + for (int k = 0; k <= this->range; k++) { + uint16_t x = round(k * step) + this->dims.x; + + // To ensure it doesn't go beyond the bounding box + if (x >= this->dims.x + this->dims.width) { + x = this->dims.x + this->dims.width - 1; + } + + this->display->setTextColor(RED); + this->display->drawFastVLine(x, this->dims.y + this->dims.height, 7, RED); + this->display->setCursor(x, this->dims.y + this->dims.height + 7 + 2); + this->display->setTextColor(WHITE); + + char legend[5]; + sprintf(legend, "%d", k); + this->display->setTextSize(this->decor->textSize); + this->display->print(legend); + } +} diff --git a/lib/cursesAtHome/src/UIBar.h b/lib/cursesAtHome/src/UIBar.h new file mode 100644 index 0000000..cc17014 --- /dev/null +++ b/lib/cursesAtHome/src/UIBar.h @@ -0,0 +1,20 @@ +#ifndef _UI_BAR +#define _UI_BAR + +#include "UIComponent.h" + +struct UIBar : UIElement { + // This might be the only when where its more efficient to have the data + // as integers instead + uint32_t value = 0; // current tach value + uint8_t range = 0; // define the tach range, ie: 8 for 8000rpm + + UIBar(Arduino_GFX *d, UIDimensions dims, UIDecorations *decor, char *title); + + void Update(char *val); + void DrawBar(uint32_t *oldValue, uint32_t *newValue); + void renderBlank(); + void Box(); +}; + +#endif diff --git a/lib/cursesAtHome/src/UIString.cpp b/lib/cursesAtHome/src/UIString.cpp index 66c0198..e8f73e4 100644 --- a/lib/cursesAtHome/src/UIString.cpp +++ b/lib/cursesAtHome/src/UIString.cpp @@ -43,7 +43,6 @@ void UIString::Update(const char *v) { sprintf(oldVal, "%s", this->value); // Figure out the x0 and y0 for the text - replaceString(oldVal, newVal); // <- It crashes here somewhere - // + replaceString(oldVal, newVal); strncpy(this->value, v, this->bufferSize); } diff --git a/src/main.cpp b/src/main.cpp index c9ff651..48066cb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -47,6 +47,7 @@ Arduino_GFX *gfx = new Arduino_RGB_Display(TFT_HOR_RES, TFT_VER_RES, panel, 16); // UIelements DashUI *ui = new DashUI(); +UIDecorations *rpmBarDecor = new UIDecorations(); UIDecorations *rpmTextDecor = new UIDecorations(); UIDecorations *speedTextDecor = new UIDecorations(); UIDecorations *gearTextDecor = new UIDecorations(); @@ -59,6 +60,7 @@ UIDecorations *fuelConsumptionDecor = new UIDecorations(); UIDecorations *brakeBiasDecor = new UIDecorations(); UIDecorations *relativeDecor = new UIDecorations(); +UIBar rpmBar(gfx, UIDimensions(0, 0, 0, 0), rpmBarDecor, (char *)"Tach"); UIString rpmText(gfx, UIDimensions(0, 0, 0, 0), rpmTextDecor, (char *)"RPM"); UIString speedText(gfx, UIDimensions(0, 0, 0, 0), speedTextDecor, (char *)"Speed"); @@ -108,12 +110,27 @@ void setup() { relative->drawBox(); ui->relative = relative; + // Setup the rpmBar box + rpmBarDecor->textSize = 3; + rpmBar.dims.height = 50; + rpmBar.dims.width = 350; + rpmBar.horizontalCenter(); + rpmBar.range = 8; + rpmBar.refreshRate = 50; + ui->barTacho = &rpmBar; + ui->barTacho->Box(); + ui->barTacho->Update((char*)""); + // Setup the rpmText box rpmTextDecor->textSize = 7; rpmText.dims.height = calculateHeight(rpmTextDecor->titleSize, rpmTextDecor->textSize, 1); rpmText.dims.width = calculateWidth(rpmTextDecor->textSize, 5); rpmText.horizontalCenter(); + rpmText.placeBelow(&rpmBar); + rpmText.dims.y += 40; // We gotta fix how the bar declares its height instead + // of doing this here + rpmText.refreshRate = 100; ui->digiTacho = &rpmText; ui->digiTacho->drawBox(); ui->digiTacho->Update("-----"); @@ -123,7 +140,10 @@ void setup() { speedText.dims.height = calculateHeight(speedTextDecor->titleSize, speedTextDecor->textSize, 1); speedText.dims.width = calculateWidth(speedTextDecor->textSize, 4); + speedText.placeBelow(&rpmBar); speedText.placeRight(&rpmText); + speedText.dims.y += 40; // We gotta fix how the bar declares its height + // instead of doing this here ui->digiSpeedo = &speedText; ui->digiSpeedo->drawBox(); ui->digiSpeedo->Update("---"); @@ -133,8 +153,8 @@ void setup() { gearText.dims.height = calculateHeight(gearTextDecor->titleSize, gearTextDecor->textSize, 1); gearText.dims.width = calculateWidth(gearTextDecor->textSize, 2); - gearText.horizontalCenter(); gearText.dims.y = rpmText.dims.height + 5; + gearText.placeBelow(&rpmText); ui->digiGear = &gearText; ui->digiGear->drawBox(); ui->digiGear->Update("-"); diff --git a/src/ui.cpp b/src/ui.cpp index 810a9a4..6ab3abf 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -1,11 +1,14 @@ #include "ui.h" +#include "HardwareSerial.h" #include "data.h" +#include DashUI::DashUI() {} void DashUI::Update(DataPacket *p) { - this->digiSpeedo->Update(p->speed); + this->barTacho->Update(p->rpm); this->digiTacho->Update(p->rpm); + this->digiSpeedo->Update(p->speed); this->digiGear->Update(p->gear); this->lapDelta->Update(p->DeltaToBestLap); this->bestLap->Update(p->bestLapTime); diff --git a/src/ui.h b/src/ui.h index 5985e27..ba984e8 100644 --- a/src/ui.h +++ b/src/ui.h @@ -4,9 +4,11 @@ #include "Arduino_GFX.h" #include "UIString.h" #include "UITable.h" +#include "UIBar.h" #include "data.h" struct DashUI { + UIBar *barTacho; UIString *digiTacho; UIString *digiSpeedo; UIString *digiGear;