diff --git a/Application/Tasks/LightTask.c b/Application/Tasks/LightTask.c index a88f435..a1dcb1f 100644 --- a/Application/Tasks/LightTask.c +++ b/Application/Tasks/LightTask.c @@ -26,6 +26,7 @@ const osThreadAttr_t LightTask_attr = { static cls_light_GlobalBrightness msg_cls_light_GlobalBrightness; static cls_light_GlobalTheme msg_cls_light_GlobalTheme; static cls_light_ThemeSettings msg_cls_light_ThemeSettings; +static cls_light_SaveThemeSettings msg_cls_light_SaveThemeSettings; static volatile struct LightSettings_s { volatile uint8_t brightness; @@ -73,7 +74,7 @@ void DataClbk_cls_light_GlobalBrightness(void* msg, uint32_t length) { } void DataClbk_cls_light_GlobalTheme(void* msg, uint32_t length) { - DATA_CLBK_SETUP(cls_light_ThemeSettings); + DATA_CLBK_SETUP(cls_light_GlobalTheme); lightSettings.theme = msg_cls_light_GlobalTheme.theme; settingChangeTime = osKernelGetTickCount(); } @@ -94,4 +95,14 @@ void DataClbk_cls_light_ThemeSettings(void* msg, uint32_t length) { data.color.b = (msg_cls_light_ThemeSettings.rgb>>16) & 0xFF; CLS_BSP_CAN_AddMessageToSend(&can_header, (uint8_t*)&data); -} \ No newline at end of file +} + + + +void DataClbk_cls_light_SaveThemeSettings(void* msg, uint32_t length) { + DATA_CLBK_SETUP(cls_light_SaveThemeSettings); + uint8_t device = msg_cls_light_SaveThemeSettings.deviceId & 0x1F; + uint16_t msg_light_setting = GENERATE_CLS_ADDRESS(CLS_CODE_CONFIG, device, 4); + CLS_BSP_TxHeaderType can_header = CREATE_BSP_CAN_HEADER(msg_light_setting, CLS_BSP_DLC_BYTES_1); + CLS_BSP_CAN_AddMessageToSend(&can_header, (uint8_t*)"X"); +} \ No newline at end of file diff --git a/Application/Tasks/UsbDataHandler.c b/Application/Tasks/UsbDataHandler.c index 83c628a..037b382 100644 --- a/Application/Tasks/UsbDataHandler.c +++ b/Application/Tasks/UsbDataHandler.c @@ -58,6 +58,8 @@ union { cls_light_GlobalBrightness msg_cls_light_GlobalBrightness; cls_light_GlobalTheme msg_cls_light_GlobalTheme; cls_light_ThemeSettings msg_cls_light_ThemeSettings; + cls_light_SaveThemeSettings msg_cls_light_SaveThemeSettings; + } mem_msg_decode; @@ -112,6 +114,7 @@ message_handler_t message_handlers[] = { MESSAGE_HANDLER(cls_usb_PackageType_LIGHT_GLOBAL_BRIGHT, cls_light_GlobalBrightness), MESSAGE_HANDLER(cls_usb_PackageType_LIGHT_GLOBAL_THEME, cls_light_GlobalTheme), MESSAGE_HANDLER(cls_usb_PackageType_LIGHT_SETTING_THEME, cls_light_ThemeSettings), + MESSAGE_HANDLER(cls_usb_PackageType_LIGHT_SETTING_THEME_SAVE, cls_light_SaveThemeSettings), }; diff --git a/Application/Tasks/UsbDataHandler.h b/Application/Tasks/UsbDataHandler.h index 2239bf1..1897992 100644 --- a/Application/Tasks/UsbDataHandler.h +++ b/Application/Tasks/UsbDataHandler.h @@ -132,7 +132,7 @@ void DataClbk_cls_device_RequestList(void* msg, uint32_t length); void DataClbk_cls_light_GlobalBrightness(void* msg, uint32_t length); void DataClbk_cls_light_GlobalTheme(void* msg, uint32_t length); void DataClbk_cls_light_ThemeSettings(void* msg, uint32_t length); - +void DataClbk_cls_light_SaveThemeSettings(void* msg, uint32_t length); #include "usb.pb.h" void USBDataResonse(void * msg, const pb_msgdesc_t *fields, cls_usb_PackageType typeid); diff --git a/proto b/proto index 68005c6..3937207 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 68005c6b87e65d69a240dcda26ca77159c1b1737 +Subproject commit 39372077447287e4d26aa4b2cfcdc70999f7cc81 diff --git a/tools/light_test.py b/tools/light_test.py index 4d58c0d..a822d2a 100644 --- a/tools/light_test.py +++ b/tools/light_test.py @@ -11,7 +11,7 @@ if __name__ == "__main__": ser = setup_connection() # Create a message request = GlobalBrightness() - request.brightness = 0 + request.brightness = 100 # Serialize the request to a bytearray request_data = request.SerializeToString()