6 #ifndef TELEMETRY_MANAGER_H_
7 #define TELEMETRY_MANAGER_H_
9 #include "../System/ApplicationManager/app_info.h"
10 #include "../TlmCmd/common_cmd_packet.h"
11 #include "../TlmCmd/common_cmd_packet_util.h"
12 #include "../TlmCmd/block_command_table.h"
18 #define TLM_MGR_USE_BC_NUM (10)
19 #define TLM_MGR_MAX_CMD_NUM_PER_BC (10)
21 #if BCT_MAX_CMD_NUM < TLM_MGR_MAX_CMD_NUM_PER_BC
22 #error BCT_MAX_CMD_NUM is not enough for TelemetryManager
APID
Application Process ID
BC に登録された(テレメ生成などの)コマンドの情報(BC の block ごと)
TLM_MGR_BC_ROLE bc_role
その BC の役割
TLM_MGR_CmdBlock の 1 cmd の情報
TLM_MGR_CMD_TYPE cmd_type
BC に登録された(テレメ生成などの)コマンドのタイプ (未登録は TLM_MGR_CMD_TYPE_UNREGISTERED (0))
uint8_t dr_partition
登録された tlm 生成コマンドの dr_partition (未登録は 0)
APID apid
登録された tlm 生成コマンドの APID (未登録は 0)
TLM_CODE tlm_id
登録された tlm 生成コマンドの生成 tlm id (未登録は 0)
BC に登録された(テレメ生成などの)コマンドの情報
どう BC を管理し,テレメ生成コマンドを登録し,動かしていくかの情報.途中計算などに使う
uint8_t cmd_table_idxes_size
cmd_table_idxes の配列数
uint8_t registered_cmd_num
TelemetryManager の AppInfo構造体
TLM_MGR_CmdTable cmd_table
現在 BC に登録された(テレメ生成などの)コマンド
uint8_t is_inited
初期化されているか?
TLM_MGR_RegisterInfo low_freq
TLM_MGR_BC_ROLE_LOW_FREQ_TLM; User テレメ (1/10 Hz)
TLM_MGR_RegisterInfo high_freq
TLM_MGR_BC_ROLE_HIGH_FREQ_TLM; User テレメ (1 Hz)
bct_id_t deploy_bc_id
master BC を deploy する BC の ID
bct_id_t master_bc_id
TLM_MGR_USE_BC_NUM 個の tlm bc を順次実行していく master BC の ID
CCP_CmdRet Cmd_TLM_MGR_CLEAR_USER_TLM(const CommonCmdPacket *packet)
User テレメ (HIGH_FREQ, LOW_FREQ) を初期化
#define TLM_MGR_MAX_CMD_NUM_PER_BC
1 BC に何個のテレメ生成などのコマンドを登録できるか.基本的に 10 固定を想定
#define TLM_MGR_USE_BC_NUM
用いる BC の数.基本的に 10 固定を想定
CCP_CmdRet Cmd_TLM_MGR_DELETE_GENERATE_ST_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLM_MGR_DELETE_FORWARD_AS_ST_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLM_MGR_CLEAR_LOW_FREQ_TLM(const CommonCmdPacket *packet)
LOW_FREQ テレメを初期化
CCP_CmdRet Cmd_TLM_MGR_STOP_TLM(const CommonCmdPacket *packet)
TLM 送出一時停止
const TelemetryManager *const telemetry_manager
CCP_CmdRet Cmd_TLM_MGR_INIT_MASTER_AND_DEPLOY_BC(const CommonCmdPacket *packet)
master bc の初期化
CCP_CmdRet Cmd_TLM_MGR_DELETE_GENERATE_RT_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLM_MGR_CLEAR_HK_TLM(const CommonCmdPacket *packet)
HK テレメを初期化
TLM_MGR_CMD_TYPE
BC に登録された(テレメ生成などの)コマンドのタイプ
@ TLM_MGR_CMD_TYPE_TG_GENERATE_RT_TLM
@ TLM_MGR_CMD_TYPE_TG_FORWARD_AS_RT_TLM
@ TLM_MGR_CMD_TYPE_DR_REPLAY_TLM
@ TLM_MGR_CMD_TYPE_UNREGISTERED
まだ使われていない (これは 0 であることが必要)
@ TLM_MGR_CMD_TYPE_TG_GENERATE_ST_TLM
@ TLM_MGR_CMD_TYPE_TG_FORWARD_AS_ST_TLM
CCP_CmdRet Cmd_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM(const CommonCmdPacket *packet)
AppInfo TLM_MGR_create_app(void)
TLM_MGR_BC_ROLE
BC の役割.これにて実行種別が変わる
@ TLM_MGR_BC_ROLE_HK_TLM
HK テレメ (or 全系や system で入れておきたい tlm (1 Hz))
@ TLM_MGR_BC_ROLE_LOW_FREQ_TLM
User (LOW_FREQ) テレメ (1/10 Hz)
@ TLM_MGR_BC_ROLE_HIGH_FREQ_TLM
User (HIGH_FREQ) テレメ (1 Hz)
CCP_CmdRet Cmd_TLM_MGR_INIT(const CommonCmdPacket *packet)
初期化
CCP_CmdRet Cmd_TLM_MGR_START_TLM(const CommonCmdPacket *packet)
TLM 送出開始
CCP_CmdRet Cmd_TLM_MGR_REGISTER_GENERATE_ST_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLM_MGR_REGISTER_GENERATE_RT_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLM_MGR_CLEAR_HIGH_FREQ_TLM(const CommonCmdPacket *packet)
HIGH_FREQ テレメを初期化
CCP_CmdRet Cmd_TLM_MGR_DELETE_REPLAY_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLM_MGR_DELETE_FORWARD_AS_RT_TLM(const CommonCmdPacket *packet)
@ TLM_MGR_ERR_CODE_CMD_NOT_FOUND
登録コマンド消去時に,コマンドが見つからない
@ TLM_MGR_ERR_CODE_CMD_FULL
これ以上テレメ生成コマンドを登録できない
@ TLM_MGR_ERR_CODE_INVALID_CMD_TYPE
不正な TLM_MGR_CMD_TYPE
@ TLM_MGR_ERR_CODE_OTHER_ERR
その他のエラー
@ TLM_MGR_ERR_CODE_BCT_ERR
BCT 関連のエラー
@ TLM_MGR_ERR_CODE_INVALID_BC_ROLE
不正な TLM_MGR_BC_ROLE
CCP_CmdRet Cmd_TLM_MGR_REGISTER_REPLAY_TLM(const CommonCmdPacket *packet)