Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions include/dto/imu_attitude_feedback.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#ifndef IMU_ATTITUDE_FEEDBACK_H
#define IMU_ATTITUDE_FEEDBACK_H

#include <cstdint>

#include "../enum/icd_id.h"

#pragma pack(push, 1)
/**
* @brief imu 자세 피드백(imu_attitude_feedback)
* ICD-38
*/
struct ImuAttitudeFeedback {
IcdId message_id; // imu로 측정한 미사일 표적 상태를 나타내는 식별자 (0x0025)
int32_t imu_quaternion_x; // imu 쿼터니언 x (0.001)
int32_t imu_quaternion_y; // imu 쿼터니언 y (0.001)
int32_t imu_quaternion_z; // imu 쿼터니언 z (0.001)
int32_t imu_quaternion_w; // imu 쿼터니언 w (0.001)
int32_t imu_angular_velocity_p; // imu 각속도 p (0.001 rad/s)
int32_t imu_angular_velocity_q; // imu 각속도 q (0.001 rad/s)
int32_t imu_angular_velocity_r; // imu 각속도 r (0.001 rad/s)
};
#pragma pack(pop)

#endif // IMU_ATTITUDE_FEEDBACK_H
22 changes: 22 additions & 0 deletions include/dto/imu_calibration_data.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#ifndef IMU_CALIBRATION_DATA_H
#define IMU_CALIBRATION_DATA_H

#include <cstdint>

#include "../enum/icd_id.h"

#pragma pack(push, 1)
/**
* @brief imu 캘리브레이션 데이터(imu_calibration_data)
* ICD-39
*/
struct ImuCalibrationData {
IcdId message_id; // imu 캘리브레이션 데이터를 나타내는 식별자 (0x0026)
int32_t ui_quaternion_x; // ui가 측정한 NED 쿼터니언 값 (0.001)
int32_t ui_quaternion_y; // ui가 측정한 NED 쿼터니언 값 (0.001)
int32_t ui_quaternion_z; // ui가 측정한 NED 쿼터니언 값 (0.001)
int32_t ui_quaternion_w; // ui가 측정한 NED 쿼터니언 값 (0.001)
};
#pragma pack(pop)

#endif // IMU_CALIBRATION_DATA_H
6 changes: 3 additions & 3 deletions include/dto/telemetry_data.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
#include <cstdint>

#include "../enum/icd_id.h"
#include "ins_main_data.h"
#include "imu_attitude_feedback.h"
#include "skr_main_data.h"

#pragma pack(push, 1)
struct TelemetryData {
IcdId message_id;
InsMainData ins_data;
ImuAttitudeFeedback imu_data;
SkrMainData skr_data;
};
#pragma pack(pop)

#endif // TELEMETRY_DATA_H
#endif // TELEMETRY_DATA_H
70 changes: 35 additions & 35 deletions include/enum/icd_id.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,56 +4,56 @@
#include <cstdint>

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)
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)
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)
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)
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)
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)
0x001C, // 제어시험 미사일/표적 상태 (control_test_missile_target_state)
CONTROL_TEST_ATTITUDE_FEEDBACK =
0x001D, // 제어시험 자세 피드백 (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
IMU_ATTITUDE_FEEDBACK = 0x0025, // imu_attitude_feedback
IMU_CALIBRATION_DATA = 0x0026, // imu_calibration_data
// 아래는 테스트용 ICD ID입니다. 실제 운용에서는 사용X.
COMM_RELIABLE_TEST =
0xFFF0, // 통신 신뢰성 테스트용 ICD ID (comm_reliable_test)
0xFFF0, // 통신 신뢰성 테스트용 ICD ID (comm_reliable_test)
COMM_BIG_DATA_TEST =
0xFFF1 // 통신 대용량 데이터 테스트용 ICD ID (comm_big_data_test)
0xFFF1 // 통신 대용량 데이터 테스트용 ICD ID (comm_big_data_test)
};

#endif // ICD_ID_H
#endif // ICD_ID_H