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
19 changes: 19 additions & 0 deletions include/dto/guidance_command.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#ifndef GUIDANCE_COMMAND_H
#define GUIDANCE_COMMAND_H

#include <cstdint>

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

// ICD-25: 유도 명령 (GCU -> UI, 10ms)
// NED 가속도 명령, 스케일 0.001 m/s², 범위 ±400 m/s² (±40G)
#pragma pack(push, 1)
struct GuidanceCommand {
IcdId message_id;
int32_t a_cmd_n; // 북쪽 방향 가속도 (0.001 m/s²)
int32_t a_cmd_e; // 동쪽 방향 가속도 (0.001 m/s²)
int32_t a_cmd_d; // 아래쪽 방향 가속도 (0.001 m/s²)
};
#pragma pack(pop)

#endif // GUIDANCE_COMMAND_H
38 changes: 38 additions & 0 deletions include/dto/missile_target_state.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#ifndef MISSILE_TARGET_STATE_H
#define MISSILE_TARGET_STATE_H

#include <cstdint>

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

// ICD-26: 미사일/표적 참값 상태 (UI -> GCU, 100ms)
// SILS 1단계 UI-GCU 통합 ICD — 미사일(6필드) + 표적(6필드) 참값 전달
// 좌표계: NED (발사점 원점)
// 위치 스케일 0.01 m (cm), 속도 스케일 0.001 m/s (mm/s)
#pragma pack(push, 1)
struct MissileTargetState {
IcdId message_id;

// 미사일 위치 (발사점 기준 NED, 0.01 m)
int32_t missile_pos_n;
int32_t missile_pos_e;
int32_t missile_pos_d;

// 미사일 속도 (NED, 0.001 m/s)
int32_t missile_vel_n;
int32_t missile_vel_e;
int32_t missile_vel_d;

// 표적 위치 (발사점 기준 NED, 0.01 m)
int32_t target_pos_n;
int32_t target_pos_e;
int32_t target_pos_d;

// 표적 속도 (NED, 0.001 m/s)
int32_t target_vel_n;
int32_t target_vel_e;
int32_t target_vel_d;
};
#pragma pack(pop)

#endif // MISSILE_TARGET_STATE_H
5 changes: 4 additions & 1 deletion include/enum/icd_id.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@ enum class IcdId : uint16_t {
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)

// SILS 1단계 (SRS-GCU-05 항법유도) 신규
GUIDANCE_COMMAND = 0x0018, // 유도 명령 (guidance_command)
MISSILE_TARGET_STATE = 0x0019 // 미사일/표적 참값 상태 (missile_target_state)
};

#endif // ICD_ID_H