diff --git a/database/TLM_DB/AOBC_TLM_DB_AOBC_CONTROL.csv b/database/TLM_DB/AOBC_TLM_DB_AOBC_CONTROL.csv index 1f0001fb..ac63de18 100644 --- a/database/TLM_DB/AOBC_TLM_DB_AOBC_CONTROL.csv +++ b/database/TLM_DB/AOBC_TLM_DB_AOBC_CONTROL.csv @@ -25,9 +25,7 @@ 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], ,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,粗三軸決定手法, @@ -498,3 +496,5 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, 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 d04a4d81..180bf149 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,66 +25,66 @@ 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], ,SELECTOR.MAG.STATE,uint8_t,(uint8_t)(magnetometer_selector->state),PACKET,42,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,43,0,8,STATUS,,,,,,,0=Manual@@ 1=Auto,磁気センサセレクタ自動選択フラグ, -,SELECTOR.GYRO.STATE,uint8_t,(uint8_t)(gyro_selector->state),PACKET,44,0,8,STATUS,,,,,,,0=MPU@@ 1=STIM@@ 2=FUSION,ジャイロセンサセレクタ状態, -,SELECTOR.GYRO.AUTO_FLAG,uint8_t,(uint8_t)(gyro_selector->auto_flag),PACKET,45,0,8,STATUS,,,,,,,0=Manual@@ 1=Auto,ジャイロセンサセレクタ自動選択フラグ, -,SELECTOR.SUN_SENSOR.INTENSITY_THRESHOLD.UPPER,float,(float)(sun_sensor_selector->sun_intensity_upper_threshold_percent),PACKET,46,0,32,NONE,,,,,,,,太陽センサセレクタ光強度上限閾値, -,SELECTOR.SUN_SENSOR.INTENSITY_THRESHOLD.LOWER,float,(float)(sun_sensor_selector->sun_intensity_lower_threshold_percent),PACKET,50,0,32,NONE,,,,,,,,太陽センサセレクタ光強度下限閾値, -,DETERMINATION.ROUGH_THREE_AXIS.METHOD,uint8_t,(uint8_t)(rough_three_axis_determination->method),PACKET,54,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,55,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,56,0,32,NONE,,,,,,,,Qmethodにおける太陽方向ベクトルの重み, -,DETERMINATION.ROUGH_THREE_AXIS.MAG_VEC_WEIGHT,float,(float)(rough_three_axis_determination->q_method_info.mag_vec_weight),PACKET,60,0,32,NONE,,,,,,,,Qmethodにおける磁場方向ベクトルの重み, -,DETERMINATION.FINE_THREE_AXIS_METHOD,uint8_t,(uint8_t)(fine_three_axis_determination->method),PACKET,64,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,65,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,69,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,73,0,32,NONE,,,,,,,,制御角速度誤差 Body-Z [rad/s], -,CONTROL.ERROR.QUATERNION_B2T.X,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[0]),PACKET,77,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target X, -,CONTROL.ERROR.QUATERNION_B2T.Y,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[1]),PACKET,81,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target Y, -,CONTROL.ERROR.QUATERNION_B2T.Z,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[2]),PACKET,85,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target Z, -,CONTROL.ERROR.QUATERNION_B2T.W,float,(float)(aocs_manager->quaternion_error_b2t.scalar_part),PACKET,89,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target W, -,CONTROL.ERROR.SUN_DIRECTION_rad,float,(float)(aocs_manager->sun_vec_error_rad),PACKET,93,0,32,NONE,,,,,,,,制御太陽角度誤差 [rad], -,UNLOADING.CONTROL_GAIN,float,(float)(unloading->control_gain),PACKET,97,0,32,NONE,,,,,,,,アンローディングにおけるMTQ出力ゲイン, -,UNLOADING.EXEC_IS_ENABLE,uint8_t,(uint8_t)(unloading->exec_is_enable),PACKET,101,0,8,STATUS,,,,,,,0=ENABLE@@ 1=DISABLE,アンローディング出力が有効かどうか, -,UNLOADING.THRESHOLD.X.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[0]),PACKET,102,0,32,NONE,,,,,,,,アンローディング上限閾値 RW-X [rad/s], -,UNLOADING.THRESHOLD.X.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[0]),PACKET,106,0,32,NONE,,,,,,,,アンローディング目標 RW-X [rad/s], -,UNLOADING.THRESHOLD.X.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[0]),PACKET,110,0,32,NONE,,,,,,,,アンローディング下限閾値 RW-X [rad/s], -,UNLOADING.THRESHOLD.Y.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[1]),PACKET,114,0,32,NONE,,,,,,,,アンローディング上限閾値 RW-Y [rad/s], -,UNLOADING.THRESHOLD.Y.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[1]),PACKET,118,0,32,NONE,,,,,,,,アンローディング目標 RW-Y [rad/s], -,UNLOADING.THRESHOLD.Y.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[1]),PACKET,122,0,32,NONE,,,,,,,,アンローディング下限閾値 RW-Y [rad/s], -,UNLOADING.THRESHOLD.Z.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[2]),PACKET,126,0,32,NONE,,,,,,,,アンローディング上限閾値 RW-Z [rad/s], -,UNLOADING.THRESHOLD.Z.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[2]),PACKET,130,0,32,NONE,,,,,,,,アンローディング目標 RW-Z [rad/s], -,UNLOADING.THRESHOLD.Z.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[2]),PACKET,134,0,32,NONE,,,,,,,,アンローディング下限閾値 RW-Z [rad/s], -,TARGET.CALC_MODE,uint8_t,(uint8_t)(target_attitude_calculator->mode),PACKET,138,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,139,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,140,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T X, -,TARGET.QUATERNION_TARGET_I2T_Y,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[1]),PACKET,144,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T Y, -,TARGET.QUATERNION_TARGET_I2T_Z,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[2]),PACKET,148,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T Z, -,TARGET.QUATERNION_TARGET_I2T_W,float,(float)(target_attitude_calculator->quaternion_target_i2t.scalar_part),PACKET,152,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,156,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,160,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,164,0,32,NONE,,,,,,,,オンボード計算した目標角速度 機体座標Z [rad/s], -,TARGET.FROM_ORBIT.MAIN_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->main_target_direction),PACKET,168,0,8,STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL@@ 5=GROUND_SPEED,目標方向(main), -,TARGET.FROM_ORBIT.SUB_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->sub_target_direction),PACKET,169,0,8,STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL@@ 5=GROUND_SPEED,目標方向(sub), -,TARGET.FROM_ORBIT.VEC_TO_MAIN_TARGET_BODY_X,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[0]),PACKET,170,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,174,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,178,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,182,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,186,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,190,0,32,NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(Z), -,TARGET.FROM_ORBIT.LATITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[0]),PACKET,194,0,32,POLY,0,57.324,,,,,,目標地表点の緯度[deg], -,TARGET.FROM_ORBIT.LONGITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[1]),PACKET,198,0,32,POLY,0,57.324,,,,,,目標地表点の経度[deg], -,TARGET.FROM_ORBIT.ALTITUDE_m,float,(float)(target_attitude_from_orbit->target_lla_rad_m[2]),PACKET,202,0,32,NONE,,,,,,,,目標地表点の高度[m], -,TARGET.FROM_ORBIT.OFFSET_ANGLE_AXIS,uint8_t,(uint8_t)(target_attitude_from_orbit->offset_angle_axis),PACKET,206,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,207,0,32,POLY,0,57.324,,,,,,オフセット角[deg], -,TARGET.INTERPOLATION.CURRENT_TARGET_NUM,uint8_t,(uint8_t)(quaternion_interpolator->current_target_num),PACKET,211,0,8,NONE,,,,,,,,現在の目標Quaternion数, -,TARGET.INTERPOLATION.CURRENT_TARGET_INDEX,uint8_t,(uint8_t)(quaternion_interpolator->index),PACKET,212,0,8,NONE,,,,,,,,現在の目標QuaternionのINDEX, -,TARGET.INTERPOLATION.PREVIOUS_ATTITUDE_CHANGED_TI,uint32_t,(uint32_t)(quaternion_interpolator->previous_attitude_changed_ti),PACKET,213,0,32,NONE,,,,,,,,前回の姿勢変更完了予定時刻, -,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_X,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[0]),PACKET,217,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,221,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,225,0,32,NONE,,,,,,,,前回の目標Quaternion I2T Z, -,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_W,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.scalar_part),PACKET,229,0,32,NONE,,,,,,,,前回の目標Quaternion I2T W, -,TARGET.LPF_ANGULAR_VELOCITY.SAMPLING_Hz,float,(float)(target_attitude_calculator->sampling_freq_Hz),PACKET,233,0,32,NONE,,,,,,,,Angular velocity LPF sampling frequency Hz, -,TARGET.LPF_ANGULAR_VELOCITY.CUTOFF_Hz,float,(float)(target_attitude_calculator->cut_off_freq_lpf_1st_Hz),PACKET,237,0,32,NONE,,,,,,,,Angular velocity LPF cutoff frequency Hz, +,SELECTOR.GYRO.STATE,uint8_t,(uint8_t)(gyro_selector->state),PACKET,43,0,8,STATUS,,,,,,,0=MPU@@ 1=STIM@@ 2=FUSION,ジャイロセンサセレクタ状態, +,SELECTOR.SUN_SENSOR.INTENSITY_THRESHOLD.UPPER,float,(float)(sun_sensor_selector->sun_intensity_upper_threshold_percent),PACKET,44,0,32,NONE,,,,,,,,太陽センサセレクタ光強度上限閾値, +,SELECTOR.SUN_SENSOR.INTENSITY_THRESHOLD.LOWER,float,(float)(sun_sensor_selector->sun_intensity_lower_threshold_percent),PACKET,48,0,32,NONE,,,,,,,,太陽センサセレクタ光強度下限閾値, +,DETERMINATION.ROUGH_THREE_AXIS.METHOD,uint8_t,(uint8_t)(rough_three_axis_determination->method),PACKET,52,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,53,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,54,0,32,NONE,,,,,,,,Qmethodにおける太陽方向ベクトルの重み, +,DETERMINATION.ROUGH_THREE_AXIS.MAG_VEC_WEIGHT,float,(float)(rough_three_axis_determination->q_method_info.mag_vec_weight),PACKET,58,0,32,NONE,,,,,,,,Qmethodにおける磁場方向ベクトルの重み, +,DETERMINATION.FINE_THREE_AXIS_METHOD,uint8_t,(uint8_t)(fine_three_axis_determination->method),PACKET,62,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,63,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,67,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,71,0,32,NONE,,,,,,,,制御角速度誤差 Body-Z [rad/s], +,CONTROL.ERROR.QUATERNION_B2T.X,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[0]),PACKET,75,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target X, +,CONTROL.ERROR.QUATERNION_B2T.Y,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[1]),PACKET,79,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target Y, +,CONTROL.ERROR.QUATERNION_B2T.Z,float,(float)(aocs_manager->quaternion_error_b2t.vector_part[2]),PACKET,83,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target Z, +,CONTROL.ERROR.QUATERNION_B2T.W,float,(float)(aocs_manager->quaternion_error_b2t.scalar_part),PACKET,87,0,32,NONE,,,,,,,,制御誤差Quaternoin Body->Target W, +,CONTROL.ERROR.SUN_DIRECTION_rad,float,(float)(aocs_manager->sun_vec_error_rad),PACKET,91,0,32,NONE,,,,,,,,制御太陽角度誤差 [rad], +,UNLOADING.CONTROL_GAIN,float,(float)(unloading->control_gain),PACKET,95,0,32,NONE,,,,,,,,アンローディングにおけるMTQ出力ゲイン, +,UNLOADING.EXEC_IS_ENABLE,uint8_t,(uint8_t)(unloading->exec_is_enable),PACKET,99,0,8,STATUS,,,,,,,0=ENABLE@@ 1=DISABLE,アンローディング出力が有効かどうか, +,UNLOADING.THRESHOLD.X.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[0]),PACKET,100,0,32,NONE,,,,,,,,アンローディング上限閾値 RW-X [rad/s], +,UNLOADING.THRESHOLD.X.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[0]),PACKET,104,0,32,NONE,,,,,,,,アンローディング目標 RW-X [rad/s], +,UNLOADING.THRESHOLD.X.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[0]),PACKET,108,0,32,NONE,,,,,,,,アンローディング下限閾値 RW-X [rad/s], +,UNLOADING.THRESHOLD.Y.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[1]),PACKET,112,0,32,NONE,,,,,,,,アンローディング上限閾値 RW-Y [rad/s], +,UNLOADING.THRESHOLD.Y.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[1]),PACKET,116,0,32,NONE,,,,,,,,アンローディング目標 RW-Y [rad/s], +,UNLOADING.THRESHOLD.Y.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[1]),PACKET,120,0,32,NONE,,,,,,,,アンローディング下限閾値 RW-Y [rad/s], +,UNLOADING.THRESHOLD.Z.UPPER,float,(float)(unloading->angular_velocity_upper_threshold_rad_s[2]),PACKET,124,0,32,NONE,,,,,,,,アンローディング上限閾値 RW-Z [rad/s], +,UNLOADING.THRESHOLD.Z.TARGET,float,(float)(unloading->angular_velocity_target_rad_s[2]),PACKET,128,0,32,NONE,,,,,,,,アンローディング目標 RW-Z [rad/s], +,UNLOADING.THRESHOLD.Z.LOWER,float,(float)(unloading->angular_velocity_lower_threshold_rad_s[2]),PACKET,132,0,32,NONE,,,,,,,,アンローディング下限閾値 RW-Z [rad/s], +,TARGET.CALC_MODE,uint8_t,(uint8_t)(target_attitude_calculator->mode),PACKET,136,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,137,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,138,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T X, +,TARGET.QUATERNION_TARGET_I2T_Y,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[1]),PACKET,142,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T Y, +,TARGET.QUATERNION_TARGET_I2T_Z,float,(float)(target_attitude_calculator->quaternion_target_i2t.vector_part[2]),PACKET,146,0,32,NONE,,,,,,,,オンボード計算した目標Quaternion I2T Z, +,TARGET.QUATERNION_TARGET_I2T_W,float,(float)(target_attitude_calculator->quaternion_target_i2t.scalar_part),PACKET,150,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,154,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,158,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,162,0,32,NONE,,,,,,,,オンボード計算した目標角速度 機体座標Z [rad/s], +,TARGET.FROM_ORBIT.MAIN_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->main_target_direction),PACKET,166,0,8,STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL@@ 5=GROUND_SPEED,目標方向(main), +,TARGET.FROM_ORBIT.SUB_TARGET_DIRECTION,uint8_t,(uint8_t)(target_attitude_from_orbit->sub_target_direction),PACKET,167,0,8,STATUS,,,,,,,0=SUN@@ 1=SAT_VELOCITY@@ 2=EARTH_CENTER@@ 3=EARTH_SURFACE@@ 4=ORBIT_NORMAL@@ 5=GROUND_SPEED,目標方向(sub), +,TARGET.FROM_ORBIT.VEC_TO_MAIN_TARGET_BODY_X,float,(float)(target_attitude_from_orbit->vec_to_main_target_body[0]),PACKET,168,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,172,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,176,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,180,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,184,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,188,0,32,NONE,,,,,,,,目標方向(sub)に向けたいbody座標系ベクトル(Z), +,TARGET.FROM_ORBIT.LATITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[0]),PACKET,192,0,32,POLY,0,57.324,,,,,,目標地表点の緯度[deg], +,TARGET.FROM_ORBIT.LONGITUDE_deg,float,(float)(target_attitude_from_orbit->target_lla_rad_m[1]),PACKET,196,0,32,POLY,0,57.324,,,,,,目標地表点の経度[deg], +,TARGET.FROM_ORBIT.ALTITUDE_m,float,(float)(target_attitude_from_orbit->target_lla_rad_m[2]),PACKET,200,0,32,NONE,,,,,,,,目標地表点の高度[m], +,TARGET.FROM_ORBIT.OFFSET_ANGLE_AXIS,uint8_t,(uint8_t)(target_attitude_from_orbit->offset_angle_axis),PACKET,204,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,205,0,32,POLY,0,57.324,,,,,,オフセット角[deg], +,TARGET.INTERPOLATION.CURRENT_TARGET_NUM,uint8_t,(uint8_t)(quaternion_interpolator->current_target_num),PACKET,209,0,8,NONE,,,,,,,,現在の目標Quaternion数, +,TARGET.INTERPOLATION.CURRENT_TARGET_INDEX,uint8_t,(uint8_t)(quaternion_interpolator->index),PACKET,210,0,8,NONE,,,,,,,,現在の目標QuaternionのINDEX, +,TARGET.INTERPOLATION.PREVIOUS_ATTITUDE_CHANGED_TI,uint32_t,(uint32_t)(quaternion_interpolator->previous_attitude_changed_ti),PACKET,211,0,32,NONE,,,,,,,,前回の姿勢変更完了予定時刻, +,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_X,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[0]),PACKET,215,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,219,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,223,0,32,NONE,,,,,,,,前回の目標Quaternion I2T Z, +,TARGET.INTERPOLATION.PREVIOUS_QUATERNION_TARGET_I2T_W,float,(float)(quaternion_interpolator->previous_quaternion_target_i2t.scalar_part),PACKET,227,0,32,NONE,,,,,,,,前回の目標Quaternion I2T W, +,TARGET.LPF_ANGULAR_VELOCITY.SAMPLING_Hz,float,(float)(target_attitude_calculator->sampling_freq_Hz),PACKET,231,0,32,NONE,,,,,,,,Angular velocity LPF sampling frequency Hz, +,TARGET.LPF_ANGULAR_VELOCITY.CUTOFF_Hz,float,(float)(target_attitude_calculator->cut_off_freq_lpf_1st_Hz),PACKET,235,0,32,NONE,,,,,,,,Angular velocity LPF cutoff frequency Hz, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/src/src_user/TlmCmd/telemetry_definitions.c b/src/src_user/TlmCmd/telemetry_definitions.c index 00f61776..606735a2 100644 --- a/src/src_user/TlmCmd/telemetry_definitions.c +++ b/src/src_user/TlmCmd/telemetry_definitions.c @@ -2124,7 +2124,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 (241 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; + if (239 > 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])); @@ -2132,69 +2132,67 @@ 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_u8(&packet[42], (uint8_t)(magnetometer_selector->state)); - TF_copy_u8(&packet[43], (uint8_t)(magnetometer_selector->auto_flag)); - TF_copy_u8(&packet[44], (uint8_t)(gyro_selector->state)); - TF_copy_u8(&packet[45], (uint8_t)(gyro_selector->auto_flag)); - TF_copy_float(&packet[46], (float)(sun_sensor_selector->sun_intensity_upper_threshold_percent)); - TF_copy_float(&packet[50], (float)(sun_sensor_selector->sun_intensity_lower_threshold_percent)); - TF_copy_u8(&packet[54], (uint8_t)(rough_three_axis_determination->method)); - TF_copy_u8(&packet[55], (uint8_t)(rough_three_axis_determination->sun_invisible_propagation)); - TF_copy_float(&packet[56], (float)(rough_three_axis_determination->q_method_info.sun_vec_weight)); - TF_copy_float(&packet[60], (float)(rough_three_axis_determination->q_method_info.mag_vec_weight)); - TF_copy_u8(&packet[64], (uint8_t)(fine_three_axis_determination->method)); - TF_copy_float(&packet[65], (float)(aocs_manager->ang_vel_error_body_rad_s[0])); - TF_copy_float(&packet[69], (float)(aocs_manager->ang_vel_error_body_rad_s[1])); - TF_copy_float(&packet[73], (float)(aocs_manager->ang_vel_error_body_rad_s[2])); - TF_copy_float(&packet[77], (float)(aocs_manager->quaternion_error_b2t.vector_part[0])); - TF_copy_float(&packet[81], (float)(aocs_manager->quaternion_error_b2t.vector_part[1])); - TF_copy_float(&packet[85], (float)(aocs_manager->quaternion_error_b2t.vector_part[2])); - TF_copy_float(&packet[89], (float)(aocs_manager->quaternion_error_b2t.scalar_part)); - TF_copy_float(&packet[93], (float)(aocs_manager->sun_vec_error_rad)); - TF_copy_float(&packet[97], (float)(unloading->control_gain)); - TF_copy_u8(&packet[101], (uint8_t)(unloading->exec_is_enable)); - TF_copy_float(&packet[102], (float)(unloading->angular_velocity_upper_threshold_rad_s[0])); - TF_copy_float(&packet[106], (float)(unloading->angular_velocity_target_rad_s[0])); - TF_copy_float(&packet[110], (float)(unloading->angular_velocity_lower_threshold_rad_s[0])); - TF_copy_float(&packet[114], (float)(unloading->angular_velocity_upper_threshold_rad_s[1])); - TF_copy_float(&packet[118], (float)(unloading->angular_velocity_target_rad_s[1])); - TF_copy_float(&packet[122], (float)(unloading->angular_velocity_lower_threshold_rad_s[1])); - TF_copy_float(&packet[126], (float)(unloading->angular_velocity_upper_threshold_rad_s[2])); - TF_copy_float(&packet[130], (float)(unloading->angular_velocity_target_rad_s[2])); - TF_copy_float(&packet[134], (float)(unloading->angular_velocity_lower_threshold_rad_s[2])); - TF_copy_u8(&packet[138], (uint8_t)(target_attitude_calculator->mode)); - TF_copy_u8(&packet[139], (uint8_t)(target_attitude_calculator->is_enabled)); - TF_copy_float(&packet[140], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[0])); - TF_copy_float(&packet[144], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[1])); - TF_copy_float(&packet[148], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[2])); - TF_copy_float(&packet[152], (float)(target_attitude_calculator->quaternion_target_i2t.scalar_part)); - TF_copy_float(&packet[156], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[0])); - TF_copy_float(&packet[160], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[1])); - TF_copy_float(&packet[164], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[2])); - TF_copy_u8(&packet[168], (uint8_t)(target_attitude_from_orbit->main_target_direction)); - TF_copy_u8(&packet[169], (uint8_t)(target_attitude_from_orbit->sub_target_direction)); - TF_copy_float(&packet[170], (float)(target_attitude_from_orbit->vec_to_main_target_body[0])); - TF_copy_float(&packet[174], (float)(target_attitude_from_orbit->vec_to_main_target_body[1])); - TF_copy_float(&packet[178], (float)(target_attitude_from_orbit->vec_to_main_target_body[2])); - TF_copy_float(&packet[182], (float)(target_attitude_from_orbit->vec_to_sub_target_body[0])); - TF_copy_float(&packet[186], (float)(target_attitude_from_orbit->vec_to_sub_target_body[1])); - TF_copy_float(&packet[190], (float)(target_attitude_from_orbit->vec_to_sub_target_body[2])); - TF_copy_float(&packet[194], (float)(target_attitude_from_orbit->target_lla_rad_m[0])); - TF_copy_float(&packet[198], (float)(target_attitude_from_orbit->target_lla_rad_m[1])); - TF_copy_float(&packet[202], (float)(target_attitude_from_orbit->target_lla_rad_m[2])); - TF_copy_u8(&packet[206], (uint8_t)(target_attitude_from_orbit->offset_angle_axis)); - TF_copy_float(&packet[207], (float)(target_attitude_from_orbit->offset_angle_rad)); - TF_copy_u8(&packet[211], (uint8_t)(quaternion_interpolator->current_target_num)); - TF_copy_u8(&packet[212], (uint8_t)(quaternion_interpolator->index)); - TF_copy_u32(&packet[213], (uint32_t)(quaternion_interpolator->previous_attitude_changed_ti)); - TF_copy_float(&packet[217], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[0])); - TF_copy_float(&packet[221], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[1])); - TF_copy_float(&packet[225], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[2])); - TF_copy_float(&packet[229], (float)(quaternion_interpolator->previous_quaternion_target_i2t.scalar_part)); - TF_copy_float(&packet[233], (float)(target_attitude_calculator->sampling_freq_Hz)); - TF_copy_float(&packet[237], (float)(target_attitude_calculator->cut_off_freq_lpf_1st_Hz)); + TF_copy_u8(&packet[43], (uint8_t)(gyro_selector->state)); + TF_copy_float(&packet[44], (float)(sun_sensor_selector->sun_intensity_upper_threshold_percent)); + TF_copy_float(&packet[48], (float)(sun_sensor_selector->sun_intensity_lower_threshold_percent)); + TF_copy_u8(&packet[52], (uint8_t)(rough_three_axis_determination->method)); + TF_copy_u8(&packet[53], (uint8_t)(rough_three_axis_determination->sun_invisible_propagation)); + TF_copy_float(&packet[54], (float)(rough_three_axis_determination->q_method_info.sun_vec_weight)); + TF_copy_float(&packet[58], (float)(rough_three_axis_determination->q_method_info.mag_vec_weight)); + TF_copy_u8(&packet[62], (uint8_t)(fine_three_axis_determination->method)); + TF_copy_float(&packet[63], (float)(aocs_manager->ang_vel_error_body_rad_s[0])); + TF_copy_float(&packet[67], (float)(aocs_manager->ang_vel_error_body_rad_s[1])); + TF_copy_float(&packet[71], (float)(aocs_manager->ang_vel_error_body_rad_s[2])); + TF_copy_float(&packet[75], (float)(aocs_manager->quaternion_error_b2t.vector_part[0])); + TF_copy_float(&packet[79], (float)(aocs_manager->quaternion_error_b2t.vector_part[1])); + TF_copy_float(&packet[83], (float)(aocs_manager->quaternion_error_b2t.vector_part[2])); + TF_copy_float(&packet[87], (float)(aocs_manager->quaternion_error_b2t.scalar_part)); + TF_copy_float(&packet[91], (float)(aocs_manager->sun_vec_error_rad)); + TF_copy_float(&packet[95], (float)(unloading->control_gain)); + TF_copy_u8(&packet[99], (uint8_t)(unloading->exec_is_enable)); + TF_copy_float(&packet[100], (float)(unloading->angular_velocity_upper_threshold_rad_s[0])); + TF_copy_float(&packet[104], (float)(unloading->angular_velocity_target_rad_s[0])); + TF_copy_float(&packet[108], (float)(unloading->angular_velocity_lower_threshold_rad_s[0])); + TF_copy_float(&packet[112], (float)(unloading->angular_velocity_upper_threshold_rad_s[1])); + TF_copy_float(&packet[116], (float)(unloading->angular_velocity_target_rad_s[1])); + TF_copy_float(&packet[120], (float)(unloading->angular_velocity_lower_threshold_rad_s[1])); + TF_copy_float(&packet[124], (float)(unloading->angular_velocity_upper_threshold_rad_s[2])); + TF_copy_float(&packet[128], (float)(unloading->angular_velocity_target_rad_s[2])); + TF_copy_float(&packet[132], (float)(unloading->angular_velocity_lower_threshold_rad_s[2])); + TF_copy_u8(&packet[136], (uint8_t)(target_attitude_calculator->mode)); + TF_copy_u8(&packet[137], (uint8_t)(target_attitude_calculator->is_enabled)); + TF_copy_float(&packet[138], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[0])); + TF_copy_float(&packet[142], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[1])); + TF_copy_float(&packet[146], (float)(target_attitude_calculator->quaternion_target_i2t.vector_part[2])); + TF_copy_float(&packet[150], (float)(target_attitude_calculator->quaternion_target_i2t.scalar_part)); + TF_copy_float(&packet[154], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[0])); + TF_copy_float(&packet[158], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[1])); + TF_copy_float(&packet[162], (float)(target_attitude_calculator->ang_vel_target_body_rad_s[2])); + TF_copy_u8(&packet[166], (uint8_t)(target_attitude_from_orbit->main_target_direction)); + TF_copy_u8(&packet[167], (uint8_t)(target_attitude_from_orbit->sub_target_direction)); + TF_copy_float(&packet[168], (float)(target_attitude_from_orbit->vec_to_main_target_body[0])); + TF_copy_float(&packet[172], (float)(target_attitude_from_orbit->vec_to_main_target_body[1])); + TF_copy_float(&packet[176], (float)(target_attitude_from_orbit->vec_to_main_target_body[2])); + TF_copy_float(&packet[180], (float)(target_attitude_from_orbit->vec_to_sub_target_body[0])); + TF_copy_float(&packet[184], (float)(target_attitude_from_orbit->vec_to_sub_target_body[1])); + TF_copy_float(&packet[188], (float)(target_attitude_from_orbit->vec_to_sub_target_body[2])); + TF_copy_float(&packet[192], (float)(target_attitude_from_orbit->target_lla_rad_m[0])); + TF_copy_float(&packet[196], (float)(target_attitude_from_orbit->target_lla_rad_m[1])); + TF_copy_float(&packet[200], (float)(target_attitude_from_orbit->target_lla_rad_m[2])); + TF_copy_u8(&packet[204], (uint8_t)(target_attitude_from_orbit->offset_angle_axis)); + TF_copy_float(&packet[205], (float)(target_attitude_from_orbit->offset_angle_rad)); + TF_copy_u8(&packet[209], (uint8_t)(quaternion_interpolator->current_target_num)); + TF_copy_u8(&packet[210], (uint8_t)(quaternion_interpolator->index)); + TF_copy_u32(&packet[211], (uint32_t)(quaternion_interpolator->previous_attitude_changed_ti)); + TF_copy_float(&packet[215], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[0])); + TF_copy_float(&packet[219], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[1])); + TF_copy_float(&packet[223], (float)(quaternion_interpolator->previous_quaternion_target_i2t.vector_part[2])); + TF_copy_float(&packet[227], (float)(quaternion_interpolator->previous_quaternion_target_i2t.scalar_part)); + TF_copy_float(&packet[231], (float)(target_attitude_calculator->sampling_freq_Hz)); + TF_copy_float(&packet[235], (float)(target_attitude_calculator->cut_off_freq_lpf_1st_Hz)); #endif - *len = 241; + *len = 239; return TF_TLM_FUNC_ACK_SUCCESS; }