diff --git a/.idea/misc.xml b/.idea/misc.xml index 79b3c94..e479d63 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,8 @@ + + + \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index ee96eaf..85b42f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ #THIS FILE IS AUTO GENERATED FROM THE TEMPLATE! DO NOT CHANGE! set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_VERSION 1) -cmake_minimum_required(VERSION 3.30) +cmake_minimum_required(VERSION 3.25.2) # specify cross-compilers and tools set(CMAKE_C_COMPILER arm-none-eabi-gcc) diff --git a/Inc/LightsDriver.h b/Inc/LightsDriver.h index 4ac7448..96d7f22 100644 --- a/Inc/LightsDriver.h +++ b/Inc/LightsDriver.h @@ -15,6 +15,8 @@ flag_status_t getRightTurnStatus(); flag_status_t getHazardsStatus(); flag_status_t getHeadlightsStatus(); flag_status_t getBrakeLightsStatus(); +flag_status_t getHighBeamsStatus(); +flag_status_t getLowBeamsStatus(); //Setters void setLightsStatus(uint32_t lights); @@ -25,6 +27,8 @@ void setLeftTurn(flag_status_t enabled); void setRightTurn(flag_status_t enabled); void setHazards(flag_status_t enabled); void setHeadlights(flag_status_t enabled); +void setHighBeams(flag_status_t enabled); +void setLowBeams(flag_status_t enabled); //Functions for brake lights void setRunningLights(); diff --git a/Src/CANCallbacks.c b/Src/CANCallbacks.c index 1fcc03c..1acedbe 100644 --- a/Src/CANCallbacks.c +++ b/Src/CANCallbacks.c @@ -5,6 +5,7 @@ #include "LightsDriver.h" void LightsDataCallback(iCommsMessage_t *msg){ + DebugPrint("Lights CAN Message Received\n"); uint32_t message = 0; message |= (uint32_t) msg->data[0] << 24; message |= (uint32_t) msg->data[1] << 16; @@ -23,9 +24,23 @@ void LightsDataCallback(iCommsMessage_t *msg){ if (getHazardsStatus()) { DebugPrint("Hazards CAN\n"); } + + if (getBrakeLightsStatus()) { + DebugPrint("Brake Lights CAN \n"); + } + + if (getHighBeamsStatus()) { + DebugPrint("High Beams CAN \n"); + } + + if (getLowBeamsStatus()) { + DebugPrint("Low Beams CAN \n"); + } + } void EventDataCallback(iCommsMessage_t *msg) { + DebugPrint("Event CAN Message Received\n"); // if (msg->dataLength == CANMessageLookUpTable[EVENT_DATA_ID].numberOfBytes) { // EventCode code = msg->data[1]; // flag_status_t status = msg->data[0]; diff --git a/Src/LightDriver.c b/Src/LightDriver.c index 20cc215..3f15456 100644 --- a/Src/LightDriver.c +++ b/Src/LightDriver.c @@ -37,9 +37,13 @@ flag_status_t getLeftTurnStatus(){ flag_status_t getRightTurnStatus(){ return lights_status.right_turn_enabled; } -flag_status_t getHeadlightsStatus(){ + +flag_status_t getHighBeamsStatus() { return lights_status.headlights_enabled; } +flag_status_t getLowBeamsStatus() { + return lights_status.low_beams_enabled; +} flag_status_t getHazardsStatus(){ return lights_status.hazards_enabled; } @@ -50,6 +54,9 @@ flag_status_t getBrakeLightsStatus(){ //Abstract functions over HAL void setLeftTurn(flag_status_t enabled) { +#ifdef REAR_LIGHTS + enabled = !enabled; + #endif HAL_GPIO_WritePin(LeftTurn_port, LeftTurn_pin, enabled ? GPIO_PIN_SET : GPIO_PIN_RESET); } @@ -59,6 +66,9 @@ void setHazards(flag_status_t enabled) { } void setRightTurn(flag_status_t enabled) { +#ifdef REAR_LIGHTS + enabled = !enabled; +#endif HAL_GPIO_WritePin(RightTurn_port, RightTurn_pin, enabled ? GPIO_PIN_SET : GPIO_PIN_RESET); } @@ -68,8 +78,18 @@ void setHeadlights(flag_status_t enabled) { HAL_GPIO_WritePin(Headlights2_port, Headlights2_pin, enabled ? GPIO_PIN_SET : GPIO_PIN_RESET); #endif } +void setHighBeams(flag_status_t enabled) { +#ifdef FRONT_LIGHTS + HAL_GPIO_WritePin(HeadlightsHigh_port, HeadlightsHigh_pin, enabled ? GPIO_PIN_SET : GPIO_PIN_RESET); +#endif +} +void setLowBeams(flag_status_t enabled) { +#ifdef FRONT_LIGHTS + HAL_GPIO_WritePin(HeadlightsLow_port, HeadlightsLow_pin, enabled ? GPIO_PIN_SET : GPIO_PIN_RESET); +#endif +} void RunningLightsEnabled(flag_status_t enabled){ -#ifdef BRUCE_REAR_LIGHTS +#if defined(BRUCE_REAR_LIGHTS) HAL_GPIO_WritePin(RunningLights_port, RunningLights_pin, enabled ? GPIO_PIN_RESET : GPIO_PIN_SET); #endif } diff --git a/Src/TaskManager.c b/Src/TaskManager.c index eeeb312..a73f9bd 100644 --- a/Src/TaskManager.c +++ b/Src/TaskManager.c @@ -37,12 +37,8 @@ _Noreturn void RunTaskManager(void) { setRightTurn(getRightTurnStatus() == Set && blink == Set); } -#ifdef BRUCE_FRONT_LIGHTS - setHeadlights(getHeadlightsStatus() == Set); -#endif -#ifdef BRUCE_REAR_LIGHTS - setBrakesStatus(getBrakeLightsStatus() == Set); -#endif + setHighBeams(getHighBeamsStatus() == Set); + setLowBeams(getLowBeamsStatus() == Set); setRunningLights(); setBrakeLights();