From 0972b87637fcbfadd4857f7701ca28d4e84211c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B6=80=EA=B1=B4?= Date: Wed, 13 May 2026 16:46:05 +0900 Subject: [PATCH] =?UTF-8?q?=ED=98=B8=EB=B0=8D=EC=8B=9C=ED=97=98,=20icd=5Fi?= =?UTF-8?q?d,=20=EC=9E=A5=EC=B9=98=EB=8C=80=20=ED=9A=8C=EC=A0=84=20?= =?UTF-8?q?=EB=AA=85=EB=A0=B9=20dto=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/dto/control_test_command.h | 2 +- include/dto/hils_rotate_command.h | 16 ++++++ include/dto/homing_end_command.h | 14 +++++ include/dto/homing_end_res.h | 16 ++++++ include/dto/homing_start_command.h | 14 +++++ include/dto/homing_start_res.h | 16 ++++++ include/dto/telemetry_data.h | 18 +++++++ include/enum/icd_id.h | 85 ++++++++++++++++++------------ 8 files changed, 145 insertions(+), 36 deletions(-) create mode 100644 include/dto/hils_rotate_command.h create mode 100644 include/dto/homing_end_command.h create mode 100644 include/dto/homing_end_res.h create mode 100644 include/dto/homing_start_command.h create mode 100644 include/dto/homing_start_res.h create mode 100644 include/dto/telemetry_data.h diff --git a/include/dto/control_test_command.h b/include/dto/control_test_command.h index b70f922..2aae9ce 100644 --- a/include/dto/control_test_command.h +++ b/include/dto/control_test_command.h @@ -8,7 +8,7 @@ #pragma pack(push, 1) struct ControlTestCommand { IcdId message_id; - uint8_t start; // 1 = 시작, 0 = 종료 + uint8_t start; // 1 = 중기 유도 시작, 2 = 호밍 유도 시작, 0 = 종료 }; #pragma pack(pop) diff --git a/include/dto/hils_rotate_command.h b/include/dto/hils_rotate_command.h new file mode 100644 index 0000000..9f97e52 --- /dev/null +++ b/include/dto/hils_rotate_command.h @@ -0,0 +1,16 @@ +#ifndef HILS_ROTATE_COMMAND_H +#define HILS_ROTATE_COMMAND_H + +#include + +#include "../enum/icd_id.h" + +#pragma pack(push, 1) +struct HilsRotateCommand { + IcdId message_id; + int32_t yaw_theta; + int32_t pitch_theta; +}; +#pragma pack(pop) + +#endif // HILS_ROTATE_COMMAND_H diff --git a/include/dto/homing_end_command.h b/include/dto/homing_end_command.h new file mode 100644 index 0000000..47fe00d --- /dev/null +++ b/include/dto/homing_end_command.h @@ -0,0 +1,14 @@ +#ifndef HOMING_END_COMMAND_H +#define HOMING_END_COMMAND_H + +#include + +#include "../enum/icd_id.h" + +#pragma pack(push, 1) +struct HomingEndCommand { + IcdId message_id; +}; +#pragma pack(pop) + +#endif // HOMING_END_COMMAND_H diff --git a/include/dto/homing_end_res.h b/include/dto/homing_end_res.h new file mode 100644 index 0000000..ec38dde --- /dev/null +++ b/include/dto/homing_end_res.h @@ -0,0 +1,16 @@ +#ifndef HOMING_END_RES_H +#define HOMING_END_RES_H + +#include + +#include "../enum/icd_id.h" +#include "../enum/subsystem.h" + +#pragma pack(push, 1) +struct HomingEndRes { + IcdId message_id; + SubSystem my_sub_system; +}; +#pragma pack(pop) + +#endif // HOMING_END_RES_H diff --git a/include/dto/homing_start_command.h b/include/dto/homing_start_command.h new file mode 100644 index 0000000..1c82294 --- /dev/null +++ b/include/dto/homing_start_command.h @@ -0,0 +1,14 @@ +#ifndef HOMING_START_COMMAND_H +#define HOMING_START_COMMAND_H + +#include + +#include "../enum/icd_id.h" + +#pragma pack(push, 1) +struct HomingStartCommand { + IcdId message_id; +}; +#pragma pack(pop) + +#endif // HOMING_START_COMMAND_H diff --git a/include/dto/homing_start_res.h b/include/dto/homing_start_res.h new file mode 100644 index 0000000..e8e9c16 --- /dev/null +++ b/include/dto/homing_start_res.h @@ -0,0 +1,16 @@ +#ifndef HOMING_START_RES_H +#define HOMING_START_RES_H + +#include + +#include "../enum/icd_id.h" +#include "../enum/subsystem.h" + +#pragma pack(push, 1) +struct HomingStartRes { + IcdId message_id; + SubSystem my_sub_system; +}; +#pragma pack(pop) + +#endif // HOMING_START_RES_H diff --git a/include/dto/telemetry_data.h b/include/dto/telemetry_data.h new file mode 100644 index 0000000..8077a18 --- /dev/null +++ b/include/dto/telemetry_data.h @@ -0,0 +1,18 @@ +#ifndef TELEMETRY_DATA_H +#define TELEMETRY_DATA_H + +#include + +#include "../enum/icd_id.h" +#include "ins_main_data.h" +#include "skr_main_data.h" + +#pragma pack(push, 1) +struct TelemetryData { + IcdId message_id; + InsMainData ins_data; + SkrMainData skr_data; +}; +#pragma pack(pop) + +#endif // TELEMETRY_DATA_H diff --git a/include/enum/icd_id.h b/include/enum/icd_id.h index fc0a2d0..dcf45e8 100644 --- a/include/enum/icd_id.h +++ b/include/enum/icd_id.h @@ -4,41 +4,56 @@ #include enum class IcdId : uint16_t { - COMMON_PARAMETER = 0x0000, // 공통매개변수(common_parameter) - ACT_INFO = 0x0001, // ACT정보(act_info) - FULL_SYSTEM_INFO = 0x0002, // 부체계 정보 및 GCU 정보(full_system_info) - INS_DATA = 0x0003, // INS값(ins_data) - 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) - TARGET_DISTANCE_REQ = 0x0008, // 목표거리오차요청(target_distance_req) - TARGET_DISTANCE_RES = 0x0009, // 목표거리오차응답(target_distance_res) - POSITION_REQ = 0x000A, // 자세요청(position_req) - POSITION_RES = 0x000B, // 자세응답(position_res) - FIN_CONTROL_REQ = 0x000C, // 핀제어요청(fin_control_req) - FIN_CONTROL_RES = 0x000D, // 핀제어응답(fin_control_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) - INS_MAIN_DATA = 0x0015, // INS실제값(ins_main_data) - SKR_MAIN_DATA = 0x0016, // SKR실제값(skr_main_data) - FIN_CONTROL_MAIN_COMMAND = 0x0017, // 핀제어실제명령(fin_control_main_command) - GUIDANCE_COMMAND = 0x0018, // 유도 명령 (guidance_command) - MISSILE_TARGET_STATE = 0x0019, // 미사일/표적 참값 상태 (missile_target_state) - NAVIGATION_TEST_COMMAND = 0x001A, // 항법시험 명령 (navigation_test_command) - CONTROL_TEST_COMMAND = 0x001B, // 제어시험 명령 (control_test_command) - CONTROL_TEST_MISSILE_TARGET_STATE = 0x001C, // 제어시험 미사일/표적 상태 (control_test_missile_target_state) - CONTROL_TEST_ATTITUDE_FEEDBACK = 0x001D, // 제어시험 자세 피드백 (control_test_attitude_feedback) - PCAM_VIDEO_DATA = 0x001E, // PCA 비디오 데이터 (pcam_video_data) - + COMMON_PARAMETER = 0x0000, // 공통매개변수(common_parameter) + ACT_INFO = 0x0001, // ACT정보(act_info) + FULL_SYSTEM_INFO = 0x0002, // 부체계 정보 및 GCU 정보(full_system_info) + INS_DATA = 0x0003, // INS값(ins_data) + 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) + TARGET_DISTANCE_REQ = 0x0008, // 목표거리오차요청(target_distance_req) + TARGET_DISTANCE_RES = 0x0009, // 목표거리오차응답(target_distance_res) + POSITION_REQ = 0x000A, // 자세요청(position_req) + POSITION_RES = 0x000B, // 자세응답(position_res) + FIN_CONTROL_REQ = 0x000C, // 핀제어요청(fin_control_req) + FIN_CONTROL_RES = 0x000D, // 핀제어응답(fin_control_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) + INS_MAIN_DATA = 0x0015, // INS실제값(ins_main_data) + SKR_MAIN_DATA = 0x0016, // SKR실제값(skr_main_data) + FIN_CONTROL_MAIN_COMMAND = + 0x0017, // 핀제어실제명령(fin_control_main_command) + GUIDANCE_COMMAND = 0x0018, // 유도 명령 (guidance_command) + MISSILE_TARGET_STATE = + 0x0019, // 미사일/표적 참값 상태 (missile_target_state) + NAVIGATION_TEST_COMMAND = 0x001A, // 항법시험 명령 (navigation_test_command) + CONTROL_TEST_COMMAND = 0x001B, // 제어시험 명령 (control_test_command) + CONTROL_TEST_MISSILE_TARGET_STATE = + 0x001C, // 제어시험 미사일/표적 상태 (control_test_missile_target_state) + CONTROL_TEST_ATTITUDE_FEEDBACK = + 0x001D, // 제어시험 자세 피드백 (control_test_attitude_feedback) + PCAM_VIDEO_DATA = 0x001E, // PCA 비디오 데이터 (pcam_video_data) + HOMING_START_COMMAND = 0x001F, // homing_start_command + HOMING_START_RES = 0x0020, // homing_start_res + HOMING_END_COMMAND = 0x0021, // homing_end_command + HOMING_END_RES = 0x0022, // homing_end_res + TELEMETRY_DATA = 0x0023, // telemetry_data + HILS_ROTATE_COMMAND = 0x0024, // hils_rotate_command // 아래는 테스트용 ICD ID입니다. 실제 운용에서는 사용X. - COMM_RELIABLE_TEST = 0xFFF0, // 통신 신뢰성 테스트용 ICD ID (comm_reliable_test) - COMM_BIG_DATA_TEST = 0xFFF1 // 통신 대용량 데이터 테스트용 ICD ID (comm_big_data_test) + COMM_RELIABLE_TEST = + 0xFFF0, // 통신 신뢰성 테스트용 ICD ID (comm_reliable_test) + COMM_BIG_DATA_TEST = + 0xFFF1 // 통신 대용량 데이터 테스트용 ICD ID (comm_big_data_test) }; -#endif // ICD_ID_H +#endif // ICD_ID_H