C2A_Core
debug_apps.c
[詳解]
1 #pragma section REPRO
2 #include "debug_apps.h"
3 
4 #include <stddef.h> // for NULL
5 #include <stdint.h>
6 
15 #include "../../TlmCmd/telemetry_definitions.h"
21 #include "../../Applications/DriverInstances/di_gs.h"
22 // #include <src_core/TlmCmd/telemetry_generator.h>
23 #include "../../Library/vt100.h"
24 
25 void APP_DBG_flush_screen_(void);
26 void APP_DBG_print_time_stamp_(void);
27 void APP_DBG_print_cmd_status_(void);
31 void APP_DBG_print_git_rev_(void);
32 
34 {
35  return AI_create_app_info("debug_fscr", NULL, APP_DBG_flush_screen_);
36 }
37 
39 {
40  return AI_create_app_info("debug_tstm", NULL, APP_DBG_print_time_stamp_);
41 }
42 
44 {
45  return AI_create_app_info("debug_cmds", NULL, APP_DBG_print_cmd_status_);
46 }
47 
49 {
50  return AI_create_app_info("debug_el0", NULL, APP_DBG_print_event_logger0_);
51 }
52 
54 {
55  return AI_create_app_info("debug_el1", NULL, APP_DBG_print_event_logger1_);
56 }
57 
59 {
60  return AI_create_app_info("debug_eh", NULL, APP_DBG_print_event_handler_);
61 }
62 
64 {
65  return AI_create_app_info("debug_git_rev", NULL, APP_DBG_print_git_rev_);
66 }
67 
69 {
73  Printf("-- C2A SAMPLE Flight S/W (H-ON, F-ON) --\n");
75  Printf("BUILD: %s %s\n", __DATE__, __TIME__);
76 }
77 
79 {
81  Printf("CYCLE: TOTAL %08d, MODE %08d\n",
84  Printf("MODE: STAT %d, PREV %d, CURR %d\n",
86 }
87 
89 {
91  Printf("CMD: GS %3d, RT %3d, Ack %2d, ID 0x%02x, Sts %1d, EC %d\n",
98 }
99 
101 {
102 // 一旦めんどくさいので,以下の時のみ対応で書く
103 #ifdef EL_IS_ENABLE_TLOG
104 #ifdef EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
105 #ifdef EL_IS_ENABLE_EL_ERROR_LEVEL
106 #ifdef EL_IS_ENABLE_EVENT_NOTE
108 
110  Printf("EL Cnt: %3d, H %3d, M %3d, L %3d, EL %3d, EH %3d\n",
118  Printf("EL H: %3d, %10d, %10d, %08d, %02d\n",
119  latest_high->group, latest_high->local, latest_high->note,
120  latest_high->time.total_cycle, latest_high->time.step);
121 #endif
122 #endif
123 #endif
124 #endif
125 }
126 
128 {
129 // 一旦めんどくさいので,以下の時のみ対応で書く
130 #ifdef EL_IS_ENABLE_TLOG
131 #ifdef EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
132 #ifdef EL_IS_ENABLE_EL_ERROR_LEVEL
133 #ifdef EL_IS_ENABLE_EVENT_NOTE
136 
138  Printf("EL M: %3d, %10d, %10d, %08d, %02d\n",
139  latest_mid->group, latest_mid->local, latest_mid->note,
140  latest_mid->time.total_cycle, latest_mid->time.step);
142  Printf("EL L: %3d, %10d, %10d, %08d, %02d\n",
143  latest_low->group, latest_low->local, latest_low->note,
144  latest_low->time.total_cycle, latest_low->time.step);
145 #endif
146 #endif
147 #endif
148 #endif
149 }
150 
152 {
153  const EH_Log* latest = EH_get_the_nth_log_from_the_latest(0);
154  const EH_Log* second = EH_get_the_nth_log_from_the_latest(1);
156  Printf("EH: Cnt %3d, 1st %3d, %08d, 2nd %3d, %08d\n",
158  latest->rule_id,
160  second->rule_id,
162 }
163 
165 {
167  Printf("Git rev: CORE 0x%07x, USER 0x%07x\n",
169 }
170 
171 #pragma section
AppInfo AI_create_app_info(const char *name, void(*initializer)(void), void(*entry_point)(void))
AppInfo を作る
Definition: app_info.c:9
BCTの定義, BCT周りの関数
const uint32_t GIT_REV_USER_SHORT
Definition: c2a_core_main.c:23
const uint32_t GIT_REV_CORE_SHORT
Definition: c2a_core_main.c:21
void APP_DBG_flush_screen_(void)
Definition: debug_apps.c:68
AppInfo APP_DBG_print_git_rev(void)
Definition: debug_apps.c:63
void APP_DBG_print_event_logger0_(void)
Definition: debug_apps.c:100
AppInfo APP_DBG_flush_screen(void)
Definition: debug_apps.c:33
void APP_DBG_print_time_stamp_(void)
Definition: debug_apps.c:78
AppInfo APP_DBG_print_cmd_status(void)
Definition: debug_apps.c:43
AppInfo APP_DBG_print_time_stamp(void)
Definition: debug_apps.c:38
AppInfo APP_DBG_print_event_handler(void)
Definition: debug_apps.c:58
void APP_DBG_print_git_rev_(void)
Definition: debug_apps.c:164
void APP_DBG_print_event_handler_(void)
Definition: debug_apps.c:151
AppInfo APP_DBG_print_event_logger0(void)
Definition: debug_apps.c:48
AppInfo APP_DBG_print_event_logger1(void)
Definition: debug_apps.c:53
void APP_DBG_print_event_logger1_(void)
Definition: debug_apps.c:127
void APP_DBG_print_cmd_status_(void)
Definition: debug_apps.c:88
const GS_Driver *const gs_driver
Definition: di_gs.c:29
const EventHandler *const event_handler
const EH_Log * EH_get_the_nth_log_from_the_latest(uint16_t n)
EH_LogTable の最新からn番目の対応ログを取得
イベント発火型処理を行う
const EL_Event * EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL err_level, uint16_t n)
TLog のイベントテーブルの最新からn番目のイベントを取得
Definition: event_logger.c:721
const EventLogger *const event_logger
Definition: event_logger.c:155
アノマリやエラーなどの各種イベントを記録する
@ EL_ERROR_LEVEL_MIDDLE
Definition: event_logger.h:264
@ EL_ERROR_LEVEL_EH
Definition: event_logger.h:270
@ EL_ERROR_LEVEL_HIGH
Definition: event_logger.h:262
@ EL_ERROR_LEVEL_LOW
Definition: event_logger.h:266
@ EL_ERROR_LEVEL_EL
Definition: event_logger.h:268
git revisionをコードに埋め込むための準備をする
const CommandDispatcher *const gs_command_dispatcher
地上局から発行された RTC (Real Time Cmd) を実行する
const ModeManager *const mode_manager
Definition: mode_manager.c:48
モード遷移の制御の定義
PacketList PH_rt_cmd_list
PacketList PH_gs_cmd_list
C2A 全体を流れる Common Packet の配送を制御する
uint32_t PL_count_executed_nodes(const PacketList *pl)
PacketList で実行された Node 数を返す
Definition: packet_list.c:97
HW 依存 Print, つまり ログ情報のフォーマット出力(デバッグ出力)
void Printf(const char *format,...)
Definition: print.c:9
C89 環境用 stdint.h
uint32_t err_code
各 Cmd ユニークなエラーコード.各 App で定義する enum などを入れることを想定.
CCP_EXEC_STS exec_sts
CCP_EXEC_STS.Cmd の統一的なエラーコード
CMD_CODE code
実行コマンドID
CCP_CmdRet cmd_ret
実行結果
CDIS_ExecInfo prev
前回のコマンド実行情報
EH 対応のログ
cycle_t respond_time_in_master_cycle
EH_RULE_ID rule_id
uint32_t respond_counter
イベント
Definition: event_logger.h:297
EL_GROUP group
イベントを特定する group id
Definition: event_logger.h:298
uint32_t note
Definition: event_logger.h:305
uint32_t local
Definition: event_logger.h:299
ObcTime time
発生時刻
Definition: event_logger.h:303
uint32_t record_counters[EL_ERROR_LEVEL_MAX]
エラーレベルごとの記録数
Definition: event_logger.h:319
uint32_t record_counter_total
イベント記録数
Definition: event_logger.h:318
EH_LogTable log_table
EH 対応ログテーブル
EL_EventStatistics statistics
統計情報
Definition: event_logger.h:394
GS_Info info[GS_PORT_TYPE_NUM]
CCSDS 用と UART 用 2 つ
Definition: gs.h:82
GS_PORT_TYPE tlm_tx_port_type
Definition: gs.h:85
struct GS_Info::@69 rx
PH_ACK cmd_ack
受信した CMD の実行結果
Definition: gs.h:42
MD_MODEID current_id
現在のモードID
Definition: mode_manager.h:67
MD_MODEID previous_id
ひとつ前のモードID
Definition: mode_manager.h:66
MM_STATUS stat
モード遷移状態
Definition: mode_manager.h:65
cycle_t total_cycle
TI のこと. OBC が起動してから(正確には,構造体が初期化されてから)の経過時間
Definition: obc_time.h:19
step_t step
内部 step. TimeLine での処理時間分割に使われる
Definition: obc_time.h:21
task list に設定されたタスクを実行する主体
cycle_t TMGR_get_master_mode_cycle(void)
現在の mode_cycle を返す
Definition: time_manager.c:101
cycle_t TMGR_get_master_total_cycle(void)
現在の total_cycle を返す
Definition: time_manager.c:97
OBC時刻のカウントアップと,各種衛星時刻関連処理
void VT100_erase_line(void)
Definition: vt100.c:31
void VT100_reset_cursor(void)
Definition: vt100.c:93
void VT100_erase_down(void)
Definition: vt100.c:6