C2A_Core
telemetry_manager.h ファイル

userがテレメトリ詰まりをやTL溢れを防ぎつつ,またCDHなどがテレメトリを管理しやすくするためのApp [詳解]

telemetry_manager.h の依存先関係図:
被依存関係図:

[ソースコード]

データ構造

struct  TLM_MGR_RegisterInfo
 どう BC を管理し,テレメ生成コマンドを登録し,動かしていくかの情報.途中計算などに使う [詳解]
 
struct  TLM_MGR_CmdElem
 TLM_MGR_CmdBlock の 1 cmd の情報 [詳解]
 
struct  TLM_MGR_CmdBlock
 BC に登録された(テレメ生成などの)コマンドの情報(BC の block ごと) [詳解]
 
struct  TLM_MGR_CmdTable
 BC に登録された(テレメ生成などの)コマンドの情報 [詳解]
 
struct  TelemetryManager
 TelemetryManager の AppInfo構造体 [詳解]
 

マクロ定義

#define TLM_MGR_USE_BC_NUM   (10)
 用いる BC の数.基本的に 10 固定を想定 [詳解]
 
#define TLM_MGR_MAX_CMD_NUM_PER_BC   (10)
 1 BC に何個のテレメ生成などのコマンドを登録できるか.基本的に 10 固定を想定 [詳解]
 

列挙型

enum  TLM_MGR_ERR_CODE {
  TLM_MGR_ERR_CODE_OK , TLM_MGR_ERR_CODE_CMD_FULL , TLM_MGR_ERR_CODE_CMD_NOT_FOUND , TLM_MGR_ERR_CODE_INVALID_BC_ROLE ,
  TLM_MGR_ERR_CODE_INVALID_CMD_TYPE , TLM_MGR_ERR_CODE_BCT_ERR , TLM_MGR_ERR_CODE_OTHER_ERR
}
 汎用エラーコード [詳解]
 
enum  TLM_MGR_BC_ROLE { TLM_MGR_BC_ROLE_HK_TLM , TLM_MGR_BC_ROLE_HIGH_FREQ_TLM , TLM_MGR_BC_ROLE_LOW_FREQ_TLM }
 BC の役割.これにて実行種別が変わる [詳解]
 
enum  TLM_MGR_CMD_TYPE {
  TLM_MGR_CMD_TYPE_UNREGISTERED = 0 , TLM_MGR_CMD_TYPE_TG_GENERATE_RT_TLM , TLM_MGR_CMD_TYPE_TG_GENERATE_ST_TLM , TLM_MGR_CMD_TYPE_TG_FORWARD_AS_RT_TLM ,
  TLM_MGR_CMD_TYPE_TG_FORWARD_AS_ST_TLM , TLM_MGR_CMD_TYPE_DR_REPLAY_TLM
}
 BC に登録された(テレメ生成などの)コマンドのタイプ [詳解]
 

関数

AppInfo TLM_MGR_create_app (void)
 
CCP_CmdRet Cmd_TLM_MGR_INIT (const CommonCmdPacket *packet)
 初期化 [詳解]
 
CCP_CmdRet Cmd_TLM_MGR_INIT_MASTER_AND_DEPLOY_BC (const CommonCmdPacket *packet)
 master bc の初期化 [詳解]
 
CCP_CmdRet Cmd_TLM_MGR_CLEAR_HK_TLM (const CommonCmdPacket *packet)
 HK テレメを初期化 [詳解]
 
CCP_CmdRet Cmd_TLM_MGR_CLEAR_HIGH_FREQ_TLM (const CommonCmdPacket *packet)
 HIGH_FREQ テレメを初期化 [詳解]
 
CCP_CmdRet Cmd_TLM_MGR_CLEAR_LOW_FREQ_TLM (const CommonCmdPacket *packet)
 LOW_FREQ テレメを初期化 [詳解]
 
CCP_CmdRet Cmd_TLM_MGR_CLEAR_USER_TLM (const CommonCmdPacket *packet)
 User テレメ (HIGH_FREQ, LOW_FREQ) を初期化 [詳解]
 
CCP_CmdRet Cmd_TLM_MGR_START_TLM (const CommonCmdPacket *packet)
 TLM 送出開始 [詳解]
 
CCP_CmdRet Cmd_TLM_MGR_STOP_TLM (const CommonCmdPacket *packet)
 TLM 送出一時停止 [詳解]
 
