From 8a6469a122046bb35ac759980f03e1f3cc967027 Mon Sep 17 00:00:00 2001 From: cheoljun99 Date: Thu, 16 Apr 2026 13:50:10 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[feat]=20:=20=EC=8A=A4=ED=94=84=EB=A6=B0?= =?UTF-8?q?=ED=8A=B82=20=ED=83=90=EC=83=89=20=EA=B0=9C=EB=B0=9C=EC=97=90?= =?UTF-8?q?=20=EB=94=B0=EB=A5=B8=20ICD=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/dto/pin_control_main_command.h | 16 ++++++++++++++++ include/enum/icd_id.h | 19 ++++++++++++++----- 2 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 include/dto/pin_control_main_command.h diff --git a/include/dto/pin_control_main_command.h b/include/dto/pin_control_main_command.h new file mode 100644 index 0000000..7d2d5bc --- /dev/null +++ b/include/dto/pin_control_main_command.h @@ -0,0 +1,16 @@ +#ifndef PIN_CONTROL_MAIN_COMMAND_H +#define PIN_CONTROL_MAIN_COMMAND_H + +#include + +#include "../enum/icd_id.h" + +#pragma pack(push, 1) +struct PinControlMainCommand { + IcdId message_id; + int32_t a_motor_theta; + int32_t b_motor_theta; +}; +#pragma pack(pop) + +#endif // PIN_CONTROL_MAIN_COMMAND_H \ No newline at end of file diff --git a/include/enum/icd_id.h b/include/enum/icd_id.h index 91bbeef..ce94538 100644 --- a/include/enum/icd_id.h +++ b/include/enum/icd_id.h @@ -11,20 +11,29 @@ enum class IcdId : uint16_t { INS_INFO = 0x0004, // INS정보(ins_info) SKR_INFO = 0x0005, // SKR정보(skr_info) FEATURE_INSPECT_COMMAND = 0x0006, // 기능점검명령(feature_inspect_command) - FEATURE_INSPECT_READY_RES = 0x0007, // 기능점검준비완료응답(feature_inspect_ready_res) + FEATURE_INSPECT_READY_RES = + 0x0007, // 기능점검준비완료응답(feature_inspect_ready_res) TARGET_DISTANCE_REQ = 0x0008, // 목표거리오차요청(target_distance_req) TARGET_DISTANCE_RES = 0x0009, // 목표거리오차응답(target_distance_res) POSITION_REQ = 0x000A, // 자세요청(position_req) POSITION_RES = 0x000B, // 자세응답(position_res) PIN_CONTROL_REQ = 0x000C, // 핀제어요청(pin_control_req) PIN_CONTROL_RES = 0x000D, // 핀제어응답(pin_control_res) - FEATURE_INSPECT_FINISH_COMMAND = 0x000E, // 기능점검종료명령(feature_inspect_finish_command) - FEATURE_INSPECT_FINISH_RES = 0x000F, // 기능점검종료응답(feature_inspect_finish_res) + FEATURE_INSPECT_FINISH_COMMAND = + 0x000E, // 기능점검종료명령(feature_inspect_finish_command) + FEATURE_INSPECT_FINISH_RES = + 0x000F, // 기능점검종료응답(feature_inspect_finish_res) ONE_TEST_RESULT = 0x0010, // 1회 수행결과 전송(one_test_result) REBOOT_COMMAND = 0x0011, // 재부팅 명령 전송(reboot_command) REBOOT_RES = 0x0012, // 재부팅 명령 응답(reboot_res) - FEATURE_INSPECT_READY_COMMAND = 0x0013, // 기능점검준비완료명령(feature_inspect_ready_command) - ACT_DATA = 0x0014 // ACT값(act_data) + FEATURE_INSPECT_READY_COMMAND = + 0x0013, // 기능점검준비완료명령(feature_inspect_ready_command) + ACT_DATA = 0x0014, // ACT값(act_data) + INS_MAIN_DATA = 0x0015, // INS실제값(ins_main_data) + SKR_MAIN_DATA = 0x0016, // SKR실제값(skr_main_data) + PIN_CONTROL_MAIN_COMMAND = 0x0017, // 핀제어실제명령(pin_control_main_command) + RESET_CUR_POSITION_COMMAND = + 0x0018 // 현재위치 초기화 명령(reset_cur_position_command) }; #endif // ICD_ID_H From 436fcee2ef8fe2e59b00c7f35aef5d7a38b457ab Mon Sep 17 00:00:00 2001 From: cheoljun99 Date: Fri, 17 Apr 2026 10:43:31 +0900 Subject: [PATCH 2/4] =?UTF-8?q?comm=5Fheader.h=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=EC=97=90=EC=84=9C=20uint32=5Ft=20reliable=5Fkey=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/protocol/comm_header.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/protocol/comm_header.h b/include/protocol/comm_header.h index 555755a..6ce2f1e 100644 --- a/include/protocol/comm_header.h +++ b/include/protocol/comm_header.h @@ -11,10 +11,11 @@ enum class CommType : uint8_t { }; struct CommHeader { - CommType type; - DeviceId src_device_id; - DeviceId dst_device_id; - uint8_t sequence_number; // 신뢰성 있는 통신에서 사용 + CommType type; // 통신 유형 (일반 데이터, 신뢰성 있는 데이터, ACK) + DeviceId src_device_id; // 신뢰성 통신을 위한 출발지 디바이스 ID + DeviceId dst_device_id; // 신뢰성 통신을 위한 목적지 디바이스 ID + uint32_t reliable_key; // 신뢰성 있는 통신을 위한 디바이스 고유키 + uint8_t sequence_number; // 신뢰성 통신을 위한 시퀀스 넘버 uint16_t total_length; // 헤더 + 데이터의 총 길이 (최대 65535) uint16_t data_length; // 데이터의 길이 (최대 65535) }; From 95d5cf2ae457092bb2f80d7e99d54f4640e72f15 Mon Sep 17 00:00:00 2001 From: cheoljun99 Date: Fri, 17 Apr 2026 10:58:36 +0900 Subject: [PATCH 3/4] =?UTF-8?q?comm=5Fheader.h=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=EC=97=90=EC=84=9C=20uint32=5Ft=20reliable=5Funique=5Fkey=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/enum/icd_id.h | 15 +++++---------- include/protocol/comm_header.h | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/include/enum/icd_id.h b/include/enum/icd_id.h index ce94538..1666046 100644 --- a/include/enum/icd_id.h +++ b/include/enum/icd_id.h @@ -11,29 +11,24 @@ enum class IcdId : uint16_t { INS_INFO = 0x0004, // INS정보(ins_info) SKR_INFO = 0x0005, // SKR정보(skr_info) FEATURE_INSPECT_COMMAND = 0x0006, // 기능점검명령(feature_inspect_command) - FEATURE_INSPECT_READY_RES = - 0x0007, // 기능점검준비완료응답(feature_inspect_ready_res) + FEATURE_INSPECT_READY_RES = 0x0007, // 기능점검준비완료응답(feature_inspect_ready_res) TARGET_DISTANCE_REQ = 0x0008, // 목표거리오차요청(target_distance_req) TARGET_DISTANCE_RES = 0x0009, // 목표거리오차응답(target_distance_res) POSITION_REQ = 0x000A, // 자세요청(position_req) POSITION_RES = 0x000B, // 자세응답(position_res) PIN_CONTROL_REQ = 0x000C, // 핀제어요청(pin_control_req) PIN_CONTROL_RES = 0x000D, // 핀제어응답(pin_control_res) - FEATURE_INSPECT_FINISH_COMMAND = - 0x000E, // 기능점검종료명령(feature_inspect_finish_command) - FEATURE_INSPECT_FINISH_RES = - 0x000F, // 기능점검종료응답(feature_inspect_finish_res) + FEATURE_INSPECT_FINISH_COMMAND = 0x000E, // 기능점검종료명령(feature_inspect_finish_command) + FEATURE_INSPECT_FINISH_RES = 0x000F, // 기능점검종료응답(feature_inspect_finish_res) ONE_TEST_RESULT = 0x0010, // 1회 수행결과 전송(one_test_result) REBOOT_COMMAND = 0x0011, // 재부팅 명령 전송(reboot_command) REBOOT_RES = 0x0012, // 재부팅 명령 응답(reboot_res) - FEATURE_INSPECT_READY_COMMAND = - 0x0013, // 기능점검준비완료명령(feature_inspect_ready_command) + FEATURE_INSPECT_READY_COMMAND = 0x0013, // 기능점검준비완료명령(feature_inspect_ready_command) ACT_DATA = 0x0014, // ACT값(act_data) INS_MAIN_DATA = 0x0015, // INS실제값(ins_main_data) SKR_MAIN_DATA = 0x0016, // SKR실제값(skr_main_data) PIN_CONTROL_MAIN_COMMAND = 0x0017, // 핀제어실제명령(pin_control_main_command) - RESET_CUR_POSITION_COMMAND = - 0x0018 // 현재위치 초기화 명령(reset_cur_position_command) + RESET_CUR_POSITION_COMMAND = 0x0018 // 현재위치 초기화 명령(reset_cur_position_command) }; #endif // ICD_ID_H diff --git a/include/protocol/comm_header.h b/include/protocol/comm_header.h index 6ce2f1e..86c61d2 100644 --- a/include/protocol/comm_header.h +++ b/include/protocol/comm_header.h @@ -14,7 +14,7 @@ struct CommHeader { CommType type; // 통신 유형 (일반 데이터, 신뢰성 있는 데이터, ACK) DeviceId src_device_id; // 신뢰성 통신을 위한 출발지 디바이스 ID DeviceId dst_device_id; // 신뢰성 통신을 위한 목적지 디바이스 ID - uint32_t reliable_key; // 신뢰성 있는 통신을 위한 디바이스 고유키 + uint32_t reliable_unique_key; // 신뢰성 있는 통신을 위한 디바이스 고유키 uint8_t sequence_number; // 신뢰성 통신을 위한 시퀀스 넘버 uint16_t total_length; // 헤더 + 데이터의 총 길이 (최대 65535) uint16_t data_length; // 데이터의 길이 (최대 65535) From f46947e563ca805a6d4452c089a0e83043d5a043 Mon Sep 17 00:00:00 2001 From: cheoljun99 Date: Sat, 18 Apr 2026 01:06:44 +0900 Subject: [PATCH 4/4] =?UTF-8?q?comm=5Fheader.h=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/protocol/comm_header.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/protocol/comm_header.h b/include/protocol/comm_header.h index 86c61d2..9f7e591 100644 --- a/include/protocol/comm_header.h +++ b/include/protocol/comm_header.h @@ -9,7 +9,7 @@ enum class CommType : uint8_t { RELIABLE_DATA = 0x02, ACK = 0x03 }; - +#pragma pack(push, 1) struct CommHeader { CommType type; // 통신 유형 (일반 데이터, 신뢰성 있는 데이터, ACK) DeviceId src_device_id; // 신뢰성 통신을 위한 출발지 디바이스 ID @@ -19,5 +19,6 @@ struct CommHeader { uint16_t total_length; // 헤더 + 데이터의 총 길이 (최대 65535) uint16_t data_length; // 데이터의 길이 (최대 65535) }; +#pragma pack(pop) #endif // COMM_HEADER_H \ No newline at end of file