From 91e63f45cac401367fb3747333e2ffc8e1834173 Mon Sep 17 00:00:00 2001 From: satoshi_ikari Date: Thu, 28 Sep 2023 18:12:43 +0900 Subject: [PATCH] Modify CONTROL TLM --- database/TLM_DB/AOBC_TLM_DB_AOBC_ANOMALY.csv | 22 +-- .../TLM_DB/AOBC_TLM_DB_AOBC_AOCS_MANAGER.csv | 2 +- .../TLM_DB/AOBC_TLM_DB_AOBC_COMPONENTS.csv | 2 +- database/TLM_DB/AOBC_TLM_DB_AOBC_CONTROL.csv | 114 +++++++------- .../calced_data/AOBC_TLM_DB_AOBC_ANOMALY.csv | 22 +-- .../AOBC_TLM_DB_AOBC_AOCS_MANAGER.csv | 2 +- .../AOBC_TLM_DB_AOBC_COMPONENTS.csv | 2 +- .../calced_data/AOBC_TLM_DB_AOBC_CONTROL.csv | 118 +++++++-------- src/src_user/TlmCmd/telemetry_definitions.c | 143 ++++++++++-------- 9 files changed, 222 insertions(+), 205 deletions(-) diff --git a/database/TLM_DB/AOBC_TLM_DB_AOBC_ANOMALY.csv b/database/TLM_DB/AOBC_TLM_DB_AOBC_ANOMALY.csv index 8dd2ba94..e8ef0e25 100644 --- a/database/TLM_DB/AOBC_TLM_DB_AOBC_ANOMALY.csv +++ b/database/TLM_DB/AOBC_TLM_DB_AOBC_ANOMALY.csv @@ -44,17 +44,17 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,TEMPERATURE.THRESHOLD.RW_Z_LOWER_DEGC,float,(float)temperature_anomaly->threshold_list[APP_TEMPERATURE_ANOMALY_IDX_RW_Z].lower_degC,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,RW_Z温度下限, ,TEMPERATURE.THRESHOLD.GPSR_UPPER_DEGC,float,(float)temperature_anomaly->threshold_list[APP_TEMPERATURE_ANOMALY_IDX_GPSR].upper_degC,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,GPSR温度上限, ,TEMPERATURE.THRESHOLD.GPSR_LOWER_DEGC,float,(float)temperature_anomaly->threshold_list[APP_TEMPERATURE_ANOMALY_IDX_GPSR].lower_degC,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,GPSR温度下限, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, +,MODE_MANAGER.IS_AUTO_MODE_TRANSITION_ENABLED,uint8_t,(uint8_t)(aocs_mode_manager->is_enabled_auto_mode_transition),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=disable@@ 1=enable,自動モード遷移Enableフラグ, +,MODE_MANAGER.ANG_VEL_CONV_LIMIT_rad_s,float,(float)(aocs_mode_manager->ang_vel_conv_limit_rad_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,角速度収束判定角速度閾値, +,MODE_MANAGER.ANG_VEL_CONV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->ang_vel_conv_time_limit_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,角速度収束判定時間閾値, +,MODE_MANAGER.ANG_VEL_NORM_INCREASE_LIMIT_rad_s,float,(float)(aocs_mode_manager->ang_vel_norm_increase_limit_rad_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,角速度ノルム上昇閾値, +,MODE_MANAGER.ANG_VEL_ANOMALY_DETECTION_PERIOD_s,float,(float)(aocs_mode_manager->ang_vel_anomaly_detection_period_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アノマリ検知周期, +,MODE_MANAGER.SUN_ANG_DIV_LIMIT_rad,float,(float)(aocs_mode_manager->sun_angle_div_limit_rad),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,太陽補足発散判定角度閾値, +,MODE_MANAGER.SUN_ANG_DIV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->sun_angle_div_time_limit_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,太陽補足発散判定時間閾値, +,MODE_MANAGER.3AXIS_ANG_DIV_LIMIT_rad,float,(float)(aocs_mode_manager->three_axis_div_limit_rad),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,三軸制御発散判定角度閾値, +,MODE_MANAGER.3AXIS_DIV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->three_axis_div_time_limit_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,三軸制御発散判定時間閾値, +,MODE_MANAGER.SS_INVISIBLE_TIME_LIMIT_s,float,(float)(aocs_mode_manager->sun_invisible_time_limit_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,太陽センサ非可視時間閾値, +,MODE_MANAGER.STT_INVISIBLE_TIME_LIMIT_s,float,(float)(aocs_mode_manager->stt_invisible_time_limit_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,STT非可視時間閾値, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/database/TLM_DB/AOBC_TLM_DB_AOBC_AOCS_MANAGER.csv b/database/TLM_DB/AOBC_TLM_DB_AOBC_AOCS_MANAGER.csv index b4d30aae..357d437a 100644 --- a/database/TLM_DB/AOBC_TLM_DB_AOBC_AOCS_MANAGER.csv +++ b/database/TLM_DB/AOBC_TLM_DB_AOBC_AOCS_MANAGER.csv @@ -66,7 +66,7 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,CONST_TORQUE.BODY_X_Nm,float,(float)(aocs_manager->constant_torque_body_Nm[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,固定トルク機体固定座標系_X, ,CONST_TORQUE.BODY_Y_Nm,float,(float)(aocs_manager->constant_torque_body_Nm[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,固定トルク機体固定座標系_Y, ,CONST_TORQUE.BODY_Z_Nm,float,(float)(aocs_manager->constant_torque_body_Nm[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,固定トルク機体固定座標系_Z, -,,,,,,,,,,,,,,,,, +,TIME_SPACE_OFFSET_TIME_s,float,(float)(time_space_calculator->offset_sec),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,計算結果を使用する時刻と実行時刻の間のオフセット, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/database/TLM_DB/AOBC_TLM_DB_AOBC_COMPONENTS.csv b/database/TLM_DB/AOBC_TLM_DB_AOBC_COMPONENTS.csv index d50443ce..3b69de30 100644 --- a/database/TLM_DB/AOBC_TLM_DB_AOBC_COMPONENTS.csv +++ b/database/TLM_DB/AOBC_TLM_DB_AOBC_COMPONENTS.csv @@ -73,7 +73,7 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,RWX.TEMPERATURE_DEGC,float,(float)(rw0003_driver[RW0003_IDX_ON_X]->info.temperature_degC),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,RW0003_Xの温度, ,RWY.TEMPERATURE_DEGC,float,(float)(rw0003_driver[RW0003_IDX_ON_Y]->info.temperature_degC),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,RW0003_Yの温度, ,RWZ.TEMPERATURE_DEGC,float,(float)(rw0003_driver[RW0003_IDX_ON_Z]->info.temperature_degC),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,RW0003_Zの温度, -,,,,,,,,,,,,,,,,, +,MTQ_SEIREN_CONTROLLER_DEMAGNITIZATION_TIME_MS,uint32_t,(uint32_t)(mtq_seiren_controller->mtq_demagnetization_required_time_ms),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,MTQの消磁に必要な時間[ms], ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/database/TLM_DB/AOBC_TLM_DB_AOBC_CONTROL.csv b/database/TLM_DB/AOBC_TLM_DB_AOBC_CONTROL.csv index a61f3ed1..97f2a09c 100644 --- a/database/TLM_DB/AOBC_TLM_DB_AOBC_CONTROL.csv +++ b/database/TLM_DB/AOBC_TLM_DB_AOBC_CONTROL.csv @@ -25,65 +25,65 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,BDOT.GAIN_Z,float,(float)(bdot->control_gain[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,body座標系z軸に関するBdot則制御ゲイン, ,BDOT.MINIMUM_TIME_DERIVATIVE_STEP_MS,uint32_t,(uint32_t)(bdot->minimum_time_derivative_step_ms),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,Bdot則における磁場ベクトル時間微分計算の最小タイムステップ[ms], ,BDOT.MTQ_OUTPUT_TIME_LENGTH_MS,uint32_t,(uint32_t)(bdot->mtq_output_time_length_ms),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,Bdot則におけるMTQ出力継続時間[ms], -,MTQ_SEIREN_CONTROLLER_DEMAGNITIZATION_TIME_MS,uint32_t,(uint32_t)(mtq_seiren_controller->mtq_demagnetization_required_time_ms),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,MTQの消磁に必要な時間[ms], -,TARGET_CALC_MODE,uint8_t,(uint8_t)(target_attitude_calculator->mode),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MANUAL@@ 1=CALCULATION_FROM_ORBIT@@ 2=INTERPOLATION,目標Quaternion計算方法, -,TARGET_CALC_ENABLE,uint8_t,(uint8_t)(target_attitude_calculator->is_enabled),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=DISABLE@@ 1=ENABLE,目標Quaternionをaocs_managerに反映する, -,QUATERNION_TARGET_I2T_X,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標Quaternion I2T X, -,QUATERNION_TARGET_I2T_Y,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標Quaternion I2T Y, -,QUATERNION_TARGET_I2T_Z,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標Quaternion I2T Z, -,QUATERNION_TARGET_I2T_W,float,(float)(target_attitude_calculator->quaternion_target_i2t.scalar_part),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標Quaternion I2T W, -,ANG_VEL_TARGET_B_X_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標角速度 機体座標X [rad/s], -,ANG_VEL_TARGET_B_Y_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標角速度 機体座標Y [rad/s], -,ANG_VEL_TARGET_B_Z_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標角速度 機体座標Z [rad/s], -,MAIN_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->main_target_direction),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL,目標方向(main), -,SUB_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->sub_target_direction),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL,目標方向(sub), -,VEC_TO_MAIN_TARGET_BODY_X,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(X), -,VEC_TO_MAIN_TARGET_BODY_Y,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(Y), -,VEC_TO_MAIN_TARGET_BODY_Z,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(Z), -,VEC_TO_SUB_TARGET_BODY_X,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(X), -,VEC_TO_SUB_TARGET_BODY_Y,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(Y), -,VEC_TO_SUB_TARGET_BODY_Z,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(Z), -,TARGET_LATITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),POLY,0,57.324,,,,,,目標地表点の緯度[deg], -,TARGET_LONGITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),POLY,0,57.324,,,,,,目標地表点の経度[deg], -,TARGET_ALTITUDE_m,float,(float)(target_attitude_from_orbit->target_lla_rad_m[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標地表点の高度[m], -,OFFSET_ANGLE_AXIS,uint8_t,(uint8_t)(target_attitude_from_orbit->offset_angle_axis),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,0=+X@@ 1=+Y@@ 2=+Z,オフセット角を与える軸, -,OFFSET_ANGLE_deg,float,(float)(target_attitude_from_orbit->offset_angle_rad),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),POLY,0,57.324,,,,,,オフセット角[deg], -,CURRENT_TARGET_NUM,uint8_t,(uint8_t)(quaternion_interpolator->current_target_num),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,現在の目標Quaternion数, -,CURRENT_TARGET_INDEX,uint8_t,(uint8_t)(quaternion_interpolator->index),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,現在の目標QuaternionのINDEX, -,PREVIOUS_ATTITUDE_CHANGED_TI,uint32_t,(uint32_t)(quaternion_interpolator->previous_attitude_changed_ti),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,前回の姿勢変更完了予定時刻, -,PREVIOUS_QUATERNION_TARGET_I2T_X,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,前回の目標Quaternion I2T X, -,PREVIOUS_QUATERNION_TARGET_I2T_Y,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,前回の目標Quaternion I2T Y, -,PREVIOUS_QUATERNION_TARGET_I2T_Z,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,前回の目標Quaternion I2T Z, -,PREVIOUS_QUATERNION_TARGET_I2T_W,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.scalar_part),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,前回の目標Quaternion I2T W, -,MEG_SELECTOR_STATE,uint8_t,(uint8_t)(magnetometer_selector->state),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=RM_AOBC@@ 1=RM_EXT@@ 2=MPU@@ 3=FUSION,磁気センサセレクタ状態, -,MEG_SELECTOR_AUTO_FLAG,uint8_t,(uint8_t)(magnetometer_selector->auto_flag),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=Manual@@ 1=Auto,磁気センサセレクタ自動選択フラグ, -,GYRO_SELECTOR_STATE,uint8_t,(uint8_t)(gyro_selector->state),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MPU@@ 1=STIM@@ 2=FUSION,ジャイロセンサセレクタ状態, -,GYRO_SELECTOR_AUTO_FLAG,uint8_t,(uint8_t)(gyro_selector->auto_flag),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=Manual@@ 1=Auto,ジャイロセンサセレクタ自動選択フラグ, -,SUNSENSOR_SELECTOR_INTENSITY_THRESHOLD.UPPER,float,(float)(sun_sensor_selector->sun_intensity_upper_threshold_percent),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,SUNSENSOR_SELECTOR_INTENSITY_THRESHOLD.LOWER,float,(float)(sun_sensor_selector->sun_intensity_lower_threshold_percent),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,FINE_THREE_AXIS_DETERMINATION_METHOD,uint8_t,(uint8_t)(fine_three_axis_determination->method),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=STT@@ 1=EKF,精三軸決定手法, -,MM.IS_AUTO_MODE_TRANSITION_ENABLED,uint8_t,(uint8_t)(aocs_mode_manager->is_enabled_auto_mode_transition),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=disable@@ 1=enable,自動モード遷移Enableフラグ, -,MM.ANG_VEL_CONV_LIMIT_rad_s,float,(float)(aocs_mode_manager->ang_vel_conv_limit_rad_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,角速度収束判定角速度閾値, -,MM.ANG_VEL_CONV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->ang_vel_conv_time_limit_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,角速度収束判定時間閾値, -,MM.ANG_VEL_NORM_INCREASE_LIMIT_rad_s,float,(float)(aocs_mode_manager->ang_vel_norm_increase_limit_rad_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,角速度ノルム上昇閾値, -,MM.ANG_VEL_ANOMALY_DETECTION_PERIOD_s,float,(float)(aocs_mode_manager->ang_vel_anomaly_detection_period_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アノマリ検知周期, -,MM.SUN_ANG_DIV_LIMIT_rad,float,(float)(aocs_mode_manager->sun_angle_div_limit_rad),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,太陽補足発散判定角度閾値, -,MM.SUN_ANG_DIV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->sun_angle_div_time_limit_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,太陽補足発散判定時間閾値, -,MM.3AXIS_ANG_DIV_LIMIT_rad,float,(float)(aocs_mode_manager->three_axis_div_limit_rad),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,三軸制御発散判定角度閾値, -,MM.3AXIS_DIV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->three_axis_div_time_limit_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,三軸制御発散判定時間閾値, -,MM.SS_INVISIBLE_TIME_LIMIT_s,float,(float)(aocs_mode_manager->sun_invisible_time_limit_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,太陽センサ非可視時間閾値, -,MM.STT_INVISIBLE_TIME_LIMIT_s,float,(float)(aocs_mode_manager->stt_invisible_time_limit_s),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,STT非可視時間閾値, -,TIME_SPACE_OFFSET_TIME_s,float,(float)(time_space_calculator->offset_sec),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,計算結果を使用する時刻と実行時刻の間のオフセット, -,ROUGH_THREE_AXIS_DETERMINATION.METHOD,uint8_t,(uint8_t)(rough_three_axis_determination->method),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=TRIAD@@ 1=Qmethod,粗三軸決定手法, -,ROUGH_THREE_AXIS_DETERMINATION.SUN_INVISIBLE_PROPAGATION,uint8_t,(uint8_t)(rough_three_axis_determination->sun_invisible_propagation),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=SunVector@@ 1=Quaternion,粗三軸決定時に太陽が見えないときの伝搬手法, -,ROUGH_THREE_AXIS_DETERMINATION.SUN_VEC_WEIGHT,float,(float)(rough_three_axis_determination->q_method_info.sun_vec_weight),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,Qmethodにおける太陽方向ベクトルの重み, -,ROUGH_THREE_AXIS_DETERMINATION.MAG_VEC_WEIGHT,float,(float)(rough_three_axis_determination->q_method_info.mag_vec_weight),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,Qmethodにおける磁場方向ベクトルの重み, +,SELECTOR.MAG.STATE,uint8_t,(uint8_t)(magnetometer_selector->state),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=RM_AOBC@@ 1=RM_EXT@@ 2=MPU@@ 3=FUSION,磁気センサセレクタ状態, +,SELECTOR.MAG.AUTO_FLAG,uint8_t,(uint8_t)(magnetometer_selector->auto_flag),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=Manual@@ 1=Auto,磁気センサセレクタ自動選択フラグ, +,SELECTOR.GYRO.STATE,uint8_t,(uint8_t)(gyro_selector->state),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MPU@@ 1=STIM@@ 2=FUSION,ジャイロセンサセレクタ状態, +,SELECTOR.GYRO.AUTO_FLAG,uint8_t,(uint8_t)(gyro_selector->auto_flag),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=Manual@@ 1=Auto,ジャイロセンサセレクタ自動選択フラグ, +,SELECTOR.SUN_SENSOR.INTENSITY_THRESHOLD.UPPER,float,(float)(sun_sensor_selector->sun_intensity_upper_threshold_percent),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,太陽センサセレクタ光強度上限閾値, +,SELECTOR.SUN_SENSOR.INTENSITY_THRESHOLD.LOWER,float,(float)(sun_sensor_selector->sun_intensity_lower_threshold_percent),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,太陽センサセレクタ光強度下限閾値, +,DETERMINATION.ROUGH_THREE_AXIS.METHOD,uint8_t,(uint8_t)(rough_three_axis_determination->method),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=TRIAD@@ 1=Qmethod,粗三軸決定手法, +,DETERMINATION.ROUGH_THREE_AXIS.SUN_INVISIBLE_PROPAGATION,uint8_t,(uint8_t)(rough_three_axis_determination->sun_invisible_propagation),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=SunVector@@ 1=Quaternion,粗三軸決定時に太陽が見えないときの伝搬手法, +,DETERMINATION.ROUGH_THREE_AXIS.SUN_VEC_WEIGHT,float,(float)(rough_three_axis_determination->q_method_info.sun_vec_weight),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,Qmethodにおける太陽方向ベクトルの重み, +,DETERMINATION.ROUGH_THREE_AXIS.MAG_VEC_WEIGHT,float,(float)(rough_three_axis_determination->q_method_info.mag_vec_weight),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,Qmethodにおける磁場方向ベクトルの重み, +,DETERMINATION.FINE_THREE_AXIS_METHOD,uint8_t,(uint8_t)(fine_three_axis_determination->method),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=STT@@ 1=EKF,精三軸決定手法, +,CONTROL.ERROR.ANGULAR_VELOCITY.BODY_X_rad_s,float,(float)(aocs_manager->ang_vel_error_body_rad_s[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,制御角速度誤差 Body-X [rad/s], +,CONTROL.ERROR.ANGULAR_VELOCITY.BODY_Y_rad_s,float,(float)(aocs_manager->ang_vel_error_body_rad_s[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,制御角速度誤差 Body-Y [rad/s], +,CONTROL.ERROR.ANGULAR_VELOCITY.BODY_Z_rad_s,float,(float)(aocs_manager->ang_vel_error_body_rad_s[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,制御角速度誤差 Body-Z [rad/s], +,CONTROL.ERROR.QUATERNION_B2T.X,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,制御誤差Quaternoin Body->Target X, +,CONTROL.ERROR.QUATERNION_B2T.Y,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,制御誤差Quaternoin Body->Target Y, +,CONTROL.ERROR.QUATERNION_B2T.Z,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,制御誤差Quaternoin Body->Target Z, +,CONTROL.ERROR.QUATERNION_B2T.W,float,(float)(aocs_manager->quaternion_error_b2t.scalar_part),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,制御誤差Quaternoin Body->Target W, +,CONTROL.ERROR.SUN_DIRECTION_rad,float,(float)(aocs_manager->sun_vec_error_rad),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,制御太陽角度誤差 [rad], ,UNLOADING.CONTROL_GAIN,float,(float)(unloading->control_gain),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アンローディングにおけるMTQ出力ゲイン, ,UNLOADING.EXEC_IS_ENABLE,uint8_t,(uint8_t)(unloading->exec_is_enable),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=ENABLE@@ 1=DISABLE,アンローディング出力が有効かどうか, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, +,UNLOADING.THRESHOLD.X.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[0]) ,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アンローディング上限閾値 RW-X [rad/s], +,UNLOADING.THRESHOLD.X.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アンローディング目標 RW-X [rad/s], +,UNLOADING.THRESHOLD.X.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アンローディング下限閾値 RW-X [rad/s], +,UNLOADING.THRESHOLD.Y.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[1]) ,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アンローディング上限閾値 RW-Y [rad/s], +,UNLOADING.THRESHOLD.Y.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アンローディング目標 RW-Y [rad/s], +,UNLOADING.THRESHOLD.Y.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アンローディング下限閾値 RW-Y [rad/s], +,UNLOADING.THRESHOLD.Z.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[2]) ,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アンローディング上限閾値 RW-Z [rad/s], +,UNLOADING.THRESHOLD.Z.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アンローディング目標 RW-Z [rad/s], +,UNLOADING.THRESHOLD.Z.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,アンローディング下限閾値 RW-Z [rad/s], +,TARGET.CALC_MODE,uint8_t,(uint8_t)(target_attitude_calculator->mode),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MANUAL@@ 1=CALCULATION_FROM_ORBIT@@ 2=INTERPOLATION,目標Quaternion計算方法, +,TARGET.CALC_ENABLE,uint8_t,(uint8_t)(target_attitude_calculator->is_enabled),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=DISABLE@@ 1=ENABLE,目標Quaternionをaocs_managerに反映する, +,TARGET.QUATERNION_TARGET_I2T_X,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標Quaternion I2T X, +,TARGET.QUATERNION_TARGET_I2T_Y,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標Quaternion I2T Y, +,TARGET.QUATERNION_TARGET_I2T_Z,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標Quaternion I2T Z, +,TARGET.QUATERNION_TARGET_I2T_W,float,(float)(target_attitude_calculator->quaternion_target_i2t.scalar_part),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標Quaternion I2T W, +,TARGET.ANG_VEL_TARGET_B_X_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標角速度 機体座標X [rad/s], +,TARGET.ANG_VEL_TARGET_B_Y_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標角速度 機体座標Y [rad/s], +,TARGET.ANG_VEL_TARGET_B_Z_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,オンボード計算した目標角速度 機体座標Z [rad/s], +,TARGET.FROM_ORBIT.MAIN_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->main_target_direction),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL,目標方向(main), +,TARGET.FROM_ORBIT.SUB_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->sub_target_direction),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL,目標方向(sub), +,TARGET.FROM_ORBIT.VEC_TO_MAIN_TARGET_BODY_X,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(X), +,TARGET.FROM_ORBIT.VEC_TO_MAIN_TARGET_BODY_Y,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(Y), +,TARGET.FROM_ORBIT.VEC_TO_MAIN_TARGET_BODY_Z,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(Z), +,TARGET.FROM_ORBIT.VEC_TO_SUB_TARGET_BODY_X,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(X), +,TARGET.FROM_ORBIT.VEC_TO_SUB_TARGET_BODY_Y,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(Y), +,TARGET.FROM_ORBIT.VEC_TO_SUB_TARGET_BODY_Z,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(Z), +,TARGET.FROM_ORBIT.LATITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),POLY,0,57.324,,,,,,目標地表点の緯度[deg], +,TARGET.FROM_ORBIT.LONGITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),POLY,0,57.324,,,,,,目標地表点の経度[deg], +,TARGET.FROM_ORBIT.ALTITUDE_m,float,(float)(target_attitude_from_orbit->target_lla_rad_m[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,目標地表点の高度[m], +,TARGET.FROM_ORBIT.OFFSET_ANGLE_AXIS,uint8_t,(uint8_t)(target_attitude_from_orbit->offset_angle_axis),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,0=+X@@ 1=+Y@@ 2=+Z,オフセット角を与える軸, +,TARGET.FROM_ORBIT.OFFSET_ANGLE_deg,float,(float)(target_attitude_from_orbit->offset_angle_rad),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),POLY,0,57.324,,,,,,オフセット角[deg], +,TARGET.INTERPOLATION.CURRENT_TARGET_NUM,uint8_t,(uint8_t)(quaternion_interpolator->current_target_num),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,現在の目標Quaternion数, +,TARGET.INTERPOLATION.CURRENT_TARGET_INDEX,uint8_t,(uint8_t)(quaternion_interpolator->index),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,現在の目標QuaternionのINDEX, +,TARGET.INTERPOLATION.PREVIOUS_ATTITUDE_CHANGED_TI,uint32_t,(uint32_t)(quaternion_interpolator->previous_attitude_changed_ti),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,前回の姿勢変更完了予定時刻, +,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_X,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[0]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,前回の目標Quaternion I2T X, +,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_Y,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[1]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,前回の目標Quaternion I2T Y, +,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_Z,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[2]),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,前回の目標Quaternion I2T Z, +,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_W,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.scalar_part),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,前回の目標Quaternion I2T W, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_ANOMALY.csv b/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_ANOMALY.csv index a9e5c52c..0e37ba73 100644 --- a/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_ANOMALY.csv +++ b/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_ANOMALY.csv @@ -44,17 +44,17 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,TEMPERATURE.THRESHOLD.RW_Z_LOWER_DEGC,float,(float)temperature_anomaly->threshold_list[APP_TEMPERATURE_ANOMALY_IDX_RW_Z].lower_degC,PACKET,110,0,32,NONE,,,,,,,,RW_Z温度下限, ,TEMPERATURE.THRESHOLD.GPSR_UPPER_DEGC,float,(float)temperature_anomaly->threshold_list[APP_TEMPERATURE_ANOMALY_IDX_GPSR].upper_degC,PACKET,114,0,32,NONE,,,,,,,,GPSR温度上限, ,TEMPERATURE.THRESHOLD.GPSR_LOWER_DEGC,float,(float)temperature_anomaly->threshold_list[APP_TEMPERATURE_ANOMALY_IDX_GPSR].lower_degC,PACKET,118,0,32,NONE,,,,,,,,GPSR温度下限, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, +,MODE_MANAGER.IS_AUTO_MODE_TRANSITION_ENABLED,uint8_t,(uint8_t)(aocs_mode_manager->is_enabled_auto_mode_transition),PACKET,122,0,8,STATUS,,,,,,,0=disable@@ 1=enable,自動モード遷移Enableフラグ, +,MODE_MANAGER.ANG_VEL_CONV_LIMIT_rad_s,float,(float)(aocs_mode_manager->ang_vel_conv_limit_rad_s),PACKET,123,0,32,NONE,,,,,,,,角速度収束判定角速度閾値, +,MODE_MANAGER.ANG_VEL_CONV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->ang_vel_conv_time_limit_s),PACKET,127,0,32,NONE,,,,,,,,角速度収束判定時間閾値, +,MODE_MANAGER.ANG_VEL_NORM_INCREASE_LIMIT_rad_s,float,(float)(aocs_mode_manager->ang_vel_norm_increase_limit_rad_s),PACKET,131,0,32,NONE,,,,,,,,角速度ノルム上昇閾値, +,MODE_MANAGER.ANG_VEL_ANOMALY_DETECTION_PERIOD_s,float,(float)(aocs_mode_manager->ang_vel_anomaly_detection_period_s),PACKET,135,0,32,NONE,,,,,,,,アノマリ検知周期, +,MODE_MANAGER.SUN_ANG_DIV_LIMIT_rad,float,(float)(aocs_mode_manager->sun_angle_div_limit_rad),PACKET,139,0,32,NONE,,,,,,,,太陽補足発散判定角度閾値, +,MODE_MANAGER.SUN_ANG_DIV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->sun_angle_div_time_limit_s),PACKET,143,0,32,NONE,,,,,,,,太陽補足発散判定時間閾値, +,MODE_MANAGER.3AXIS_ANG_DIV_LIMIT_rad,float,(float)(aocs_mode_manager->three_axis_div_limit_rad),PACKET,147,0,32,NONE,,,,,,,,三軸制御発散判定角度閾値, +,MODE_MANAGER.3AXIS_DIV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->three_axis_div_time_limit_s),PACKET,151,0,32,NONE,,,,,,,,三軸制御発散判定時間閾値, +,MODE_MANAGER.SS_INVISIBLE_TIME_LIMIT_s,float,(float)(aocs_mode_manager->sun_invisible_time_limit_s),PACKET,155,0,32,NONE,,,,,,,,太陽センサ非可視時間閾値, +,MODE_MANAGER.STT_INVISIBLE_TIME_LIMIT_s,float,(float)(aocs_mode_manager->stt_invisible_time_limit_s),PACKET,159,0,32,NONE,,,,,,,,STT非可視時間閾値, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_AOCS_MANAGER.csv b/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_AOCS_MANAGER.csv index 4f7fb363..95a8d581 100644 --- a/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_AOCS_MANAGER.csv +++ b/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_AOCS_MANAGER.csv @@ -66,7 +66,7 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,CONST_TORQUE.BODY_X_Nm,float,(float)(aocs_manager->constant_torque_body_Nm[0]),PACKET,196,0,32,NONE,,,,,,,,固定トルク機体固定座標系_X, ,CONST_TORQUE.BODY_Y_Nm,float,(float)(aocs_manager->constant_torque_body_Nm[1]),PACKET,200,0,32,NONE,,,,,,,,固定トルク機体固定座標系_Y, ,CONST_TORQUE.BODY_Z_Nm,float,(float)(aocs_manager->constant_torque_body_Nm[2]),PACKET,204,0,32,NONE,,,,,,,,固定トルク機体固定座標系_Z, -,,,,,,,,,,,,,,,,, +,TIME_SPACE_OFFSET_TIME_s,float,(float)(time_space_calculator->offset_sec),PACKET,208,0,32,NONE,,,,,,,,計算結果を使用する時刻と実行時刻の間のオフセット, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_COMPONENTS.csv b/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_COMPONENTS.csv index 892fd8a8..1783eb44 100644 --- a/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_COMPONENTS.csv +++ b/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_COMPONENTS.csv @@ -73,7 +73,7 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,RWX.TEMPERATURE_DEGC,float,(float)(rw0003_driver[RW0003_IDX_ON_X]->info.temperature_degC),PACKET,219,0,32,NONE,,,,,,,,RW0003_Xの温度, ,RWY.TEMPERATURE_DEGC,float,(float)(rw0003_driver[RW0003_IDX_ON_Y]->info.temperature_degC),PACKET,223,0,32,NONE,,,,,,,,RW0003_Yの温度, ,RWZ.TEMPERATURE_DEGC,float,(float)(rw0003_driver[RW0003_IDX_ON_Z]->info.temperature_degC),PACKET,227,0,32,NONE,,,,,,,,RW0003_Zの温度, -,,,,,,,,,,,,,,,,, +,MTQ_SEIREN_CONTROLLER_DEMAGNITIZATION_TIME_MS,uint32_t,(uint32_t)(mtq_seiren_controller->mtq_demagnetization_required_time_ms),PACKET,231,0,32,NONE,,,,,,,,MTQの消磁に必要な時間[ms], ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_CONTROL.csv b/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_CONTROL.csv index eabd7c97..bbd62ba9 100644 --- a/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_CONTROL.csv +++ b/database/TLM_DB/calced_data/AOBC_TLM_DB_AOBC_CONTROL.csv @@ -25,65 +25,65 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,BDOT.GAIN_Z,float,(float)(bdot->control_gain[2]),PACKET,34,0,32,NONE,,,,,,,,body座標系z軸に関するBdot則制御ゲイン, ,BDOT.MINIMUM_TIME_DERIVATIVE_STEP_MS,uint32_t,(uint32_t)(bdot->minimum_time_derivative_step_ms),PACKET,38,0,32,NONE,,,,,,,,Bdot則における磁場ベクトル時間微分計算の最小タイムステップ[ms], ,BDOT.MTQ_OUTPUT_TIME_LENGTH_MS,uint32_t,(uint32_t)(bdot->mtq_output_time_length_ms),PACKET,42,0,32,NONE,,,,,,,,Bdot則におけるMTQ出力継続時間[ms], -,MTQ_SEIREN_CONTROLLER_DEMAGNITIZATION_TIME_MS,uint32_t,(uint32_t)(mtq_seiren_controller->mtq_demagnetization_required_time_ms),PACKET,46,0,32,NONE,,,,,,,,MTQの消磁に必要な時間[ms], -,TARGET_CALC_MODE,uint8_t,(uint8_t)(target_attitude_calculator->mode),PACKET,50,0,8,STATUS,,,,,,,0=MANUAL@@ 1=CALCULATION_FROM_ORBIT@@ 2=INTERPOLATION,目標Quaternion計算方法, -,TARGET_CALC_ENABLE,uint8_t,(uint8_t)(target_attitude_calculator->is_enabled),PACKET,51,0,8,STATUS,,,,,,,0=DISABLE@@ 1=ENABLE,目標Quaternionをaocs_managerに反映する, -,QUATERNION_TARGET_I2T_X,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[0]),PACKET,52,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T X, -,QUATERNION_TARGET_I2T_Y,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[1]),PACKET,56,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T Y, -,QUATERNION_TARGET_I2T_Z,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[2]),PACKET,60,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T Z, -,QUATERNION_TARGET_I2T_W,float,(float)(target_attitude_calculator->quaternion_target_i2t.scalar_part),PACKET,64,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T W, -,ANG_VEL_TARGET_B_X_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[0]),PACKET,68,0,32,NONE,,,,,,,,オンボード計算した目標角速度 機体座標X [rad/s], -,ANG_VEL_TARGET_B_Y_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[1]),PACKET,72,0,32,NONE,,,,,,,,オンボード計算した目標角速度 機体座標Y [rad/s], -,ANG_VEL_TARGET_B_Z_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[2]),PACKET,76,0,32,NONE,,,,,,,,オンボード計算した目標角速度 機体座標Z [rad/s], -,MAIN_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->main_target_direction),PACKET,80,0,8,STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL,目標方向(main), -,SUB_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->sub_target_direction),PACKET,81,0,8,STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL,目標方向(sub), -,VEC_TO_MAIN_TARGET_BODY_X,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[0]),PACKET,82,0,32,NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(X), -,VEC_TO_MAIN_TARGET_BODY_Y,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[1]),PACKET,86,0,32,NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(Y), -,VEC_TO_MAIN_TARGET_BODY_Z,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[2]),PACKET,90,0,32,NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(Z), -,VEC_TO_SUB_TARGET_BODY_X,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[0]),PACKET,94,0,32,NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(X), -,VEC_TO_SUB_TARGET_BODY_Y,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[1]),PACKET,98,0,32,NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(Y), -,VEC_TO_SUB_TARGET_BODY_Z,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[2]),PACKET,102,0,32,NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(Z), -,TARGET_LATITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[0]),PACKET,106,0,32,POLY,0,57.324,,,,,,目標地表点の緯度[deg], -,TARGET_LONGITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[1]),PACKET,110,0,32,POLY,0,57.324,,,,,,目標地表点の経度[deg], -,TARGET_ALTITUDE_m,float,(float)(target_attitude_from_orbit->target_lla_rad_m[2]),PACKET,114,0,32,NONE,,,,,,,,目標地表点の高度[m], -,OFFSET_ANGLE_AXIS,uint8_t,(uint8_t)(target_attitude_from_orbit->offset_angle_axis),PACKET,118,0,8,NONE,,,,,,,0=+X@@ 1=+Y@@ 2=+Z,オフセット角を与える軸, -,OFFSET_ANGLE_deg,float,(float)(target_attitude_from_orbit->offset_angle_rad),PACKET,119,0,32,POLY,0,57.324,,,,,,オフセット角[deg], -,CURRENT_TARGET_NUM,uint8_t,(uint8_t)(quaternion_interpolator->current_target_num),PACKET,123,0,8,NONE,,,,,,,,現在の目標Quaternion数, -,CURRENT_TARGET_INDEX,uint8_t,(uint8_t)(quaternion_interpolator->index),PACKET,124,0,8,NONE,,,,,,,,現在の目標QuaternionのINDEX, -,PREVIOUS_ATTITUDE_CHANGED_TI,uint32_t,(uint32_t)(quaternion_interpolator->previous_attitude_changed_ti),PACKET,125,0,32,NONE,,,,,,,,前回の姿勢変更完了予定時刻, -,PREVIOUS_QUATERNION_TARGET_I2T_X,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[0]),PACKET,129,0,32,NONE,,,,,,,,前回の目標Quaternion I2T X, -,PREVIOUS_QUATERNION_TARGET_I2T_Y,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[1]),PACKET,133,0,32,NONE,,,,,,,,前回の目標Quaternion I2T Y, -,PREVIOUS_QUATERNION_TARGET_I2T_Z,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[2]),PACKET,137,0,32,NONE,,,,,,,,前回の目標Quaternion I2T Z, -,PREVIOUS_QUATERNION_TARGET_I2T_W,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.scalar_part),PACKET,141,0,32,NONE,,,,,,,,前回の目標Quaternion I2T W, -,MEG_SELECTOR_STATE,uint8_t,(uint8_t)(magnetometer_selector->state),PACKET,145,0,8,STATUS,,,,,,,0=RM_AOBC@@ 1=RM_EXT@@ 2=MPU@@ 3=FUSION,磁気センサセレクタ状態, -,MEG_SELECTOR_AUTO_FLAG,uint8_t,(uint8_t)(magnetometer_selector->auto_flag),PACKET,146,0,8,STATUS,,,,,,,0=Manual@@ 1=Auto,磁気センサセレクタ自動選択フラグ, -,GYRO_SELECTOR_STATE,uint8_t,(uint8_t)(gyro_selector->state),PACKET,147,0,8,STATUS,,,,,,,0=MPU@@ 1=STIM@@ 2=FUSION,ジャイロセンサセレクタ状態, -,GYRO_SELECTOR_AUTO_FLAG,uint8_t,(uint8_t)(gyro_selector->auto_flag),PACKET,148,0,8,STATUS,,,,,,,0=Manual@@ 1=Auto,ジャイロセンサセレクタ自動選択フラグ, -,SUNSENSOR_SELECTOR_INTENSITY_THRESHOLD.UPPER,float,(float)(sun_sensor_selector->sun_intensity_upper_threshold_percent),PACKET,149,0,32,NONE,,,,,,,,, -,SUNSENSOR_SELECTOR_INTENSITY_THRESHOLD.LOWER,float,(float)(sun_sensor_selector->sun_intensity_lower_threshold_percent),PACKET,153,0,32,NONE,,,,,,,,, -,FINE_THREE_AXIS_DETERMINATION_METHOD,uint8_t,(uint8_t)(fine_three_axis_determination->method),PACKET,157,0,8,STATUS,,,,,,,0=STT@@ 1=EKF,精三軸決定手法, -,MM.IS_AUTO_MODE_TRANSITION_ENABLED,uint8_t,(uint8_t)(aocs_mode_manager->is_enabled_auto_mode_transition),PACKET,158,0,8,STATUS,,,,,,,0=disable@@ 1=enable,自動モード遷移Enableフラグ, -,MM.ANG_VEL_CONV_LIMIT_rad_s,float,(float)(aocs_mode_manager->ang_vel_conv_limit_rad_s),PACKET,159,0,32,NONE,,,,,,,,角速度収束判定角速度閾値, -,MM.ANG_VEL_CONV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->ang_vel_conv_time_limit_s),PACKET,163,0,32,NONE,,,,,,,,角速度収束判定時間閾値, -,MM.ANG_VEL_NORM_INCREASE_LIMIT_rad_s,float,(float)(aocs_mode_manager->ang_vel_norm_increase_limit_rad_s),PACKET,167,0,32,NONE,,,,,,,,角速度ノルム上昇閾値, -,MM.ANG_VEL_ANOMALY_DETECTION_PERIOD_s,float,(float)(aocs_mode_manager->ang_vel_anomaly_detection_period_s),PACKET,171,0,32,NONE,,,,,,,,アノマリ検知周期, -,MM.SUN_ANG_DIV_LIMIT_rad,float,(float)(aocs_mode_manager->sun_angle_div_limit_rad),PACKET,175,0,32,NONE,,,,,,,,太陽補足発散判定角度閾値, -,MM.SUN_ANG_DIV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->sun_angle_div_time_limit_s),PACKET,179,0,32,NONE,,,,,,,,太陽補足発散判定時間閾値, -,MM.3AXIS_ANG_DIV_LIMIT_rad,float,(float)(aocs_mode_manager->three_axis_div_limit_rad),PACKET,183,0,32,NONE,,,,,,,,三軸制御発散判定角度閾値, -,MM.3AXIS_DIV_TIME_LIMIT_s,float,(float)(aocs_mode_manager->three_axis_div_time_limit_s),PACKET,187,0,32,NONE,,,,,,,,三軸制御発散判定時間閾値, -,MM.SS_INVISIBLE_TIME_LIMIT_s,float,(float)(aocs_mode_manager->sun_invisible_time_limit_s),PACKET,191,0,32,NONE,,,,,,,,太陽センサ非可視時間閾値, -,MM.STT_INVISIBLE_TIME_LIMIT_s,float,(float)(aocs_mode_manager->stt_invisible_time_limit_s),PACKET,195,0,32,NONE,,,,,,,,STT非可視時間閾値, -,TIME_SPACE_OFFSET_TIME_s,float,(float)(time_space_calculator->offset_sec),PACKET,199,0,32,NONE,,,,,,,,計算結果を使用する時刻と実行時刻の間のオフセット, -,ROUGH_THREE_AXIS_DETERMINATION.METHOD,uint8_t,(uint8_t)(rough_three_axis_determination->method),PACKET,203,0,8,STATUS,,,,,,,0=TRIAD@@ 1=Qmethod,粗三軸決定手法, -,ROUGH_THREE_AXIS_DETERMINATION.SUN_INVISIBLE_PROPAGATION,uint8_t,(uint8_t)(rough_three_axis_determination->sun_invisible_propagation),PACKET,204,0,8,STATUS,,,,,,,0=SunVector@@ 1=Quaternion,粗三軸決定時に太陽が見えないときの伝搬手法, -,ROUGH_THREE_AXIS_DETERMINATION.SUN_VEC_WEIGHT,float,(float)(rough_three_axis_determination->q_method_info.sun_vec_weight),PACKET,205,0,32,NONE,,,,,,,,Qmethodにおける太陽方向ベクトルの重み, -,ROUGH_THREE_AXIS_DETERMINATION.MAG_VEC_WEIGHT,float,(float)(rough_three_axis_determination->q_method_info.mag_vec_weight),PACKET,209,0,32,NONE,,,,,,,,Qmethodにおける磁場方向ベクトルの重み, -,UNLOADING.CONTROL_GAIN,float,(float)(unloading->control_gain),PACKET,213,0,32,NONE,,,,,,,,アンローディングにおけるMTQ出力ゲイン, -,UNLOADING.EXEC_IS_ENABLE,uint8_t,(uint8_t)(unloading->exec_is_enable),PACKET,217,0,8,STATUS,,,,,,,0=ENABLE@@ 1=DISABLE,アンローディング出力が有効かどうか, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, +,SELECTOR.MAG.STATE,uint8_t,(uint8_t)(magnetometer_selector->state),PACKET,46,0,8,STATUS,,,,,,,0=RM_AOBC@@ 1=RM_EXT@@ 2=MPU@@ 3=FUSION,磁気センサセレクタ状態, +,SELECTOR.MAG.AUTO_FLAG,uint8_t,(uint8_t)(magnetometer_selector->auto_flag),PACKET,47,0,8,STATUS,,,,,,,0=Manual@@ 1=Auto,磁気センサセレクタ自動選択フラグ, +,SELECTOR.GYRO.STATE,uint8_t,(uint8_t)(gyro_selector->state),PACKET,48,0,8,STATUS,,,,,,,0=MPU@@ 1=STIM@@ 2=FUSION,ジャイロセンサセレクタ状態, +,SELECTOR.GYRO.AUTO_FLAG,uint8_t,(uint8_t)(gyro_selector->auto_flag),PACKET,49,0,8,STATUS,,,,,,,0=Manual@@ 1=Auto,ジャイロセンサセレクタ自動選択フラグ, +,SELECTOR.SUN_SENSOR.INTENSITY_THRESHOLD.UPPER,float,(float)(sun_sensor_selector->sun_intensity_upper_threshold_percent),PACKET,50,0,32,NONE,,,,,,,,太陽センサセレクタ光強度上限閾値, +,SELECTOR.SUN_SENSOR.INTENSITY_THRESHOLD.LOWER,float,(float)(sun_sensor_selector->sun_intensity_lower_threshold_percent),PACKET,54,0,32,NONE,,,,,,,,太陽センサセレクタ光強度下限閾値, +,DETERMINATION.ROUGH_THREE_AXIS.METHOD,uint8_t,(uint8_t)(rough_three_axis_determination->method),PACKET,58,0,8,STATUS,,,,,,,0=TRIAD@@ 1=Qmethod,粗三軸決定手法, +,DETERMINATION.ROUGH_THREE_AXIS.SUN_INVISIBLE_PROPAGATION,uint8_t,(uint8_t)(rough_three_axis_determination->sun_invisible_propagation),PACKET,59,0,8,STATUS,,,,,,,0=SunVector@@ 1=Quaternion,粗三軸決定時に太陽が見えないときの伝搬手法, +,DETERMINATION.ROUGH_THREE_AXIS.SUN_VEC_WEIGHT,float,(float)(rough_three_axis_determination->q_method_info.sun_vec_weight),PACKET,60,0,32,NONE,,,,,,,,Qmethodにおける太陽方向ベクトルの重み, +,DETERMINATION.ROUGH_THREE_AXIS.MAG_VEC_WEIGHT,float,(float)(rough_three_axis_determination->q_method_info.mag_vec_weight),PACKET,64,0,32,NONE,,,,,,,,Qmethodにおける磁場方向ベクトルの重み, +,DETERMINATION.FINE_THREE_AXIS_METHOD,uint8_t,(uint8_t)(fine_three_axis_determination->method),PACKET,68,0,8,STATUS,,,,,,,0=STT@@ 1=EKF,精三軸決定手法, +,CONTROL.ERROR.ANGULAR_VELOCITY.BODY_X_rad_s,float,(float)(aocs_manager->ang_vel_error_body_rad_s[0]),PACKET,69,0,32,NONE,,,,,,,,制御角速度誤差 Body-X [rad/s], +,CONTROL.ERROR.ANGULAR_VELOCITY.BODY_Y_rad_s,float,(float)(aocs_manager->ang_vel_error_body_rad_s[1]),PACKET,73,0,32,NONE,,,,,,,,制御角速度誤差 Body-Y [rad/s], +,CONTROL.ERROR.ANGULAR_VELOCITY.BODY_Z_rad_s,float,(float)(aocs_manager->ang_vel_error_body_rad_s[2]),PACKET,77,0,32,NONE,,,,,,,,制御角速度誤差 Body-Z [rad/s], +,CONTROL.ERROR.QUATERNION_B2T.X,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[0]),PACKET,81,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target X, +,CONTROL.ERROR.QUATERNION_B2T.Y,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[1]),PACKET,85,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target Y, +,CONTROL.ERROR.QUATERNION_B2T.Z,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[2]),PACKET,89,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target Z, +,CONTROL.ERROR.QUATERNION_B2T.W,float,(float)(aocs_manager->quaternion_error_b2t.scalar_part),PACKET,93,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target W, +,CONTROL.ERROR.SUN_DIRECTION_rad,float,(float)(aocs_manager->sun_vec_error_rad),PACKET,97,0,32,NONE,,,,,,,,制御太陽角度誤差 [rad], +,UNLOADING.CONTROL_GAIN,float,(float)(unloading->control_gain),PACKET,101,0,32,NONE,,,,,,,,アンローディングにおけるMTQ出力ゲイン, +,UNLOADING.EXEC_IS_ENABLE,uint8_t,(uint8_t)(unloading->exec_is_enable),PACKET,105,0,8,STATUS,,,,,,,0=ENABLE@@ 1=DISABLE,アンローディング出力が有効かどうか, +,UNLOADING.THRESHOLD.X.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[0]) ,PACKET,106,0,32,NONE,,,,,,,,アンローディング上限閾値 RW-X [rad/s], +,UNLOADING.THRESHOLD.X.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[0]),PACKET,110,0,32,NONE,,,,,,,,アンローディング目標 RW-X [rad/s], +,UNLOADING.THRESHOLD.X.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[0]),PACKET,114,0,32,NONE,,,,,,,,アンローディング下限閾値 RW-X [rad/s], +,UNLOADING.THRESHOLD.Y.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[1]) ,PACKET,118,0,32,NONE,,,,,,,,アンローディング上限閾値 RW-Y [rad/s], +,UNLOADING.THRESHOLD.Y.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[1]),PACKET,122,0,32,NONE,,,,,,,,アンローディング目標 RW-Y [rad/s], +,UNLOADING.THRESHOLD.Y.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[1]),PACKET,126,0,32,NONE,,,,,,,,アンローディング下限閾値 RW-Y [rad/s], +,UNLOADING.THRESHOLD.Z.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[2]) ,PACKET,130,0,32,NONE,,,,,,,,アンローディング上限閾値 RW-Z [rad/s], +,UNLOADING.THRESHOLD.Z.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[2]),PACKET,134,0,32,NONE,,,,,,,,アンローディング目標 RW-Z [rad/s], +,UNLOADING.THRESHOLD.Z.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[2]),PACKET,138,0,32,NONE,,,,,,,,アンローディング下限閾値 RW-Z [rad/s], +,TARGET.CALC_MODE,uint8_t,(uint8_t)(target_attitude_calculator->mode),PACKET,142,0,8,STATUS,,,,,,,0=MANUAL@@ 1=CALCULATION_FROM_ORBIT@@ 2=INTERPOLATION,目標Quaternion計算方法, +,TARGET.CALC_ENABLE,uint8_t,(uint8_t)(target_attitude_calculator->is_enabled),PACKET,143,0,8,STATUS,,,,,,,0=DISABLE@@ 1=ENABLE,目標Quaternionをaocs_managerに反映する, +,TARGET.QUATERNION_TARGET_I2T_X,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[0]),PACKET,144,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T X, +,TARGET.QUATERNION_TARGET_I2T_Y,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[1]),PACKET,148,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T Y, +,TARGET.QUATERNION_TARGET_I2T_Z,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[2]),PACKET,152,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T Z, +,TARGET.QUATERNION_TARGET_I2T_W,float,(float)(target_attitude_calculator->quaternion_target_i2t.scalar_part),PACKET,156,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T W, +,TARGET.ANG_VEL_TARGET_B_X_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[0]),PACKET,160,0,32,NONE,,,,,,,,オンボード計算した目標角速度 機体座標X [rad/s], +,TARGET.ANG_VEL_TARGET_B_Y_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[1]),PACKET,164,0,32,NONE,,,,,,,,オンボード計算した目標角速度 機体座標Y [rad/s], +,TARGET.ANG_VEL_TARGET_B_Z_rad/s,float,(float)(target_attitude_calculator->ang_vel_target_body_rad_s[2]),PACKET,168,0,32,NONE,,,,,,,,オンボード計算した目標角速度 機体座標Z [rad/s], +,TARGET.FROM_ORBIT.MAIN_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->main_target_direction),PACKET,172,0,8,STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL,目標方向(main), +,TARGET.FROM_ORBIT.SUB_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->sub_target_direction),PACKET,173,0,8,STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL,目標方向(sub), +,TARGET.FROM_ORBIT.VEC_TO_MAIN_TARGET_BODY_X,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[0]),PACKET,174,0,32,NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(X), +,TARGET.FROM_ORBIT.VEC_TO_MAIN_TARGET_BODY_Y,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[1]),PACKET,178,0,32,NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(Y), +,TARGET.FROM_ORBIT.VEC_TO_MAIN_TARGET_BODY_Z,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[2]),PACKET,182,0,32,NONE,,,,,,,,目標方向(main)に向けたいbody座標系ベクトル(Z), +,TARGET.FROM_ORBIT.VEC_TO_SUB_TARGET_BODY_X,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[0]),PACKET,186,0,32,NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(X), +,TARGET.FROM_ORBIT.VEC_TO_SUB_TARGET_BODY_Y,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[1]),PACKET,190,0,32,NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(Y), +,TARGET.FROM_ORBIT.VEC_TO_SUB_TARGET_BODY_Z,float,(float)(target_attitude_from_orbit->vec_to_sub_target_body[2]),PACKET,194,0,32,NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(Z), +,TARGET.FROM_ORBIT.LATITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[0]),PACKET,198,0,32,POLY,0,57.324,,,,,,目標地表点の緯度[deg], +,TARGET.FROM_ORBIT.LONGITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[1]),PACKET,202,0,32,POLY,0,57.324,,,,,,目標地表点の経度[deg], +,TARGET.FROM_ORBIT.ALTITUDE_m,float,(float)(target_attitude_from_orbit->target_lla_rad_m[2]),PACKET,206,0,32,NONE,,,,,,,,目標地表点の高度[m], +,TARGET.FROM_ORBIT.OFFSET_ANGLE_AXIS,uint8_t,(uint8_t)(target_attitude_from_orbit->offset_angle_axis),PACKET,210,0,8,NONE,,,,,,,0=+X@@ 1=+Y@@ 2=+Z,オフセット角を与える軸, +,TARGET.FROM_ORBIT.OFFSET_ANGLE_deg,float,(float)(target_attitude_from_orbit->offset_angle_rad),PACKET,211,0,32,POLY,0,57.324,,,,,,オフセット角[deg], +,TARGET.INTERPOLATION.CURRENT_TARGET_NUM,uint8_t,(uint8_t)(quaternion_interpolator->current_target_num),PACKET,215,0,8,NONE,,,,,,,,現在の目標Quaternion数, +,TARGET.INTERPOLATION.CURRENT_TARGET_INDEX,uint8_t,(uint8_t)(quaternion_interpolator->index),PACKET,216,0,8,NONE,,,,,,,,現在の目標QuaternionのINDEX, +,TARGET.INTERPOLATION.PREVIOUS_ATTITUDE_CHANGED_TI,uint32_t,(uint32_t)(quaternion_interpolator->previous_attitude_changed_ti),PACKET,217,0,32,NONE,,,,,,,,前回の姿勢変更完了予定時刻, +,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_X,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[0]),PACKET,221,0,32,NONE,,,,,,,,前回の目標Quaternion I2T X, +,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_Y,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[1]),PACKET,225,0,32,NONE,,,,,,,,前回の目標Quaternion I2T Y, +,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_Z,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[2]),PACKET,229,0,32,NONE,,,,,,,,前回の目標Quaternion I2T Z, +,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_W,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.scalar_part),PACKET,233,0,32,NONE,,,,,,,,前回の目標Quaternion I2T W, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/src/src_user/TlmCmd/telemetry_definitions.c b/src/src_user/TlmCmd/telemetry_definitions.c index d0242f3a..188cce79 100644 --- a/src/src_user/TlmCmd/telemetry_definitions.c +++ b/src/src_user/TlmCmd/telemetry_definitions.c @@ -1929,7 +1929,7 @@ static TF_TLM_FUNC_ACK Tlm_AOBC_HK_ALGO_(uint8_t* packet, uint16_t* len, uint16_ static TF_TLM_FUNC_ACK Tlm_AOBC_COMPONENTS_(uint8_t* packet, uint16_t* len, uint16_t max_len) { - if (231 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; + if (235 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; #ifndef BUILD_SETTINGS_FAST_BUILD TF_copy_float(&packet[26], (float)(mpu9250_driver[MPU9250_IDX_ON_AOBC]->info.accel_compo_m_s2[0])); @@ -1985,9 +1985,10 @@ static TF_TLM_FUNC_ACK Tlm_AOBC_COMPONENTS_(uint8_t* packet, uint16_t* len, uint TF_copy_float(&packet[219], (float)(rw0003_driver[RW0003_IDX_ON_X]->info.temperature_degC)); TF_copy_float(&packet[223], (float)(rw0003_driver[RW0003_IDX_ON_Y]->info.temperature_degC)); TF_copy_float(&packet[227], (float)(rw0003_driver[RW0003_IDX_ON_Z]->info.temperature_degC)); + TF_copy_u32(&packet[231], (uint32_t)(mtq_seiren_controller->mtq_demagnetization_required_time_ms)); #endif - *len = 231; + *len = 235; return TF_TLM_FUNC_ACK_SUCCESS; } @@ -2120,7 +2121,7 @@ static TF_TLM_FUNC_ACK Tlm_AOBC_FRAME_TRANSFORMATION_(uint8_t* packet, uint16_t* static TF_TLM_FUNC_ACK Tlm_AOBC_CONTROL_(uint8_t* packet, uint16_t* len, uint16_t max_len) { - if (218 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; + if (237 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; #ifndef BUILD_SETTINGS_FAST_BUILD TF_copy_float(&packet[26], (float)(bdot->control_gain[0])); @@ -2128,64 +2129,68 @@ static TF_TLM_FUNC_ACK Tlm_AOBC_CONTROL_(uint8_t* packet, uint16_t* len, uint16_ TF_copy_float(&packet[34], (float)(bdot->control_gain[2])); TF_copy_u32(&packet[38], (uint32_t)(bdot->minimum_time_derivative_step_ms)); TF_copy_u32(&packet[42], (uint32_t)(bdot->mtq_output_time_length_ms)); - TF_copy_u32(&packet[46], (uint32_t)(mtq_seiren_controller->mtq_demagnetization_required_time_ms)); - TF_copy_u8(&packet[50], (uint8_t)(target_attitude_calculator->mode)); - TF_copy_u8(&packet[51], (uint8_t)(target_attitude_calculator->is_enabled)); - TF_copy_float(&packet[52], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[0])); - TF_copy_float(&packet[56], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[1])); - TF_copy_float(&packet[60], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[2])); - TF_copy_float(&packet[64], (float)(target_attitude_calculator->quaternion_target_i2t.scalar_part)); - TF_copy_float(&packet[68], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[0])); - TF_copy_float(&packet[72], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[1])); - TF_copy_float(&packet[76], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[2])); - TF_copy_u8(&packet[80], (uint8_t)(target_attitude_from_orbit->main_target_direction)); - TF_copy_u8(&packet[81], (uint8_t)(target_attitude_from_orbit->sub_target_direction)); - TF_copy_float(&packet[82], (float)(target_attitude_from_orbit->vec_to_main_target_body[0])); - TF_copy_float(&packet[86], (float)(target_attitude_from_orbit->vec_to_main_target_body[1])); - TF_copy_float(&packet[90], (float)(target_attitude_from_orbit->vec_to_main_target_body[2])); - TF_copy_float(&packet[94], (float)(target_attitude_from_orbit->vec_to_sub_target_body[0])); - TF_copy_float(&packet[98], (float)(target_attitude_from_orbit->vec_to_sub_target_body[1])); - TF_copy_float(&packet[102], (float)(target_attitude_from_orbit->vec_to_sub_target_body[2])); - TF_copy_float(&packet[106], (float)(target_attitude_from_orbit->target_lla_rad_m[0])); - TF_copy_float(&packet[110], (float)(target_attitude_from_orbit->target_lla_rad_m[1])); - TF_copy_float(&packet[114], (float)(target_attitude_from_orbit->target_lla_rad_m[2])); - TF_copy_u8(&packet[118], (uint8_t)(target_attitude_from_orbit->offset_angle_axis)); - TF_copy_float(&packet[119], (float)(target_attitude_from_orbit->offset_angle_rad)); - TF_copy_u8(&packet[123], (uint8_t)(quaternion_interpolator->current_target_num)); - TF_copy_u8(&packet[124], (uint8_t)(quaternion_interpolator->index)); - TF_copy_u32(&packet[125], (uint32_t)(quaternion_interpolator->previous_attitude_changed_ti)); - TF_copy_float(&packet[129], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[0])); - TF_copy_float(&packet[133], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[1])); - TF_copy_float(&packet[137], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[2])); - TF_copy_float(&packet[141], (float)(quaternion_interpolator->previous_quaternion_target_i2t.scalar_part)); - TF_copy_u8(&packet[145], (uint8_t)(magnetometer_selector->state)); - TF_copy_u8(&packet[146], (uint8_t)(magnetometer_selector->auto_flag)); - TF_copy_u8(&packet[147], (uint8_t)(gyro_selector->state)); - TF_copy_u8(&packet[148], (uint8_t)(gyro_selector->auto_flag)); - TF_copy_float(&packet[149], (float)(sun_sensor_selector->sun_intensity_upper_threshold_percent)); - TF_copy_float(&packet[153], (float)(sun_sensor_selector->sun_intensity_lower_threshold_percent)); - TF_copy_u8(&packet[157], (uint8_t)(fine_three_axis_determination->method)); - TF_copy_u8(&packet[158], (uint8_t)(aocs_mode_manager->is_enabled_auto_mode_transition)); - TF_copy_float(&packet[159], (float)(aocs_mode_manager->ang_vel_conv_limit_rad_s)); - TF_copy_float(&packet[163], (float)(aocs_mode_manager->ang_vel_conv_time_limit_s)); - TF_copy_float(&packet[167], (float)(aocs_mode_manager->ang_vel_norm_increase_limit_rad_s)); - TF_copy_float(&packet[171], (float)(aocs_mode_manager->ang_vel_anomaly_detection_period_s)); - TF_copy_float(&packet[175], (float)(aocs_mode_manager->sun_angle_div_limit_rad)); - TF_copy_float(&packet[179], (float)(aocs_mode_manager->sun_angle_div_time_limit_s)); - TF_copy_float(&packet[183], (float)(aocs_mode_manager->three_axis_div_limit_rad)); - TF_copy_float(&packet[187], (float)(aocs_mode_manager->three_axis_div_time_limit_s)); - TF_copy_float(&packet[191], (float)(aocs_mode_manager->sun_invisible_time_limit_s)); - TF_copy_float(&packet[195], (float)(aocs_mode_manager->stt_invisible_time_limit_s)); - TF_copy_float(&packet[199], (float)(time_space_calculator->offset_sec)); - TF_copy_u8(&packet[203], (uint8_t)(rough_three_axis_determination->method)); - TF_copy_u8(&packet[204], (uint8_t)(rough_three_axis_determination->sun_invisible_propagation)); - TF_copy_float(&packet[205], (float)(rough_three_axis_determination->q_method_info.sun_vec_weight)); - TF_copy_float(&packet[209], (float)(rough_three_axis_determination->q_method_info.mag_vec_weight)); - TF_copy_float(&packet[213], (float)(unloading->control_gain)); - TF_copy_u8(&packet[217], (uint8_t)(unloading->exec_is_enable)); + TF_copy_u8(&packet[46], (uint8_t)(magnetometer_selector->state)); + TF_copy_u8(&packet[47], (uint8_t)(magnetometer_selector->auto_flag)); + TF_copy_u8(&packet[48], (uint8_t)(gyro_selector->state)); + TF_copy_u8(&packet[49], (uint8_t)(gyro_selector->auto_flag)); + TF_copy_float(&packet[50], (float)(sun_sensor_selector->sun_intensity_upper_threshold_percent)); + TF_copy_float(&packet[54], (float)(sun_sensor_selector->sun_intensity_lower_threshold_percent)); + TF_copy_u8(&packet[58], (uint8_t)(rough_three_axis_determination->method)); + TF_copy_u8(&packet[59], (uint8_t)(rough_three_axis_determination->sun_invisible_propagation)); + TF_copy_float(&packet[60], (float)(rough_three_axis_determination->q_method_info.sun_vec_weight)); + TF_copy_float(&packet[64], (float)(rough_three_axis_determination->q_method_info.mag_vec_weight)); + TF_copy_u8(&packet[68], (uint8_t)(fine_three_axis_determination->method)); + TF_copy_float(&packet[69], (float)(aocs_manager->ang_vel_error_body_rad_s[0])); + TF_copy_float(&packet[73], (float)(aocs_manager->ang_vel_error_body_rad_s[1])); + TF_copy_float(&packet[77], (float)(aocs_manager->ang_vel_error_body_rad_s[2])); + TF_copy_float(&packet[81], (float)(aocs_manager->quaternion_error_b2t.vector_part[0])); + TF_copy_float(&packet[85], (float)(aocs_manager->quaternion_error_b2t.vector_part[1])); + TF_copy_float(&packet[89], (float)(aocs_manager->quaternion_error_b2t.vector_part[2])); + TF_copy_float(&packet[93], (float)(aocs_manager->quaternion_error_b2t.scalar_part)); + TF_copy_float(&packet[97], (float)(aocs_manager->sun_vec_error_rad)); + TF_copy_float(&packet[101], (float)(unloading->control_gain)); + TF_copy_u8(&packet[105], (uint8_t)(unloading->exec_is_enable)); + TF_copy_float(&packet[106], (float)(unloading->angular_velocity_upper_threshold_rad_s[0]) ); + TF_copy_float(&packet[110], (float)(unloading->angular_velocity_target_rad_s[0])); + TF_copy_float(&packet[114], (float)(unloading->angular_velocity_lower_threshold_rad_s[0])); + TF_copy_float(&packet[118], (float)(unloading->angular_velocity_upper_threshold_rad_s[1]) ); + TF_copy_float(&packet[122], (float)(unloading->angular_velocity_target_rad_s[1])); + TF_copy_float(&packet[126], (float)(unloading->angular_velocity_lower_threshold_rad_s[1])); + TF_copy_float(&packet[130], (float)(unloading->angular_velocity_upper_threshold_rad_s[2]) ); + TF_copy_float(&packet[134], (float)(unloading->angular_velocity_target_rad_s[2])); + TF_copy_float(&packet[138], (float)(unloading->angular_velocity_lower_threshold_rad_s[2])); + TF_copy_u8(&packet[142], (uint8_t)(target_attitude_calculator->mode)); + TF_copy_u8(&packet[143], (uint8_t)(target_attitude_calculator->is_enabled)); + TF_copy_float(&packet[144], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[0])); + TF_copy_float(&packet[148], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[1])); + TF_copy_float(&packet[152], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[2])); + TF_copy_float(&packet[156], (float)(target_attitude_calculator->quaternion_target_i2t.scalar_part)); + TF_copy_float(&packet[160], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[0])); + TF_copy_float(&packet[164], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[1])); + TF_copy_float(&packet[168], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[2])); + TF_copy_u8(&packet[172], (uint8_t)(target_attitude_from_orbit->main_target_direction)); + TF_copy_u8(&packet[173], (uint8_t)(target_attitude_from_orbit->sub_target_direction)); + TF_copy_float(&packet[174], (float)(target_attitude_from_orbit->vec_to_main_target_body[0])); + TF_copy_float(&packet[178], (float)(target_attitude_from_orbit->vec_to_main_target_body[1])); + TF_copy_float(&packet[182], (float)(target_attitude_from_orbit->vec_to_main_target_body[2])); + TF_copy_float(&packet[186], (float)(target_attitude_from_orbit->vec_to_sub_target_body[0])); + TF_copy_float(&packet[190], (float)(target_attitude_from_orbit->vec_to_sub_target_body[1])); + TF_copy_float(&packet[194], (float)(target_attitude_from_orbit->vec_to_sub_target_body[2])); + TF_copy_float(&packet[198], (float)(target_attitude_from_orbit->target_lla_rad_m[0])); + TF_copy_float(&packet[202], (float)(target_attitude_from_orbit->target_lla_rad_m[1])); + TF_copy_float(&packet[206], (float)(target_attitude_from_orbit->target_lla_rad_m[2])); + TF_copy_u8(&packet[210], (uint8_t)(target_attitude_from_orbit->offset_angle_axis)); + TF_copy_float(&packet[211], (float)(target_attitude_from_orbit->offset_angle_rad)); + TF_copy_u8(&packet[215], (uint8_t)(quaternion_interpolator->current_target_num)); + TF_copy_u8(&packet[216], (uint8_t)(quaternion_interpolator->index)); + TF_copy_u32(&packet[217], (uint32_t)(quaternion_interpolator->previous_attitude_changed_ti)); + TF_copy_float(&packet[221], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[0])); + TF_copy_float(&packet[225], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[1])); + TF_copy_float(&packet[229], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[2])); + TF_copy_float(&packet[233], (float)(quaternion_interpolator->previous_quaternion_target_i2t.scalar_part)); #endif - *len = 218; + *len = 237; return TF_TLM_FUNC_ACK_SUCCESS; } @@ -2548,7 +2553,7 @@ static TF_TLM_FUNC_ACK Tlm_AOBC_ORBIT_(uint8_t* packet, uint16_t* len, uint16_t static TF_TLM_FUNC_ACK Tlm_AOBC_AOCS_MANAGER_(uint8_t* packet, uint16_t* len, uint16_t max_len) { - if (208 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; + if (212 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; #ifndef BUILD_SETTINGS_FAST_BUILD TF_copy_float(&packet[26], (float)(aocs_manager->mass_sc_kg)); @@ -2597,9 +2602,10 @@ static TF_TLM_FUNC_ACK Tlm_AOBC_AOCS_MANAGER_(uint8_t* packet, uint16_t* len, ui TF_copy_float(&packet[196], (float)(aocs_manager->constant_torque_body_Nm[0])); TF_copy_float(&packet[200], (float)(aocs_manager->constant_torque_body_Nm[1])); TF_copy_float(&packet[204], (float)(aocs_manager->constant_torque_body_Nm[2])); + TF_copy_float(&packet[208], (float)(time_space_calculator->offset_sec)); #endif - *len = 208; + *len = 212; return TF_TLM_FUNC_ACK_SUCCESS; } @@ -2879,7 +2885,7 @@ static TF_TLM_FUNC_ACK Tlm_AOBC_FILTERS_(uint8_t* packet, uint16_t* len, uint16_ static TF_TLM_FUNC_ACK Tlm_AOBC_ANOMALY_(uint8_t* packet, uint16_t* len, uint16_t max_len) { - if (122 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; + if (163 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; #ifndef BUILD_SETTINGS_FAST_BUILD TF_copy_float(&packet[26], (float)temperature_anomaly->threshold_list[APP_TEMPERATURE_ANOMALY_IDX_PIC].upper_degC); @@ -2906,9 +2912,20 @@ static TF_TLM_FUNC_ACK Tlm_AOBC_ANOMALY_(uint8_t* packet, uint16_t* len, uint16_ TF_copy_float(&packet[110], (float)temperature_anomaly->threshold_list[APP_TEMPERATURE_ANOMALY_IDX_RW_Z].lower_degC); TF_copy_float(&packet[114], (float)temperature_anomaly->threshold_list[APP_TEMPERATURE_ANOMALY_IDX_GPSR].upper_degC); TF_copy_float(&packet[118], (float)temperature_anomaly->threshold_list[APP_TEMPERATURE_ANOMALY_IDX_GPSR].lower_degC); + TF_copy_u8(&packet[122], (uint8_t)(aocs_mode_manager->is_enabled_auto_mode_transition)); + TF_copy_float(&packet[123], (float)(aocs_mode_manager->ang_vel_conv_limit_rad_s)); + TF_copy_float(&packet[127], (float)(aocs_mode_manager->ang_vel_conv_time_limit_s)); + TF_copy_float(&packet[131], (float)(aocs_mode_manager->ang_vel_norm_increase_limit_rad_s)); + TF_copy_float(&packet[135], (float)(aocs_mode_manager->ang_vel_anomaly_detection_period_s)); + TF_copy_float(&packet[139], (float)(aocs_mode_manager->sun_angle_div_limit_rad)); + TF_copy_float(&packet[143], (float)(aocs_mode_manager->sun_angle_div_time_limit_s)); + TF_copy_float(&packet[147], (float)(aocs_mode_manager->three_axis_div_limit_rad)); + TF_copy_float(&packet[151], (float)(aocs_mode_manager->three_axis_div_time_limit_s)); + TF_copy_float(&packet[155], (float)(aocs_mode_manager->sun_invisible_time_limit_s)); + TF_copy_float(&packet[159], (float)(aocs_mode_manager->stt_invisible_time_limit_s)); #endif - *len = 122; + *len = 163; return TF_TLM_FUNC_ACK_SUCCESS; }