CCP_CmdRet Cmd_TLM_MGR_REGISTER_GENERATE_RT_TLM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_TLM_MGR_REGISTER_GENERATE_ST_TLM (const CommonCmdPacket *packet)
 
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)
 
CCP_CmdRet Cmd_TLM_MGR_REGISTER_REPLAY_TLM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_TLM_MGR_DELETE_GENERATE_RT_TLM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_TLM_MGR_DELETE_GENERATE_ST_TLM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_TLM_MGR_DELETE_FORWARD_AS_RT_TLM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_TLM_MGR_DELETE_FORWARD_AS_ST_TLM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_TLM_MGR_DELETE_REPLAY_TLM (const CommonCmdPacket *packet)
 

変数

const TelemetryManager *const telemetry_manager
 

詳解

userがテレメトリ詰まりをやTL溢れを防ぎつつ,またCDHなどがテレメトリを管理しやすくするためのApp

覚え書き
利用方法は telemetry_manager.h の最下部を参照(FIXME: あとでdocumentに移す)

telemetry_manager.h に定義があります。

マクロ定義詳解

◆ TLM_MGR_MAX_CMD_NUM_PER_BC

#define TLM_MGR_MAX_CMD_NUM_PER_BC   (10)

1 BC に何個のテレメ生成などのコマンドを登録できるか.基本的に 10 固定を想定

telemetry_manager.h19 行目に定義があります。

◆ TLM_MGR_USE_BC_NUM

#define TLM_MGR_USE_BC_NUM   (10)

用いる BC の数.基本的に 10 固定を想定

telemetry_manager.h18 行目に定義があります。

列挙型詳解

◆ TLM_MGR_BC_ROLE

BC の役割.これにて実行種別が変わる

覚え書き
uint8_t を想定
列挙値
TLM_MGR_BC_ROLE_HK_TLM 

HK テレメ (or 全系や system で入れておきたい tlm (1 Hz))

TLM_MGR_BC_ROLE_HIGH_FREQ_TLM 

User (HIGH_FREQ) テレメ (1 Hz)

TLM_MGR_BC_ROLE_LOW_FREQ_TLM 

User (LOW_FREQ) テレメ (1/10 Hz)

telemetry_manager.h48 行目に定義があります。

◆ TLM_MGR_CMD_TYPE

BC に登録された(テレメ生成などの)コマンドのタイプ

覚え書き
uint8_t を想定
列挙値
TLM_MGR_CMD_TYPE_UNREGISTERED 

まだ使われていない (これは 0 であることが必要)

TLM_MGR_CMD_TYPE_TG_GENERATE_RT_TLM 
TLM_MGR_CMD_TYPE_TG_GENERATE_ST_TLM 
TLM_MGR_CMD_TYPE_TG_FORWARD_AS_RT_TLM 
TLM_MGR_CMD_TYPE_TG_FORWARD_AS_ST_TLM 
TLM_MGR_CMD_TYPE_DR_REPLAY_TLM 

telemetry_manager.h61 行目に定義があります。

◆ TLM_MGR_ERR_CODE

汎用エラーコード

覚え書き
uint8_t を想定
列挙値
TLM_MGR_ERR_CODE_OK 
TLM_MGR_ERR_CODE_CMD_FULL 

これ以上テレメ生成コマンドを登録できない

TLM_MGR_ERR_CODE_CMD_NOT_FOUND 

登録コマンド消去時に,コマンドが見つからない

TLM_MGR_ERR_CODE_INVALID_BC_ROLE 

不正な TLM_MGR_BC_ROLE

TLM_MGR_ERR_CODE_INVALID_CMD_TYPE 

不正な TLM_MGR_CMD_TYPE

TLM_MGR_ERR_CODE_BCT_ERR 

BCT 関連のエラー

TLM_MGR_ERR_CODE_OTHER_ERR 

その他のエラー

telemetry_manager.h31 行目に定義があります。

関数詳解

◆ Cmd_TLM_MGR_CLEAR_HIGH_FREQ_TLM()

CCP_CmdRet Cmd_TLM_MGR_CLEAR_HIGH_FREQ_TLM ( const CommonCmdPacket packet)

HIGH_FREQ テレメを初期化

覚え書き
DCU を使っているので,完了に最大 1 秒ほどかかる

telemetry_manager.c1106 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_CLEAR_HK_TLM()

CCP_CmdRet Cmd_TLM_MGR_CLEAR_HK_TLM ( const CommonCmdPacket packet)

