diff --git a/Application/CLS b/Application/CLS index a9cfa7b..2934954 160000 --- a/Application/CLS +++ b/Application/CLS @@ -1 +1 @@ -Subproject commit a9cfa7bc5e0a129d63ca5dc6261e5bb7fcd7178b +Subproject commit 29349543962ba03a43b33baad63f693edfa2d096 diff --git a/Application/CLS_BSP/CLS_BSP.h b/Application/CLS_BSP/CLS_BSP.h index f8248bf..4cb9605 100644 --- a/Application/CLS_BSP/CLS_BSP.h +++ b/Application/CLS_BSP/CLS_BSP.h @@ -1,7 +1,6 @@ - +#pragma once #define CLS_BSP_FDCAN - #ifdef CLS_BSP_FDCAN #include "fdcan.h" diff --git a/Application/Tasks/CanDataTask.c b/Application/Tasks/CanDataTask.c index f959f9a..1709c88 100644 --- a/Application/Tasks/CanDataTask.c +++ b/Application/Tasks/CanDataTask.c @@ -178,7 +178,18 @@ void DataClbk_cls_device_RequestList(void* msg, uint32_t length) { } } } - USBDataResonse(&list, cls_device_ResponseList_fields, cls_usb_PackageType_RESPONSE_DEVICE_LIST); +} -} \ No newline at end of file +cls_device_UpdateDeviceSettings msg_cls_device_UpdateDeviceSettings; +void DataClbk_cls_device_UpdateDeviceSettings(void* msg, uint32_t length) + { + DATA_CLBK_SETUP(cls_device_UpdateDeviceSettings); + cls_device_UpdateDeviceSettings * msgs = &msg_cls_device_UpdateDeviceSettings; + if(msgs->position_count >= 2) { + CLS_Position_t pos; + pos.p0 = msgs->position[0]; + pos.p1 = msgs->position[1]; + CLS_SendEventChangeTypePostion(msgs->device, msgs->type, pos); + } + } \ No newline at end of file diff --git a/Application/Tasks/UsbDataHandler.c b/Application/Tasks/UsbDataHandler.c index 037b382..d18402f 100644 --- a/Application/Tasks/UsbDataHandler.c +++ b/Application/Tasks/UsbDataHandler.c @@ -55,6 +55,7 @@ union { cls_firmware_Done msg_cls_firmware_Done; cls_device_RequestList msg_cls_device_RequestList; cls_device_ResponseList msg_cls_device_ResponseList; + cls_device_UpdateDeviceSettings msg_cls_device_UpdateDeviceSettings; cls_light_GlobalBrightness msg_cls_light_GlobalBrightness; cls_light_GlobalTheme msg_cls_light_GlobalTheme; cls_light_ThemeSettings msg_cls_light_ThemeSettings; @@ -111,6 +112,7 @@ message_handler_t message_handlers[] = { MESSAGE_HANDLER(cls_usb_PackageType_FIRMWAREPACKAGEACK, cls_firmware_PackageAck), MESSAGE_HANDLER(cls_usb_PackageType_REQUEST_DEVICE_LIST, cls_device_RequestList), MESSAGE_HANDLER(cls_usb_PackageType_RESPONSE_DEVICE_LIST, cls_device_ResponseList), + MESSAGE_HANDLER(cls_usb_PackageType_UPDATE_DEVICE_SETTINGS, cls_device_UpdateDeviceSettings), 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), diff --git a/Application/Tasks/UsbDataHandler.h b/Application/Tasks/UsbDataHandler.h index 1897992..fa3af2a 100644 --- a/Application/Tasks/UsbDataHandler.h +++ b/Application/Tasks/UsbDataHandler.h @@ -129,6 +129,7 @@ void DataClbk_cls_firmware_PackageAck(void* msg, uint32_t length); void DataClbk_cls_firmware_Done(void* msg, uint32_t length); void DataClbk_cls_device_ResponseList(void* msg, uint32_t length); void DataClbk_cls_device_RequestList(void* msg, uint32_t length); +void DataClbk_cls_device_UpdateDeviceSettings(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); diff --git a/proto b/proto index 8317878..eca57b1 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 83178787821a14dfd2cda04279117f0c15e8b37d +Subproject commit eca57b1315e6b9a6d561e41bf6dc7ef604b79501 diff --git a/tools/set_device_type.py b/tools/set_device_type.py new file mode 100644 index 0000000..c8607c5 --- /dev/null +++ b/tools/set_device_type.py @@ -0,0 +1,20 @@ +from cls_device_pb2 import UpdateDeviceSettings, Type, Position +from usb_pb2 import PackageType +from vcp_driver import * + +if __name__ == "__main__": + ser = setup_connection() + # Create a message + request = UpdateDeviceSettings() + request.device = 1 + request.type = Type.LIGHT + request.position.append(Position.RIGHT) + request.position.append(Position.FLOOR) + # Serialize the request to a bytearray + request_data = request.SerializeToString() + + + print(request) + print(request_data) + # Send the request + send_package(PackageType.UPDATE_DEVICE_SETTINGS, request_data, ser)