5 #ifndef TIME_MANAGER_H_
6 #define TIME_MANAGER_H_
9 #include "../../TlmCmd/common_cmd_packet.h"
11 #define TMGR_DEFAULT_UNIXTIME_EPOCH_FOR_UTL (1577836800.0)
master_clock_ で OBC 時刻情報を保持するとともに, unixtime との紐づけや初期化情報の記録を行う
uint8_t initializing_flag
cycle_t ti_at_last_update
"unixtime_info_ を最後に更新した (GPSなどの) 時刻情報" を観測した時点の total_cycle
double unixtime_at_ti0
master_clock が {0, 0, 0} の時の unixtime
ObcTime initializing_time
double utl_unixtime_epoch
double TMGR_get_utl_unixtime_epoch(void)
utl_unixtime_epoch を取得する
double TMGR_get_precise_ti_from_unixtime(const double unixtime)
unixtime を TI (cycle単位) に変換する
TMGR_ACK TMGR_update_unixtime(const double unixtime, const ObcTime *time)
unixtime と TI の紐づき情報を更新する
uint32_t TMGR_get_master_total_cycle_in_msec(void)
現在の total_cycle をミリ秒単位で返す
double TMGR_get_unixtime_at_ti0(void)
unixtime_at_ti0 を取得する
CCP_CmdRet Cmd_TMGR_CLEAR_UNIXTIME_INFO(const CommonCmdPacket *packet)
const TimeManager *const time_manager
CCP_CmdRet Cmd_TMGR_SET_CYCLE_CORRECTION(const CommonCmdPacket *packet)
uint32_t TMGR_get_master_mode_cycle_in_msec(void)
現在の mode_cycle をミリ秒単位で返す
cycle_t TMGR_get_master_mode_cycle(void)
現在の mode_cycle を返す
void TMGR_init(void)
TimeManager 構造体を初期化する
double TMGR_get_precise_cycles_per_sec(void)
OBC のクロック誤差を反映した cycles_per_sec を返す
void TMGR_count_up_master_clock(void)
master_clock_ をstep刻みでインクリメントする
cycle_t TMGR_get_master_total_cycle(void)
現在の total_cycle を返す
ObcTime TMGR_get_obc_time_from_unixtime(const double unixtime)
unixtime を ObcTime に変換する
void TMGR_down_initializing_flag(void)
C2Aの初期化終了時に呼び出し, 初期化flagを下げ, TMGRをもう一度クリアする
CCP_CmdRet Cmd_TMGR_UPDATE_UNIXTIME(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TMGR_SET_TIME(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TMGR_SET_UTL_UNIXTIME_EPOCH(const CommonCmdPacket *packet)
void TMGR_clear(void)
master_clock_ と unixtime_info_ をクリアし全てゼロにする
double TMGR_get_unixtime_from_obc_time(const ObcTime *time)
ObcTime を unixtime に変換する
ObcTime TMGR_get_master_clock(void)
現在の master_clock_ を取得する
double TMGR_get_unixtime_from_utl_unixtime(const cycle_t utl_unixtime)
UTL_cmdで用いる utl_unixtime を 一般的なunixtimeに変換する
void TMGR_clear_master_mode_cycle(void)
master_clock_ の mode_cycle をゼロにする
ObcTime TMGR_get_master_clock_from_boot(void)
初期化にかかった時間も加算した master_clock_ を返す
void TMGR_clear_unixtime_info(void)
unixtime_info_ を初期化する
CCP_CmdRet Cmd_TMGR_RESET_CYCLE_CORRECTION(const CommonCmdPacket *packet)
step_t TMGR_get_master_step(void)
現在の step を返す
cycle_t TMGR_get_ti_from_utl_unixtime(const cycle_t utl_unixtime)
引数で指定された utl_unixtime に対応する TI を返す
double TMGR_get_precise_ti_in_sec(const ObcTime *time)
OBC のクロック誤差を反映した正確な ti を秒単位で返す
TMGR_ACK
Time Manager の汎用返り値
@ TMGR_ACK_PARAM_ERR
パラメタエラー
double TMGR_get_current_unixtime(void)
現在の unixtime を OBC の ti をもとに計算して返す