From a3d5c4ef6f728d3357ec34e32cff23d9f722aa53 Mon Sep 17 00:00:00 2001 From: Marcel Peterkau Date: Mon, 10 Jan 2022 23:17:07 +0100 Subject: [PATCH] fixed correct Calculation of Lube-Distance --- Software/ChainLube/src/lubeapp.cpp | 4 ++-- Software/ChainLube/src/lubeapp.h | 2 +- Software/ChainLube/src/main.cpp | 29 +++++++++++++++++++---------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/Software/ChainLube/src/lubeapp.cpp b/Software/ChainLube/src/lubeapp.cpp index 8091f98..94b10b9 100644 --- a/Software/ChainLube/src/lubeapp.cpp +++ b/Software/ChainLube/src/lubeapp.cpp @@ -21,7 +21,7 @@ void RunLubeApp(volatile uint32_t *wheelPulseCounter) break; case sysStat_Normal: - if (TravelDistance_highRes > LubeConfig.DistancePerLube_Default) + if (TravelDistance_highRes / 1000 > LubeConfig.DistancePerLube_Default) { LubePulse(); TravelDistance_highRes = 0; @@ -29,7 +29,7 @@ void RunLubeApp(volatile uint32_t *wheelPulseCounter) break; case sysStat_Rain: - if (TravelDistance_highRes > LubeConfig.DistancePerLube_Rain) + if (TravelDistance_highRes / 1000 > LubeConfig.DistancePerLube_Rain) { LubePulse(); TravelDistance_highRes = 0; diff --git a/Software/ChainLube/src/lubeapp.h b/Software/ChainLube/src/lubeapp.h index 223e42f..f30c9eb 100644 --- a/Software/ChainLube/src/lubeapp.h +++ b/Software/ChainLube/src/lubeapp.h @@ -6,7 +6,7 @@ #include "common.h" #include "globals.h" -#define LUBE_PULSE_LENGHT_MS 500 +#define LUBE_PULSE_LENGHT_MS 250 #define LUBE_PULSE_PAUSE_MS 250 void RunLubeApp(volatile uint32_t * wheelPulseCounter); diff --git a/Software/ChainLube/src/main.cpp b/Software/ChainLube/src/main.cpp index ff02934..cedbf2b 100644 --- a/Software/ChainLube/src/main.cpp +++ b/Software/ChainLube/src/main.cpp @@ -256,12 +256,10 @@ void LED_Process(tSystem_Status newSysStatus) case sysStat_Normal: timestamp = millis() + 1500; LED_Status = LED_Confirm_Normal; - FastLED.setBrightness(64); break; case sysStat_Rain: timestamp = millis() + 1500; LED_Status = LED_Confirm_Rain; - FastLED.setBrightness(64); break; case sysStat_Purge: LED_Status = LED_Purge; @@ -278,29 +276,38 @@ void LED_Process(tSystem_Status newSysStatus) switch (LED_Status) { case LED_Startup: + FastLED.setBrightness(255); timer = timer % 2000; color = timer > 500 ? 0 : (uint8_t)(timer / 2); - leds[0] = CRGB(color, color, 0); + leds[0] = CRGB(color, color, color); break; case LED_Confirm_Normal: + FastLED.setBrightness(255); + leds[0] = timer % 500 > 250 ? CRGB(0, 255, 0) : CRGB(0, 4, 0); if (timestamp < timer) + { LED_Status = LED_Normal; - leds[0] = timer % 500 > 250 ? CRGB::Green : CRGB::Black; + FastLED.setBrightness(64); + } break; case LED_Normal: - leds[0] = timer % 2000 > 1950 ? CRGB::Green : CRGB::Black; + leds[0] = timer % 2000 > 1950 ? CRGB(0, 255, 0) : CRGB(0, 4, 0); break; case LED_Confirm_Rain: + FastLED.setBrightness(255); + leds[0] = timer % 500 > 250 ? CRGB(0, 0, 255) : CRGB(0, 0, 4); if (timestamp < timer) + { LED_Status = LED_Rain; - leds[0] = timer % 500 > 250 ? CRGB::Blue : CRGB::Black; + FastLED.setBrightness(64); + } break; case LED_Rain: - leds[0] = timer % 2000 > 1950 ? CRGB::Blue : CRGB::Black; + leds[0] = timer % 2000 > 1950 ? CRGB(0, 0, 255) : CRGB(0, 0, 4); break; case LED_Purge: @@ -326,8 +333,10 @@ void LED_Process(tSystem_Status newSysStatus) void DisplayProcess() { u8x8.setCursor(0, 3); - u8x8.printf("Dist.: %4d m\n", TravelDistance_highRes / 1000); - u8x8.printf("Purge: %4d\n", globals.purgePulses); - u8x8.printf("Tank: %4d ml\n", LubeConfig.tankRemain_µl / 1000); + uint32_t DistRemain = globals.systemStatus == sysStat_Normal ? LubeConfig.DistancePerLube_Default : LubeConfig.DistancePerLube_Rain; + DistRemain -= TravelDistance_highRes / 1000; + u8x8.printf("next Lube: %4dm\n", DistRemain); + u8x8.printf("Tank: %8dml\n", LubeConfig.tankRemain_µl / 1000); + u8x8.printf("Purges: %8d\n", globals.purgePulses); u8x8.refreshDisplay(); } \ No newline at end of file