added protocol to change Device Setting (Type/Postion)

This commit is contained in:
2024-04-30 11:29:48 +02:00
parent 471ec34ba0
commit 6218223d41
7 changed files with 39 additions and 6 deletions

View File

@@ -1,7 +1,6 @@
#pragma once
#define CLS_BSP_FDCAN
#ifdef CLS_BSP_FDCAN
#include "fdcan.h"

View File

@@ -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);
}
}
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);
}
}

View File

@@ -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),

View File

@@ -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);

2
proto

Submodule proto updated: 8317878782...eca57b1315

20
tools/set_device_type.py Normal file
View File

@@ -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)