diff --git a/Software/ChainLube/src/globals.h b/Software/ChainLube/src/globals.h index 8934acb..ec9a412 100644 --- a/Software/ChainLube/src/globals.h +++ b/Software/ChainLube/src/globals.h @@ -25,9 +25,9 @@ typedef enum eEERequest typedef struct Globals_s { tSystem_Status systemStatus = sysStat_Startup; - uint8_t purgePulses= 0; tSystem_Status resumeStatus = sysStat_Startup; char systemStatustxt[16] = ""; + uint8_t purgePulses = 0; eEERequest requestEEAction = EE_IDLE; } Globals_t; diff --git a/Software/ChainLube/src/lubeapp.cpp b/Software/ChainLube/src/lubeapp.cpp index 16bab6d..fe935bb 100644 --- a/Software/ChainLube/src/lubeapp.cpp +++ b/Software/ChainLube/src/lubeapp.cpp @@ -2,13 +2,11 @@ uint32_t lubePulseTimestamp = 0; -void RunLubeApp(volatile uint32_t *wheelPulseCounter) +void RunLubeApp(uint32_t add_milimeters) { - // Calculate traveled Distance in mm - TravelDistance_highRes += (*wheelPulseCounter * (LubeConfig.DistancePerRevolution_mm / LubeConfig.PulsePerRevolution)); - *wheelPulseCounter = 0; + // Add traveled Distance in mm + TravelDistance_highRes += add_milimeters; - // check if we have to Lube! switch (globals.systemStatus) { case sysStat_Startup: diff --git a/Software/ChainLube/src/lubeapp.h b/Software/ChainLube/src/lubeapp.h index 76fb7e4..70c9b2f 100644 --- a/Software/ChainLube/src/lubeapp.h +++ b/Software/ChainLube/src/lubeapp.h @@ -11,7 +11,7 @@ #define LUBE_PULSE_PAUSE_MS 100 #define STARTUP_DELAY 5000 -void RunLubeApp(volatile uint32_t * wheelPulseCounter); +void RunLubeApp(uint32_t add_milimeters); void LubePulse(); #endif \ No newline at end of file diff --git a/Software/ChainLube/src/main.cpp b/Software/ChainLube/src/main.cpp index 23d9454..a85adb9 100644 --- a/Software/ChainLube/src/main.cpp +++ b/Software/ChainLube/src/main.cpp @@ -67,9 +67,7 @@ void Display_Process(); void Button_Process(); void toggleWiFiAP(boolean shutdown = false); void SystemShutdown(); -#if PCB_REVISION >= 13 -void Init_CAN(); -#endif +uint32_t Process_Impulse_WheelSpeed(); #ifdef WIFI_CLIENT void wifiMaintainConnectionTicker_callback(); @@ -179,7 +177,18 @@ void setup() void loop() { - RunLubeApp(&wheel_pulse); + uint32_t wheelDistance = 0; + + switch (LubeConfig.SpeedSource) + { + case SOURCE_IMPULSE: + wheelDistance = Process_Impulse_WheelSpeed(); + break; + case SOURCE_TIME: + break; + } + + RunLubeApp(wheelDistance); UpdateWebUITicker.update(); Display_Process(); @@ -652,24 +661,12 @@ void SystemShutdown() ESP.restart(); } -#if PCB_REVISION >= 13 -void Init_CAN() +uint32_t Process_Impulse_WheelSpeed() { - // Initialize MCP2515 running at 16MHz with a baudrate of 500kb/s and the masks and filters disabled. - if (CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_16MHZ) == CAN_OK) - Serial.println("MCP2515 Initialized Successfully!"); - else - Serial.println("Error Initializing MCP2515..."); + uint32_t add_milimeters; + // Calculate traveled Distance in mm + add_milimeters = (wheel_pulse * (LubeConfig.DistancePerRevolution_mm / LubeConfig.PulsePerRevolution)); + wheel_pulse = 0; - CAN0.setMode(MCP_NORMAL); // Change to normal mode to allow messages to be transmitted -} - -void Recieve_CAN() -{ - long unsigned int rxId; - unsigned char len = 0; - unsigned char rxBuf[8]; - - CAN0.readMsgBuf(&rxId, &len, rxBuf); // Read data: len = data length, buf = data byte(s) -} -#endif \ No newline at end of file + return add_milimeters; +} \ No newline at end of file