HK テレメを初期化

覚え書き
DCU を使っているので,完了に最大 1 秒ほどかかる

telemetry_manager.c1095 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_CLEAR_LOW_FREQ_TLM()

CCP_CmdRet Cmd_TLM_MGR_CLEAR_LOW_FREQ_TLM ( const CommonCmdPacket packet)

LOW_FREQ テレメを初期化

覚え書き
DCU を使っているので,完了に最大 1 秒ほどかかる

telemetry_manager.c1117 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_CLEAR_USER_TLM()

CCP_CmdRet Cmd_TLM_MGR_CLEAR_USER_TLM ( const CommonCmdPacket packet)

User テレメ (HIGH_FREQ, LOW_FREQ) を初期化

覚え書き
DCU を使っているので,完了に最大 1 秒ほどかかる

telemetry_manager.c1128 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_DELETE_FORWARD_AS_RT_TLM()

CCP_CmdRet Cmd_TLM_MGR_DELETE_FORWARD_AS_RT_TLM ( const CommonCmdPacket packet)

telemetry_manager.c1270 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_DELETE_FORWARD_AS_ST_TLM()

CCP_CmdRet Cmd_TLM_MGR_DELETE_FORWARD_AS_ST_TLM ( const CommonCmdPacket packet)

telemetry_manager.c1284 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_DELETE_GENERATE_RT_TLM()

CCP_CmdRet Cmd_TLM_MGR_DELETE_GENERATE_RT_TLM ( const CommonCmdPacket packet)

telemetry_manager.c1243 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_DELETE_GENERATE_ST_TLM()

CCP_CmdRet Cmd_TLM_MGR_DELETE_GENERATE_ST_TLM ( const CommonCmdPacket packet)

telemetry_manager.c1256 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_DELETE_REPLAY_TLM()

CCP_CmdRet Cmd_TLM_MGR_DELETE_REPLAY_TLM ( const CommonCmdPacket packet)

telemetry_manager.c1299 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_INIT()

CCP_CmdRet Cmd_TLM_MGR_INIT ( const CommonCmdPacket packet)

初期化

覚え書き
DCU を使っているので,完了に最大 1.5 秒ほどかかる

telemetry_manager.c1023 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_INIT_MASTER_AND_DEPLOY_BC()

CCP_CmdRet Cmd_TLM_MGR_INIT_MASTER_AND_DEPLOY_BC ( const CommonCmdPacket packet)

master bc の初期化

telemetry_manager.c1084 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM()

CCP_CmdRet Cmd_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM ( const CommonCmdPacket packet)

telemetry_manager.c1201 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM()

CCP_CmdRet Cmd_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM ( const CommonCmdPacket packet)

telemetry_manager.c1215 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_REGISTER_GENERATE_RT_TLM()

CCP_CmdRet Cmd_TLM_MGR_REGISTER_GENERATE_RT_TLM ( const CommonCmdPacket packet)

telemetry_manager.c1174 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_REGISTER_GENERATE_ST_TLM()

CCP_CmdRet Cmd_TLM_MGR_REGISTER_GENERATE_ST_TLM ( const CommonCmdPacket packet)

telemetry_manager.c1187 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_REGISTER_REPLAY_TLM()

CCP_CmdRet Cmd_TLM_MGR_REGISTER_REPLAY_TLM ( const CommonCmdPacket packet)

telemetry_manager.c1230 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_START_TLM()

CCP_CmdRet Cmd_TLM_MGR_START_TLM ( const CommonCmdPacket packet)

TLM 送出開始

覚え書き
master bc の末尾を Cmd_TLCD_DEPLOY_BLOCK にして deploy block しているだけ

telemetry_manager.c1140 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_TLM_MGR_STOP_TLM()

CCP_CmdRet Cmd_TLM_MGR_STOP_TLM ( const CommonCmdPacket packet)

TLM 送出一時停止

覚え書き
Cmd_TLCD_CLEAR_ALL_TIMELINE しているだけ
Cmd_TLCD_CLEAR_ALL_TIMELINE をGSから送ってもいいが, TL No がマジックナンバーになるので.

telemetry_manager.c1163 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ TLM_MGR_create_app()

AppInfo TLM_MGR_create_app ( void  )

telemetry_manager.c351 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

変数詳解

◆ telemetry_manager

const TelemetryManager* const telemetry_manager
extern

telemetry_manager.c347 行目に定義があります。