From fe432acef32c6bfda9130c4310986131158e2680 Mon Sep 17 00:00:00 2001 From: Oliver Walter Date: Tue, 30 Apr 2024 02:38:56 +0200 Subject: [PATCH] rework of the device descripton in proto --- Application/CLS | 2 +- Application/CLS_BSP/CLS_BSP.c | 6 +++--- Application/Tasks/CanDataTask.c | 27 ++++++++++++++------------- CMakeLists.txt | 8 +++++--- proto | 2 +- 5 files changed, 24 insertions(+), 21 deletions(-) diff --git a/Application/CLS b/Application/CLS index 581ffc9..a9cfa7b 160000 --- a/Application/CLS +++ b/Application/CLS @@ -1 +1 @@ -Subproject commit 581ffc9ed93da9d6da7f7c310d9225d4eb06b634 +Subproject commit a9cfa7bc5e0a129d63ca5dc6261e5bb7fcd7178b diff --git a/Application/CLS_BSP/CLS_BSP.c b/Application/CLS_BSP/CLS_BSP.c index 9be6043..ad3581f 100644 --- a/Application/CLS_BSP/CLS_BSP.c +++ b/Application/CLS_BSP/CLS_BSP.c @@ -27,7 +27,7 @@ HAL_StatusTypeDef CLS_BSP_CAN_SetUniversalFilter(const CLS_BSP_CAN_UniversalFilt CLS_Type_t CLS_BSP_GetDeviceType(void) { - return CLS_TYPE_MASTER; + return cls_device_Type_MASTER; } @@ -36,8 +36,8 @@ void CLS_BSP_SetDeviceType(CLS_Type_t type) { CLS_Position_t CLS_BSP_GetPosition(void) { CLS_Position_t position; - position.p0 = CLS_POSITION_FRONT; - position.p1 = CLS_POSITION_CENTER; + position.p0 = cls_device_Position_FRONT; + position.p1 = cls_device_Position_CENTER; return position; } diff --git a/Application/Tasks/CanDataTask.c b/Application/Tasks/CanDataTask.c index 54d4691..7e6d79f 100644 --- a/Application/Tasks/CanDataTask.c +++ b/Application/Tasks/CanDataTask.c @@ -136,15 +136,17 @@ void DataClbk_cls_device_RequestList(void* msg, uint32_t length) { CLS_Position_t position = CLS_BSP_GetPosition(); CLS_Type_t type = CLS_BSP_GetDeviceType(); - uint32_t fw32 = (VERSION_INFO.major<<24) +(VERSION_INFO.minor<<16) + (VERSION_INFO.patch<<8) +VERSION_INFO.count ; - uint16_t pos16 = (position.p1<< 4) + position.p0; - uint16_t type16 = type; list.devices[list.devices_count].available = true; list.devices[list.devices_count].canid = GENERATE_CLS_ADDRESS(CLS_CODE_STATUS, gCLS_DEVICE_ADDRESS, CLS_CH_STA_HEATBEAT); list.devices[list.devices_count].device = gCLS_DEVICE_ADDRESS; - list.devices[list.devices_count].type_position = (type16<<16) + pos16; - list.devices[list.devices_count].fw_version = fw32; + list.devices[list.devices_count].type = (uint32_t) type; // enum to uint + list.devices[list.devices_count].position[0] = position.p0; + list.devices[list.devices_count].position[1] = position.p1; + list.devices[list.devices_count].fw_version[0] = VERSION_INFO.count; + list.devices[list.devices_count].fw_version[1] = VERSION_INFO.patch; + list.devices[list.devices_count].fw_version[2] = VERSION_INFO.minor; + list.devices[list.devices_count].fw_version[3] = VERSION_INFO.major; list.devices_count++; @@ -159,17 +161,16 @@ void DataClbk_cls_device_RequestList(void* msg, uint32_t length) { CLS_HeatbeatData_t data = {0}; memcpy(&data, msg->data, msg->data_length); - CLS_Position_t position = data.position; - CLS_Type_t type = data.type; - uint32_t fw32 = (data.firmware_version.major<<24) +(data.firmware_version.minor<<16) + (data.firmware_version.patch<<8) +data.firmware_version.count ; - uint16_t pos16 = (position.p1<< 4) + position.p0; - uint16_t type16 = type; - list.devices[list.devices_count].available = true; list.devices[list.devices_count].canid = canid; list.devices[list.devices_count].device = i; - list.devices[list.devices_count].type_position = (type16<<16) + pos16; - list.devices[list.devices_count].fw_version = fw32; + list.devices[list.devices_count].type = (uint32_t) data.type; // enum to uint + list.devices[list.devices_count].position[0] = data.position.p0; + list.devices[list.devices_count].position[1] = data.position.p1; + list.devices[list.devices_count].fw_version[0] = data.firmware_version.count; + list.devices[list.devices_count].fw_version[1] = data.firmware_version.patch; + list.devices[list.devices_count].fw_version[2] = data.firmware_version.minor; + list.devices[list.devices_count].fw_version[3] = data.firmware_version.major; list.devices_count++; } } diff --git a/CMakeLists.txt b/CMakeLists.txt index 9fdd35e..f9c4cb4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,9 +115,6 @@ include_directories( $<$: ${include_asm_DIRS}> ) -add_subdirectory("Revision") -add_subdirectory("lib") -add_subdirectory("Application") set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib/nanopb/extra) find_package(Nanopb REQUIRED) @@ -132,6 +129,11 @@ add_library(PROTOS ${PROTO_SRCS} ${PROTO_HDRS}) target_include_directories(PROTOS PUBLIC ${NANOPB_INCLUDE_DIRS} ${PROJECT_BINARY_DIR}) include_directories(${PROJECT_BINARY_DIR}) +add_subdirectory("Revision") +add_subdirectory("lib") +add_subdirectory("Application") + + # Add linked libraries # target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC protobuf-nanopb-static) diff --git a/proto b/proto index e4c5d99..6814f75 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit e4c5d996046b7d9f15a95f48e47a8b52198d57b4 +Subproject commit 6814f75619dcc97af2261592126fff65bce62e62