C2A_Core
event_logger.h
[詳解]
1 
36 #ifndef EVENT_LOGGER_H_
37 #define EVENT_LOGGER_H_
38 
39 // TODO: FALSHメモリ等の大容量不揮発ボリュームへの書き込み
40 // TODO: EL そのもの全体をビルドする,しないをえらべる ifdef を追加(メモリのため)
41 // TODO: ObcTime の初期化が OBCT_clear ではなく memset 0x00 である(現状問題ないが,今後問題になるかも)
42 
43 #include <stddef.h>
44 #include <stdint.h>
45 #include "../../TlmCmd/common_cmd_packet.h"
46 #include "../TimeManager/obc_time.h"
47 
48 // EL_GROUP (uint32_t を想定) をここで定義する
50 
51 #define EL_TLOG_TLM_PAGE_SIZE (28)
52 #define EL_TLOG_TLM_PAGE_MAX_HIGH (4)
53 #define EL_TLOG_TLM_PAGE_MAX_MIDDLE (4)
54 #define EL_TLOG_TLM_PAGE_MAX_LOW (4)
55 #define EL_CLOG_TLM_PAGE_SIZE (18)
56 #define EL_CLOG_TLM_PAGE_MAX_HIGH (4)
57 #define EL_CLOG_TLM_PAGE_MAX_MIDDLE (4)
58 #define EL_CLOG_TLM_PAGE_MAX_LOW (4)
59 
60 #define EL_TLOG_LOG_SIZE_MAX_EL (16)
61 #define EL_CLOG_LOG_SIZE_MAX_EL (8)
62 #define EL_TLOG_LOG_SIZE_MAX_EH (16)
63 #define EL_CLOG_LOG_SIZE_MAX_EH (8)
64 
65 #define EL_IS_ENABLE_TLOG
66 #define EL_IS_ENABLE_CLOG
67 // #define EL_IS_ENABLE_NVLOG //!< TODO: NvLog (不揮発Log) を有効にするか?
68 #define EL_IS_ENABLE_EVENT_NOTE
69 #define EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
70 #define EL_IS_ENABLE_EL_ERROR_LEVEL
74 #define SIZE_OF_EL_CLOG_COUNTER_T (2)
75 
76 // 以下 event_logger_params.h にて,以下のような設定を定義する.主にメモリインパクトのために調整可能にしている.
77 // なお,きちんと動作確認されているのは,EL_IS_ENABLE_MIDDLE_ERROR_LEVEL のみ無効なモードのとき
78 // #define EL_IS_ENABLE_TLOG: TLog を有効にする?
79 // #define EL_IS_ENABLE_CLOG: CLog を有効にする?
80 // #define EL_IS_ENABLE_EVENT_NOTE: EL_Event.note を有効にする?
81 // #define EL_IS_ENABLE_MIDDLE_ERROR_LEVEL: EL_ERROR_LEVEL_MIDDLE を使えるようにするか?
82 // #define EL_IS_ENABLE_EL_ERROR_LEVEL: EL_ERROR_LEVEL_EL を使えるようにするか?
83 // SIZE_OF_EL_CLOG_COUNTER_T: el_clog_counter_t の型サイズ
84 // 上部で定義されている,各種tableサイズ
86 
87 #define EL_LOG_MINIMUM_REQUIRED (2)
88 #define EL_LOG_MINIMUM_REQUIRED_EL_LOG (4)
89 
90 #ifdef EL_IS_ENABLE_TLOG
91 
92 #if EL_TLOG_TLM_PAGE_SIZE < EL_LOG_MINIMUM_REQUIRED
93 #error EL_TLOG_TLM_PAGE_SIZE must be >= EL_LOG_MINIMUM_REQUIRED
94 #endif
95 
96 #define EL_TLOG_LOG_SIZE_MAX_HIGH (EL_TLOG_TLM_PAGE_SIZE * EL_TLOG_TLM_PAGE_MAX_HIGH)
97 #if EL_TLOG_TLM_PAGE_MAX_HIGH <= 0
98 #error EL_TLOG_TLM_PAGE_MAX_HIGH must be a positive number
99 #endif
100 #ifdef EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
101 #define EL_TLOG_LOG_SIZE_MAX_MIDDLE (EL_TLOG_TLM_PAGE_SIZE * EL_TLOG_TLM_PAGE_MAX_MIDDLE)
102 #if EL_TLOG_TLM_PAGE_MAX_MIDDLE <= 0
103 #error EL_TLOG_TLM_PAGE_MAX_MIDDLE must be a positive number
104 #endif
105 #else // EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
106 #undef EL_TLOG_TLM_PAGE_MAX_MIDDLE
107 #endif // EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
108 #define EL_TLOG_LOG_SIZE_MAX_LOW (EL_TLOG_TLM_PAGE_SIZE * EL_TLOG_TLM_PAGE_MAX_LOW)
109 #if EL_TLOG_TLM_PAGE_MAX_LOW <= 0
110 #error EL_TLOG_TLM_PAGE_MAX_LOW must be a positive number
111 #endif
112 
113 #ifdef EL_IS_ENABLE_EL_ERROR_LEVEL
114 #if EL_TLOG_LOG_SIZE_MAX_EL < EL_LOG_MINIMUM_REQUIRED_EL_LOG
115 #error EL_TLOG_LOG_SIZE_MAX_EL is too small
116 #endif
117 #else // EL_IS_ENABLE_EL_ERROR_LEVEL
118 #undef EL_TLOG_LOG_SIZE_MAX_EL
119 #endif // EL_IS_ENABLE_EL_ERROR_LEVEL
120 
121 // FIXME: event_logger.h と event_handler.h が相互 include になってしまいビルドできないので,一時的にこのアサーションを無効化
122 // #include "event_handler.h"
123 // #if EL_TLOG_LOG_SIZE_MAX_EH <= EH_MAX_RULE_NUM_OF_EL_ID_DUPLICATES
124 // #error EL_TLOG_LOG_SIZE_MAX_EH is too small
125 // #endif
126 #if EL_TLOG_LOG_SIZE_MAX_EH <= 0
127 #error EL_TLOG_LOG_SIZE_MAX_EH must be a positive number
128 #endif
129 
130 #else // EL_IS_ENABLE_TLOG
131 
132 #undef EL_TLOG_TLM_PAGE_SIZE
133 #undef EL_TLOG_TLM_PAGE_MAX_HIGH
134 #undef EL_TLOG_TLM_PAGE_MAX_MIDDLE
135 #undef EL_TLOG_TLM_PAGE_MAX_LOW
136 #undef EL_TLOG_LOG_SIZE_MAX_EL
137 #undef EL_TLOG_LOG_SIZE_MAX_EH
138 
139 #endif // EL_IS_ENABLE_TLOG
140 
141 
142 #ifdef EL_IS_ENABLE_CLOG
143 
144 #if EL_CLOG_TLM_PAGE_SIZE < EL_LOG_MINIMUM_REQUIRED
145 #error EL_CLOG_TLM_PAGE_SIZE must be >= EL_LOG_MINIMUM_REQUIRED
146 #endif
147 
148 #define EL_CLOG_LOG_SIZE_MAX_HIGH (EL_CLOG_TLM_PAGE_SIZE * EL_CLOG_TLM_PAGE_MAX_HIGH)
149 #if EL_CLOG_TLM_PAGE_MAX_HIGH <= 0
150 #error EL_CLOG_TLM_PAGE_MAX_HIGH must be a positive number
151 #endif
152 #ifdef EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
153 #define EL_CLOG_LOG_SIZE_MAX_MIDDLE (EL_CLOG_TLM_PAGE_SIZE * EL_CLOG_TLM_PAGE_MAX_MIDDLE)
154 #if EL_CLOG_TLM_PAGE_MAX_MIDDLE <= 0
155 #error EL_CLOG_TLM_PAGE_MAX_MIDDLE must be a positive number
156 #endif
157 #else // EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
158 #undef EL_CLOG_TLM_PAGE_MAX_MIDDLE
159 #endif // EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
160 #define EL_CLOG_LOG_SIZE_MAX_LOW (EL_CLOG_TLM_PAGE_SIZE * EL_CLOG_TLM_PAGE_MAX_LOW)
161 #if EL_CLOG_TLM_PAGE_MAX_LOW <= 0
162 #error EL_CLOG_TLM_PAGE_MAX_LOW must be a positive number
163 #endif
164 
165 #ifdef EL_IS_ENABLE_EL_ERROR_LEVEL
166 #if EL_CLOG_LOG_SIZE_MAX_EL < EL_LOG_MINIMUM_REQUIRED_EL_LOG
167 #error EL_CLOG_LOG_SIZE_MAX_EL is too small
168 #endif
169 #else // EL_IS_ENABLE_EL_ERROR_LEVEL
170 #undef EL_CLOG_LOG_SIZE_MAX_EL
171 #endif // EL_IS_ENABLE_EL_ERROR_LEVEL
172 
173 #if EL_CLOG_LOG_SIZE_MAX_EH <= 0
174 #error EL_CLOG_LOG_SIZE_MAX_EH must be a positive number
175 #endif
176 
177 #if SIZE_OF_EL_CLOG_COUNTER_T == 1
178 typedef uint8_t el_clog_counter_t;
179 #elif SIZE_OF_EL_CLOG_COUNTER_T == 2
180 typedef uint16_t el_clog_counter_t;
181 #elif SIZE_OF_EL_CLOG_COUNTER_T == 4
182 typedef uint32_t el_clog_counter_t;
183 #else
184 #error Illegal value for SIZE_OF_EL_CLOG_COUNTER_T
185 #endif
186 
187 #else // EL_IS_ENABLE_CLOG
188 
189 #undef EL_CLOG_TLM_PAGE_SIZE
190 #undef EL_CLOG_TLM_PAGE_MAX_HIGH
191 #undef EL_CLOG_TLM_PAGE_MAX_MIDDLE
192 #undef EL_CLOG_TLM_PAGE_MAX_LOW
193 #undef EL_CLOG_LOG_SIZE_MAX_EL
194 #undef EL_CLOG_LOG_SIZE_MAX_EH
195 
196 #endif // EL_IS_ENABLE_CLOG
197 
198 
204 typedef enum
205 {
221  // TODO: Driver Super
222 #ifdef EL_IS_ENABLE_EL_ERROR_LEVEL
225 #endif
228 
229 
230 #ifdef EL_IS_ENABLE_EL_ERROR_LEVEL
236 typedef enum
237 {
239 #ifdef EL_IS_ENABLE_TLOG
242 #ifdef EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
245 #endif
248 #endif
251 #endif
252 
253 
260 typedef enum
261 {
263 #ifdef EL_IS_ENABLE_MIDDLE_ERROR_LEVEL
265 #endif
267 #ifdef EL_IS_ENABLE_EL_ERROR_LEVEL
269 #endif
274 
275 
281 typedef enum
282 {
290 
291 
296 typedef struct
297 {
299  uint32_t local;
304 #ifdef EL_IS_ENABLE_EVENT_NOTE
305  uint32_t note;
308 #endif
309 } EL_Event;
310 
311 
316 typedef struct
317 {
319  uint32_t record_counters[EL_ERROR_LEVEL_MAX];
321 
322 
323 #ifdef EL_IS_ENABLE_TLOG
328 typedef struct
329 {
331  uint16_t log_capacity;
332  uint16_t log_wp;
336 #endif
337 
338 
339 #ifdef EL_IS_ENABLE_CLOG
345 typedef struct
346 {
351 
352 
357 typedef struct
358 {
360  uint16_t* log_orders;
361  uint16_t log_capacity;
363 #endif
364 
365 
366 typedef struct
367 {
368 #ifdef EL_IS_ENABLE_TLOG
369  struct
370  {
371  uint8_t page_no;
373  } tlog;
374 #endif
375 #ifdef EL_IS_ENABLE_CLOG
376  struct
377  {
378  uint8_t page_no;
379  EL_ERROR_LEVEL err_level;
380  } clog;
381 #endif
382 } EL_TlmInfo;
383 
384 
385 typedef struct
386 {
387 #ifdef EL_IS_ENABLE_TLOG
389 #endif
390 #ifdef EL_IS_ENABLE_CLOG
392 #endif
393 
396 
397  uint8_t is_logging_enable[EL_GROUP_MAX / 8 + 1];
398 
400 } EventLogger;
401 
402 
403 extern const EventLogger* const event_logger;
404 
405 
411 void EL_initialize(void);
412 
422 EL_ACK EL_record_event(EL_GROUP group, uint32_t local, EL_ERROR_LEVEL err_level, uint32_t note);
423 
431 
439 
446 int EL_is_logging_enable(EL_GROUP group);
447 
453 void EL_enable_all_logging(void);
454 
460 void EL_disable_all_logging(void);
461 
462 #ifdef EL_IS_ENABLE_TLOG
470 
478 
486 
494 
502 
512 const EL_Event* EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL err_level, uint16_t n);
513 #endif
514 
515 CCP_CmdRet Cmd_EL_INIT(const CommonCmdPacket* packet);
516 
518 
520 
522 
523 #ifdef EL_IS_ENABLE_TLOG
525 #endif
526 
527 #ifdef EL_IS_ENABLE_CLOG
529 #endif
530 
532 
533 #ifdef EL_IS_ENABLE_TLOG
535 #endif
536 
537 #ifdef EL_IS_ENABLE_CLOG
539 #endif
540 
542 
544 
546 
548 
550 
551 #ifdef EL_IS_ENABLE_TLOG
553 
555 
557 
559 #endif
560 
561 #endif
EL_ACK EL_enable_logging(EL_GROUP group)
event_logger の EL_Event.group の有効化
Definition: event_logger.c:594
CCP_CmdRet Cmd_EL_CLEAR_STATISTICS(const CommonCmdPacket *packet)
Definition: event_logger.c:797
CCP_CmdRet Cmd_EL_RECORD_EVENT(const CommonCmdPacket *packet)
Definition: event_logger.c:835
EL_ACK EL_record_event(EL_GROUP group, uint32_t local, EL_ERROR_LEVEL err_level, uint32_t note)
イベント (EL_Event) を記録
Definition: event_logger.c:269
CCP_CmdRet Cmd_EL_DISABLE_TLOG_OVERWRITE_ALL(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EL_INIT(const CommonCmdPacket *packet)
Definition: event_logger.c:751
CCP_CmdRet Cmd_EL_TLOG_SET_PAGE_FOR_TLM(const CommonCmdPacket *packet)
Definition: event_logger.c:864
int EL_is_logging_enable(EL_GROUP group)
event_logger の EL_Event.group が有効か?
Definition: event_logger.c:635
CCP_CmdRet Cmd_EL_DISABLE_TLOG_OVERWRITE(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EL_CLEAR_CLOG(const CommonCmdPacket *packet)
Definition: event_logger.c:821
CCP_CmdRet Cmd_EL_DISABLE_LOGGING(const CommonCmdPacket *packet)
Definition: event_logger.c:968
void EL_initialize(void)
event_logger の初期化
Definition: event_logger.c:187
CCP_CmdRet Cmd_EL_ENABLE_LOGGING(const CommonCmdPacket *packet)
Definition: event_logger.c:950
CCP_CmdRet Cmd_EL_CLEAR_TLOG(const CommonCmdPacket *packet)
Definition: event_logger.c:806
EL_CORE_GROUP
event_logger の Event Group の C2A core 使用分
Definition: event_logger.h:205
@ EL_CORE_GROUP_DCU
Definition: event_logger.h:213
@ EL_CORE_GROUP_EVENT_LOGGER
EL
Definition: event_logger.h:207
@ EL_CORE_GROUP_EH_RESPOND_WITH_HIGHER_LEVEL_RULE
EH_Rule でマッチしたが,そのルールで対応せずに,上位のルールで対応させた(詳細は event_handler.h 参照)
Definition: event_logger.h:216
@ EL_CORE_GROUP_CDIS_INTERNAL_ERR
Definition: event_logger.h:218
@ EL_CORE_GROUP_COMMAND_ANALYZE
Definition: event_logger.h:217
@ EL_CORE_GROUP_EL_DROP_CLOG2
EL CLogs で古いエラーを上書きするとき (local, count を保存)
Definition: event_logger.h:224
@ EL_CORE_GROUP_EH_MATCH_RULE
EH_Rule でマッチした(詳細は event_handler.h 参照)
Definition: event_logger.h:215
@ EL_CORE_GROUP_CDIS_EXEC_ERR_STS
Definition: event_logger.h:219
@ EL_CORE_GROUP_EL_DROP_CLOG1
EL CLogs で古いエラーを上書きするとき (group, err_level を保存)
Definition: event_logger.h:223
@ EL_CORE_GROUP_CDIS_EXEC_ERR_CODE
Definition: event_logger.h:220
@ EL_CORE_GROUP_TLCD_PAST_TIME
Definition: event_logger.h:211
@ EL_CORE_GROUP_APP_MANAGER
Definition: event_logger.h:210
@ EL_CORE_GROUP_MODE_MANAGER
Definition: event_logger.h:208
@ EL_CORE_GROUP_TASK_DISPATCHER
Definition: event_logger.h:209
@ EL_CORE_GROUP_MAX
Definition: event_logger.h:226
@ EL_CORE_GROUP_NULL
初期値 or NULL.これは 0 であることを要求 (clear で memset 0x00 をするなら)
Definition: event_logger.h:206
@ EL_CORE_GROUP_TLCD_DEPLOY_BLOCK
Definition: event_logger.h:212
@ EL_CORE_GROUP_EVENT_HANDLER
EH (詳細は event_handler.h 参照)
Definition: event_logger.h:214
CCP_CmdRet Cmd_EL_ENABLE_TLOG_OVERWRITE(const CommonCmdPacket *packet)
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
EL_ACK
event_logger の汎用返り値
Definition: event_logger.h:282
@ EL_ACK_DISABLE_LOGGING
ロギングが無効により,棄却
Definition: event_logger.h:286
@ EL_ACK_ILLEGAL_GROUP
不正な EL_Event.group
Definition: event_logger.h:284
@ EL_ACK_OTHER_ERR
その他のエラー
Definition: event_logger.h:288
@ EL_ACK_ILLEGAL_ERROR_LEVEL
不正な EL_Event.err_level
Definition: event_logger.h:285
@ EL_ACK_OK
正常終了
Definition: event_logger.h:283
@ EL_ACK_TLOG_FULL
TLogの追記が不能のため,TLog記録ができず
Definition: event_logger.h:287
EL_ACK EL_disable_tlog_overwrite(EL_ERROR_LEVEL err_level)
TLog のイベントテーブルの上書きを無効化
Definition: event_logger.c:678
void EL_enable_all_logging(void)
event_logger の全 EL_Event.group の有効化
Definition: event_logger.c:655
void EL_disable_all_logging(void)
event_logger の全 EL_Event.group の無効化
Definition: event_logger.c:661
EL_ACK EL_enable_tlog_overwrite(EL_ERROR_LEVEL err_level)
TLog のイベントテーブルの上書きを有効化
Definition: event_logger.c:668
void EL_enable_tlog_overwrite_all(void)
TLog のイベントテーブルの上書きをすべて有効化
Definition: event_logger.c:688
EL_ACK EL_disable_logging(EL_GROUP group)
event_logger の EL_Event.group の無効化
Definition: event_logger.c:614
CCP_CmdRet Cmd_EL_DISABLE_LOGGING_ALL(const CommonCmdPacket *packet)
Definition: event_logger.c:994
CCP_CmdRet Cmd_EL_ENABLE_LOGGING_ALL(const CommonCmdPacket *packet)
Definition: event_logger.c:986
uint16_t el_clog_counter_t
Definition: event_logger.h:180
EL_ERROR_LEVEL
event_logger の エラーレベル
Definition: event_logger.h:261
@ EL_ERROR_LEVEL_MAX
Definition: event_logger.h:272
@ 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
CCP_CmdRet Cmd_EL_ENABLE_TLOG_OVERWRITE_ALL(const CommonCmdPacket *packet)
EL_EVENT_LOCAL
EL_CORE_GROUP_EVENT_LOGGER の local id
Definition: event_logger.h:237
@ EL_EVENT_LOCAL_TLOG_MIDDLE_HALF_FULL
TLog のテーブルの半分が埋まった (MIDDLE)
Definition: event_logger.h:243
@ EL_EVENT_LOCAL_TLOG_MIDDLE_FULL
TLog のテーブルが埋まった.wpは最初に戻り,古いものから上書きしていく (MIDDLE)
Definition: event_logger.h:244
@ EL_EVENT_LOCAL_TLOG_HIGH_HALF_FULL
TLog のテーブルの半分が埋まった (HIGH)
Definition: event_logger.h:240
@ EL_EVENT_LOCAL_TLOG_LOW_HALF_FULL
TLog のテーブルの半分が埋まった (LOW)
Definition: event_logger.h:246
@ EL_EVENT_LOCAL_UNKNOWN_ERR
不明のエラー
Definition: event_logger.h:238
@ EL_EVENT_LOCAL_TLOG_LOW_FULL
TLog のテーブルが埋まった.wpは最初に戻り,古いものから上書きしていく (LOW)
Definition: event_logger.h:247
@ EL_EVENT_LOCAL_TLOG_HIGH_FULL
TLog のテーブルが埋まった.wpは最初に戻り,古いものから上書きしていく (HIGH)
Definition: event_logger.h:241
@ EL_EVENT_LOCAL_MAX
Definition: event_logger.h:249
CCP_CmdRet Cmd_EL_INIT_LOGGING_SETTINGS(const CommonCmdPacket *packet)
Definition: event_logger.c:941
const EventLogger *const event_logger
Definition: event_logger.c:155
void EL_disable_tlog_overwrite_all(void)
TLog のイベントテーブルの上書きをすべて無効化
Definition: event_logger.c:700
int EL_is_tlog_overwrite_enable(EL_ERROR_LEVEL err_level)
TLog のイベントテーブルの上書きが有効か?
Definition: event_logger.c:712
CCP_CmdRet Cmd_EL_CLEAR_LOG_ALL(const CommonCmdPacket *packet)
Definition: event_logger.c:759
CCP_CmdRet Cmd_EL_CLOG_SET_PAGE_FOR_TLM(const CommonCmdPacket *packet)
Definition: event_logger.c:903
CCP_CmdRet Cmd_EL_CLEAR_LOG_BY_ERR_LEVEL(const CommonCmdPacket *packet)
Definition: event_logger.c:778
event_logger の イベント識別IDを定義
EL_GROUP
event_logger の Event Group の user 定義部分
@ EL_GROUP_MAX
event_logger の各種設定 各パラメタ類の詳細は event_logger.h を参照すること
C89 環境用 stdint.h
コマンド返り値
Space Packet (コマンド用)
累積ログ (CLog) の1要素 note group, local が同じイベントを同一とみなす
Definition: event_logger.h:346
ObcTime delta_record_time
直近2つのイベント発生時刻の差
Definition: event_logger.h:349
el_clog_counter_t count
累積カウンタ
Definition: event_logger.h:348
EL_Event event
記録するイベントと,最後に記録されたイベント情報
Definition: event_logger.h:347
累積ログ (CLog) のログ構造定義
Definition: event_logger.h:358
uint16_t * log_orders
logs を時系列順に並び替える sort_key(サイズ可変のためポインタ)
Definition: event_logger.h:360
uint16_t log_capacity
イベントテーブルのキャパシティ(サイズ)
Definition: event_logger.h:361
EL_CLogElement * logs
累積カウンタを保持するイベントテーブル.[log_order[0]] が最新.(サイズ可変のためポインタ)
Definition: event_logger.h:359
イベント
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
EL_ERROR_LEVEL err_level
エラーレベル
Definition: event_logger.h:302
イベント統計情報
Definition: event_logger.h:317
uint32_t record_counter_total
イベント記録数
Definition: event_logger.h:318
時系列ログ (TLog) のログ構造定義
Definition: event_logger.h:329
uint16_t log_wp
イベントテーブルの write pointer.次回書き込み場所
Definition: event_logger.h:332
uint8_t is_enable_overwrite
TLogの上書きを許可するか?(デフォルトでは許可)
Definition: event_logger.h:333
uint8_t is_table_overflow
上書きが無効の場合,溢れて追記できなかったか?
Definition: event_logger.h:334
uint16_t log_capacity
イベントテーブルのキャパシティ(サイズ)
Definition: event_logger.h:331
EL_Event * events
記録するイベントテーブル(サイズ可変のためポインタ)
Definition: event_logger.h:330
uint8_t page_no
tlm で下ろすログページ
Definition: event_logger.h:371
EL_ERROR_LEVEL err_level
tlm で下ろす情報のエラーレベル
Definition: event_logger.h:372
EL_EventStatistics statistics
統計情報
Definition: event_logger.h:394
EL_TlmInfo tlm_info
tlmのための情報
Definition: event_logger.h:395
EL_Event latest_event
Definition: event_logger.h:399
OBCの時刻情報を保持する構造体
Definition: obc_time.h:18