From b98207da4c537ee6fb4c0bfad7eb44c378faabef Mon Sep 17 00:00:00 2001 From: raduet Date: Thu, 30 Jul 2026 17:12:09 +0200 Subject: [PATCH] Add SET_LIGHTING (0xB1) and AC22-style init LED shimmer. Mutable status palette over serial; Unknown uses HSV saturation pulse instead of dim-red/fade-to-black. Co-authored-by: Cursor --- Core/Inc/main.h | 2 +- Core/Inc/rgb_controller.h | 4 +- Core/Inc/serial_control.h | 22 + Core/Src/rgb_controller.c | 367 +- Core/Src/serial_handler.c | 9 + Debug/CCSModuleSW30Web.bin | Bin 73268 -> 74672 bytes Debug/CCSModuleSW30Web.elf | Bin 1455600 -> 1462748 bytes Debug/CCSModuleSW30Web.hex | 7339 ++++++++++++++++++----------------- Debug/CCSModuleSW30Web.srec | 7338 +++++++++++++++++----------------- 9 files changed, 7690 insertions(+), 7391 deletions(-) diff --git a/Core/Inc/main.h b/Core/Inc/main.h index d18e246..5bc643f 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -27,7 +27,7 @@ extern "C" { /* USER CODE BEGIN EC */ #define FW_VERSION_MAJOR 1 #define FW_VERSION_MINOR 0 -#define FW_VERSION_PATCH 28 +#define FW_VERSION_PATCH 31 /* USER CODE END EC */ /* Exported macro ------------------------------------------------------------*/ diff --git a/Core/Inc/rgb_controller.h b/Core/Inc/rgb_controller.h index d0a14b4..5d0a63a 100755 --- a/Core/Inc/rgb_controller.h +++ b/Core/Inc/rgb_controller.h @@ -1,6 +1,7 @@ #pragma once #include "main.h" +#include "serial_control.h" #pragma pack(push, 1) @@ -40,6 +41,7 @@ typedef struct{ void LED_Task(); void LED_Write(); void LED_Init(); -void LED_SetColor(RGB_Cycle_t *color); +void LED_SetColor(const RGB_Cycle_t *color); void RGB_SetColor(RGB_t *color); void WS2812_SetColor(RGB_t *color); +uint8_t LED_ApplyLightingConfig(const LightingConfigPacket_t *config); diff --git a/Core/Inc/serial_control.h b/Core/Inc/serial_control.h index 3a57527..d9d9610 100644 --- a/Core/Inc/serial_control.h +++ b/Core/Inc/serial_control.h @@ -22,6 +22,7 @@ // Сервисные команды #define CMD_SET_CONFIG 0xB0 +#define CMD_SET_LIGHTING 0xB1 // Перезагрузка для входа в бутлоадер #define CMD_DEVICE_RESET 0xB5 @@ -147,6 +148,27 @@ typedef struct __attribute__((packed)) { } ConfigBlock_t; +typedef struct __attribute__((packed)) { + uint8_t r; + uint8_t g; + uint8_t b; + uint8_t brightness; + uint8_t effect; + uint8_t speed; + uint8_t fadeTo; +} LightingRolePacket_t; + +typedef struct __attribute__((packed)) { + uint8_t mode; + uint8_t flags; + uint8_t previewSec; + uint8_t reserved; + LightingRolePacket_t roles[5]; +} LightingConfigPacket_t; + +_Static_assert(sizeof(LightingRolePacket_t) == 7, "Lighting role packet must be 7 bytes"); +_Static_assert(sizeof(LightingConfigPacket_t) == 39, "Lighting config packet must be 39 bytes"); + // Предварительное объявление структуры протокола typedef struct SerialControl_t SerialControl_t; diff --git a/Core/Src/rgb_controller.c b/Core/Src/rgb_controller.c index fc4e27b..40a93aa 100644 --- a/Core/Src/rgb_controller.c +++ b/Core/Src/rgb_controller.c @@ -18,16 +18,16 @@ static RGB_t ws2812_led1 = { .R = 0, .G = 0, .B = 0 }; RGB_State_t LED_State; RGB_Cycle_t LED_Cycle; -RGB_Cycle_t color_estop = { - .Color1 = { .R = 250, .G = 0, .B = 0 }, - .Color2 = { .R = 0, .G = 0, .B = 0 }, - .Tr = 10, - .Th = 5, - .Tf = 10, - .Tl = 5, - }; +static const RGB_Cycle_t color_estop = { + .Color1 = { .R = 250, .G = 0, .B = 0 }, + .Color2 = { .R = 0, .G = 0, .B = 0 }, + .Tr = 40, + .Th = 10, + .Tf = 40, + .Tl = 10, +}; -RGB_Cycle_t color_unlock = { +static const RGB_Cycle_t color_unlock = { .Color1 = { .R = 255, .G = 0, .B = 0 }, .Color2 = { .R = 0, .G = 0, .B = 0 }, .Tr = 10, @@ -36,139 +36,220 @@ RGB_Cycle_t color_unlock = { .Tl = 10, }; -RGB_Cycle_t color_unknown = { - .Color1 = { .R = 64, .G = 0, .B = 0 }, - .Color2 = { .R = 64, .G = 0, .B = 0 }, - .Tr = 50, - .Th = 10, - .Tf = 50, - .Tl = 0, -}; +/* Same init shimmer as AC22/tkzu22: hue=85, sat breathes 30↔250 (not fade-to-black). */ +static uint8_t lighting_init_active; -RGB_Cycle_t color_light = { - .Color1 = { .R = 0, .G = 255, .B = 0 }, - .Color2 = { .R = 0, .G = 255, .B = 0 }, - .Tr = 50, - .Th = 10, - .Tf = 50, - .Tl = 0, -}; +static void LED_HsvToRgb(uint8_t hue, uint8_t sat, uint8_t val, RGB_t *out) +{ + uint8_t region; + uint8_t remainder; + uint8_t p; + uint8_t q; + uint8_t t; -RGB_Cycle_t color_disabled = { - .Color1 = { .R = 250, .G = 0, .B = 0 }, - .Color2 = { .R = 32, .G = 0, .B = 0 }, - .Tr = 50, - .Th = 10, - .Tf = 50, - .Tl = 0, -}; - -RGB_Cycle_t color_unplugged = { - .Color1 = { .R = 0, .G = 128, .B = 0 }, - .Color2 = { .R = 0, .G = 128, .B = 0 }, - .Tr = 50, - .Th = 10, - .Tf = 50, - .Tl = 0, -}; - -RGB_Cycle_t color_preparing = { - .Color1 = { .R = 0, .G = 0, .B = 255 }, - .Color2 = { .R = 0, .G = 0, .B = 0 }, - .Tr = 10, - .Th = 10, - .Tf = 10, - .Tl = 10, -}; - -RGB_Cycle_t color_charging = { - .Color1 = { .R = 0, .G = 255, .B = 0 }, - .Color2 = { .R = 0, .G = 32, .B = 0 }, - .Tr = 50, - .Th = 10, - .Tf = 50, - .Tl = 0, -}; - -RGB_Cycle_t color_finished = { - .Color1 = { .R = 255, .G = 255, .B = 255 }, - .Color2 = { .R = 255, .G = 255, .B = 255 }, - .Tr = 50, - .Th = 10, - .Tf = 50, - .Tl = 0, -}; - -RGB_Cycle_t color_error = { - .Color1 = { .R = 255, .G = 0, .B = 0 }, - .Color2 = { .R = 32, .G = 0, .B = 0 }, - .Tr = 50, - .Th = 10, - .Tf = 50, - .Tl = 0, -}; - -void LED_Write(){ - if(CONN.chargingError != CONN_NO_ERROR){ - LED_SetColor(&color_error); - return; + if (sat == 0U) { + out->R = out->G = out->B = val; + return; } - if(CONN.connControl == CMD_FORCE_UNLOCK){ - LED_SetColor(&color_unlock); - return; - } - if(CONN.connControl == CMD_STOP){ - LED_SetColor(&color_estop); - return; - } - switch(CONN.connState){ - case Unknown: - LED_SetColor(&color_unknown); - break; - case Unplugged: - LED_SetColor(&color_unplugged); - break; - case Disabled: - LED_SetColor(&color_error); - break; - case Preparing: - LED_SetColor(&color_preparing); - break; - case AuthRequired: - LED_SetColor(&color_preparing); - break; - case WaitingForEnergy: - LED_SetColor(&color_charging); - break; - case ChargingPausedEV: - LED_SetColor(&color_charging); - break; - case ChargingPausedEVSE: - LED_SetColor(&color_charging); - break; - case Charging: - LED_SetColor(&color_charging); - break; - case AuthTimeout: - LED_SetColor(&color_finished); - break; - case Finished: - LED_SetColor(&color_finished); - break; - case FinishedEVSE: - LED_SetColor(&color_finished); - break; - case FinishedEV: - LED_SetColor(&color_finished); - break; - case Replugging: - LED_SetColor(&color_preparing); - break; + region = (uint8_t)(hue / 43U); + remainder = (uint8_t)((hue - (uint8_t)(region * 43U)) * 6U); + p = (uint8_t)((val * (255U - sat)) >> 8); + q = (uint8_t)((val * (255U - ((sat * remainder) >> 8))) >> 8); + t = (uint8_t)((val * (255U - ((sat * (255U - remainder)) >> 8))) >> 8); + switch (region) { + case 0: + out->R = val; + out->G = t; + out->B = p; + break; + case 1: + out->R = q; + out->G = val; + out->B = p; + break; + case 2: + out->R = p; + out->G = val; + out->B = t; + break; + case 3: + out->R = p; + out->G = q; + out->B = val; + break; + case 4: + out->R = t; + out->G = p; + out->B = val; + break; default: - LED_SetColor(&color_unknown); - break; + out->R = val; + out->G = p; + out->B = q; + break; } - } +} + +/** AC22-compatible init «перелив»: fixed green hue, saturation pulse. */ +static void LED_RenderInitShimmer(void) +{ + static uint8_t sat = 250U; + static uint8_t rising = 0U; + const uint8_t hue = 85U; + const uint8_t val = 245U; + + if (sat >= 250U) { + rising = 0U; + } + if (sat <= 30U) { + rising = 1U; + } + if (rising) { + sat = (sat <= 246U) ? (uint8_t)(sat + 4U) : 250U; + } else { + sat = (sat >= 34U) ? (uint8_t)(sat - 4U) : 30U; + } + LED_HsvToRgb(hue, sat, val, &LED_State.color); +} + +static LightingConfigPacket_t committed_lighting = { + .mode = 0, + .roles = { + { 0, 128, 0, 100, 0, 40, 0 }, + { 0, 0, 255, 100, 1, 55, 100 }, + { 0, 255, 0, 100, 1, 40, 87 }, + { 255, 255, 255, 100, 0, 40, 0 }, + { 255, 0, 0, 100, 1, 50, 87 }, + }, +}; +static LightingConfigPacket_t preview_lighting; +static uint32_t preview_expires_at; +static uint8_t preview_active; + +static RGB_Cycle_t LED_CycleFromRole(const LightingRolePacket_t *role) +{ + const uint8_t fade_to_black = role->fadeTo >= 95; + RGB_Cycle_t cycle = { + .Color1 = { + .R = (uint8_t)((uint16_t)role->r * role->brightness / 100), + .G = (uint8_t)((uint16_t)role->g * role->brightness / 100), + .B = (uint8_t)((uint16_t)role->b * role->brightness / 100), + }, + .Tr = (uint8_t)((100 - role->speed) < 5 ? 5 : (100 - role->speed)), + .Th = 10, + .Tf = (uint8_t)((100 - role->speed) < 5 ? 5 : (100 - role->speed)), + .Tl = fade_to_black ? 10 : 0, + }; + + if (role->effect == 0) { + cycle.Color2 = cycle.Color1; + } else { + cycle.Color2.R = (uint8_t)((uint16_t)cycle.Color1.R * (100 - role->fadeTo) / 100); + cycle.Color2.G = (uint8_t)((uint16_t)cycle.Color1.G * (100 - role->fadeTo) / 100); + cycle.Color2.B = (uint8_t)((uint16_t)cycle.Color1.B * (100 - role->fadeTo) / 100); + } + return cycle; +} + +static uint8_t LED_IsLightingConfigValid(const LightingConfigPacket_t *config) +{ + if (config == NULL || config->mode > 1 || (config->flags & 0xFE) != 0 || + config->reserved != 0 || ((config->flags & 0x01) && config->previewSec == 0) || + (!(config->flags & 0x01) && config->previewSec != 0)) { + return 0; + } + + for (uint8_t i = 0; i < 5; i++) { + const LightingRolePacket_t *role = &config->roles[i]; + if (role->brightness > 100 || role->effect > 1 || role->speed > 100 || role->fadeTo > 100) { + return 0; + } + } + return 1; +} + +uint8_t LED_ApplyLightingConfig(const LightingConfigPacket_t *config) +{ + if (!LED_IsLightingConfigValid(config)) { + return 0; + } + + if (config->flags & 0x01) { + memcpy(&preview_lighting, config, sizeof(preview_lighting)); + preview_active = 1; + preview_expires_at = HAL_GetTick() + ((uint32_t)config->previewSec * 1000U); + } else { + memcpy(&committed_lighting, config, sizeof(committed_lighting)); + preview_active = 0; + } + return 1; +} + +void LED_Write(void) +{ + const LightingConfigPacket_t *lighting = &committed_lighting; + RGB_Cycle_t cycle; + + lighting_init_active = 0; + + if (CONN.connControl == CMD_STOP) { + LED_SetColor(&color_estop); + return; + } + if (CONN.chargingError != CONN_NO_ERROR || CONN.connState == Disabled) { + cycle = LED_CycleFromRole(&lighting->roles[4]); + LED_SetColor(&cycle); + return; + } + + if (preview_active && (int32_t)(HAL_GetTick() - preview_expires_at) >= 0) { + preview_active = 0; + } + if (preview_active) { + lighting = &preview_lighting; + } + + if (lighting->mode == 1) { + RGB_Cycle_t off = { 0 }; + LED_SetColor(&off); + return; + } + if (CONN.connControl == CMD_FORCE_UNLOCK) { + LED_SetColor(&color_unlock); + return; + } + if (CONN.connState == Unknown) { + lighting_init_active = 1; + return; + } + + switch (CONN.connState) { + case Unplugged: + cycle = LED_CycleFromRole(&lighting->roles[0]); + break; + case Preparing: + case AuthRequired: + case Replugging: + cycle = LED_CycleFromRole(&lighting->roles[1]); + break; + case WaitingForEnergy: + case ChargingPausedEV: + case ChargingPausedEVSE: + case Charging: + cycle = LED_CycleFromRole(&lighting->roles[2]); + break; + case AuthTimeout: + case Finished: + case FinishedEVSE: + case FinishedEV: + cycle = LED_CycleFromRole(&lighting->roles[3]); + break; + default: + lighting_init_active = 1; + return; + } + LED_SetColor(&cycle); +} void interpolateColors(RGB_t* color1, RGB_t* color2, uint16_t a, uint16_t b, RGB_t *result) { @@ -331,7 +412,7 @@ void WS2812_SetColor(RGB_t *color){ ws2812_update(&led0, &led1); } -void LED_SetColor(RGB_Cycle_t *color){ +void LED_SetColor(const RGB_Cycle_t *color){ memcpy(&LED_Cycle, color, sizeof(RGB_Cycle_t)); } @@ -349,6 +430,15 @@ void LED_Task(){ static uint32_t led_tick; if((HAL_GetTick() - led_tick) > 20){ led_tick = HAL_GetTick(); + LED_Ws2812ErrorBlinkUpdate(); + + if (lighting_init_active) { + LED_RenderInitShimmer(); + RGB_SetColor(&LED_State.color); + WS2812_SetColor(&LED_State.color); + return; + } + LED_State.tick++; switch(LED_State.state){ case LED_RISING: @@ -386,7 +476,6 @@ void LED_Task(){ default: LED_State.state = LED_RISING; } - LED_Ws2812ErrorBlinkUpdate(); RGB_SetColor(&LED_State.color); WS2812_SetColor(&LED_State.color); } diff --git a/Core/Src/serial_handler.c b/Core/Src/serial_handler.c index 7c7434f..02224c6 100644 --- a/Core/Src/serial_handler.c +++ b/Core/Src/serial_handler.c @@ -5,6 +5,7 @@ #include "debug.h" #include "fire_alarm.h" #include "psu_control.h" +#include "rgb_controller.h" #include "usart.h" #include @@ -58,6 +59,14 @@ void SC_CommandHandler(ReceivedCommand_t* cmd) { } response_code = RESP_FAILED; break; + case CMD_SET_LIGHTING: + if (cmd->argument_length == sizeof(LightingConfigPacket_t) && + LED_ApplyLightingConfig((const LightingConfigPacket_t *)cmd->argument)) { + response_code = RESP_SUCCESS; + break; + } + response_code = RESP_FAILED; + break; case CMD_SET_POWER_LIMIT: if (cmd->argument_length == 1) { PSU0.power_limit = ((uint8_t*)cmd->argument)[0] * 1000; diff --git a/Debug/CCSModuleSW30Web.bin b/Debug/CCSModuleSW30Web.bin index f27cda713a5131ed6489c09d73b72453d2c398b6..62c24dd5867e53dd99e0c4566da7f03db2e0d296 100755 GIT binary patch delta 10940 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 yh-`i+?T{5QP- diff --git a/Debug/CCSModuleSW30Web.elf b/Debug/CCSModuleSW30Web.elf index 83e37fbd1135f614b7b37fb64d79983205fbb135..70b6318bf59ff2377c265b7de31200016bedd634 100755 GIT binary patch delta 225728 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

|$JKXmak7{lCo3VP`3XD~Xo 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 z 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