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..1666046 100644 --- a/include/enum/icd_id.h +++ b/include/enum/icd_id.h @@ -23,8 +23,12 @@ enum class IcdId : uint16_t { 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 diff --git a/include/protocol/comm_header.h b/include/protocol/comm_header.h index 555755a..9f7e591 100644 --- a/include/protocol/comm_header.h +++ b/include/protocol/comm_header.h @@ -9,14 +9,16 @@ enum class CommType : uint8_t { RELIABLE_DATA = 0x02, ACK = 0x03 }; - +#pragma pack(push, 1) 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_unique_key; // 신뢰성 있는 통신을 위한 디바이스 고유키 + uint8_t sequence_number; // 신뢰성 통신을 위한 시퀀스 넘버 uint16_t total_length; // 헤더 + 데이터의 총 길이 (최대 65535) uint16_t data_length; // 데이터의 길이 (최대 65535) }; +#pragma pack(pop) #endif // COMM_HEADER_H \ No newline at end of file