10 #include "../../TlmCmd/common_cmd_packet_util.h"
11 #include "../../Applications/timeline_command_dispatcher_id_define.h"
12 #include "../TimeManager/time_manager.h"
14 #ifdef EL_IS_ENABLE_TLOG
210 uint8_t* found_id_num);
234 uint16_t* least_found_sorted_idx,
235 uint16_t* found_sorted_idx_num);
345 uint8_t responded_count = 0;
373 int32_t subtotal = 0;
377 if (delta_counter < 0)
383 (uint32_t)(-delta_counter));
392 if (delta_counters[err_level] < 0)
398 (uint32_t)(err_level));
404 subtotal += delta_counters[err_level];
407 if (delta_counter != (int32_t)subtotal)
426 if (event == NULL)
return NULL;
440 uint8_t found_id_num;
442 uint8_t responded_num = 0;
460 (uint32_t)search_ack);
465 for (i = 0; i < found_id_num; ++i)
470 return responded_num;
477 uint8_t responded_num = 0;
503 if (responded_num > 0)
509 (uint32_t)responded_num);
510 return responded_num;
537 if (delta_counter < 1)
656 uint32_t note = ((0x0000ffff & cmd_ret.
exec_sts) << 16) | (0x0000ffff & cmd_ret.
err_code);
706 const EL_Event* oldest_event = NULL;
716 if (delta_counter <= 0)
continue;
719 if (delta_counter > tlog_capacity)
721 const uint16_t keep_tlogs_num = (uint16_t)(tlog_capacity / 2);
722 uint32_t drop_tlog_num;
728 (uint32_t)(err_level));
732 drop_tlog_num = (uint32_t)(delta_counter - keep_tlogs_num);
744 oldest_event = event;
745 oldest_time =
event->time;
757 uint8_t* found_id_num)
766 uint16_t possible_num_of_id_duplicates;
774 target_sorted_idx.
group = group;
775 target_sorted_idx.
local = local;
791 for (i = 0; i < possible_num_of_id_duplicates; ++i)
794 if ( !(p_idx->
group == group && p_idx->
local == local) )
798 found_sorted_idxes[i] = (uint16_t)(found_idx + i);
848 uint16_t* least_found_sorted_idx,
849 uint16_t* found_sorted_idx_num)
855 uint16_t last_found_sorted_idx = 0;
866 target_sorted_idx.
group = group;
874 *least_found_sorted_idx = found_idx;
877 for (i = found_idx; i >= 0; --i)
881 *least_found_sorted_idx = i;
894 last_found_sorted_idx = i;
902 *found_sorted_idx_num = (uint16_t)(last_found_sorted_idx - *least_found_sorted_idx + 1);
937 uint8_t duplicate_id;
953 uint8_t break_flag = 0;
955 if (p_sorted_idx->
group < insert_group)
continue;
957 if (p_sorted_idx->
group > insert_group)
965 if (p_sorted_idx->
local < insert_local)
continue;
967 if (p_sorted_idx->
local > insert_local)
981 uint16_t idx = (uint16_t)(i + j);
993 if (p_sorted_idx->
group == insert_group && p_sorted_idx->
local == insert_local)
1005 if (break_flag)
break;
1013 memmove(&p_sorted_idxes[insert_idx + 1],
1014 &p_sorted_idxes[insert_idx],
1016 p_sorted_idxes[insert_idx].
group = insert_group;
1017 p_sorted_idxes[insert_idx].
local = insert_local;
1018 p_sorted_idxes[insert_idx].
duplicate_id = duplicate_id;
1019 p_sorted_idxes[insert_idx].
rule_id = id;
1021 p_rule_table->
rules[id] = *rule;
1034 uint32_t delete_local;
1037 uint16_t delete_idx;
1050 if (
id == p_sorted_idxes[i].rule_id)
1070 memmove(&p_sorted_idxes[delete_idx],
1071 &p_sorted_idxes[delete_idx + 1],
1080 uint16_t idx = (uint16_t)(delete_idx + j);
1083 if (p_sorted_idx->
group == delete_group && p_sorted_idx->
local == delete_local)
1093 memset(&p_rule_table->
rules[
id], 0x00,
sizeof(
EH_Rule));
1138 uint8_t multi_level_num;
1145 for (multi_level_num = 0; multi_level_num <
EH_RULE_MAX; ++multi_level_num)
1204 uint16_t least_found_sorted_idx = 0;
1205 uint16_t found_sorted_idx_num = 0;
1210 &least_found_sorted_idx,
1211 &found_sorted_idx_num);
1227 for (i = 0; i < found_sorted_idx_num; ++i)
1397 uint8_t found_id_num;
1416 (uint32_t)search_ack);
1421 for (i = 0; i < found_id_num; ++i)
#define BCT_MAX_BLOCKS
BCのIDの最大数
void * bsearch(const void *key, const void *base, size_t nmemb, size_t size, compr_func compr)
@ CCP_EXEC_ILLEGAL_PARAMETER
コマンド実行時のパラメタエラー
@ CCP_EXEC_ILLEGAL_CONTEXT
コマンド実行時のその他のエラー
CCP_CmdRet CCP_form_and_exec_block_deploy_cmd(TLCD_ID tl_no, bct_id_t block_no)
BC展開 command を生成し,即時実行する
CCP_CmdRet CCP_make_cmd_ret_without_err_code(CCP_EXEC_STS exec_sts)
コマンド返り値である CCP_CmdRet を作成(エラーコード不使用版)
#define CCP_get_param_from_packet(packet, n, type)
CCP packet から,n番目のコマンド引数を取得する
EH_REGISTER_ACK EH_register_rule(EH_RULE_ID id, const EH_RuleSettings *settings)
ルールの登録
static EH_RULE_SORTED_INDEX_ACK EH_insert_rule_table_(EH_RULE_ID id, const EH_Rule *rule)
EH_Rule を EH_RuleTable と EH_RuleSortedIndex に挿入する
const EventHandler *const event_handler
static EventHandler event_handler_
static int EH_compare_sorted_index_for_bsearch_(const void *key, const void *elem)
EH_search_rule_table_index_ での bsearch 用の EH_RuleSortedIndex 比較関数
static void EH_exec_func_by_event_group_(EL_GROUP group, EH_CHECK_RULE_ACK(*func)(EH_RULE_ID))
by_event_group 関数を実行する主体
CCP_CmdRet Cmd_EH_SET_REGISTER_RULE_EVENT_PARAM(const CommonCmdPacket *packet)
static uint8_t EH_check_event_and_respond_(const EL_Event *event)
EL_Event に対応する EH_Rule が存在するかチェックし,対応する
EH_CHECK_RULE_ACK EH_init_rule_for_multi_level(EH_RULE_ID id)
ルールの初期化 (multi-level)
const EH_Log * EH_get_the_nth_log_from_the_latest(uint16_t n)
EH_LogTable の最新からn番目の対応ログを取得
CCP_CmdRet Cmd_EH_SET_RULE_COUNTER(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_CLEAR_LOG(const CommonCmdPacket *packet)
static EH_CKECK_RULE_ACK EH_check_rule_(EH_RULE_ID rule_id, const EL_Event *event)
EH の対応条件をチェックする
void EH_activate_rule_by_event_group(EL_GROUP group)
EH_RuleSettings.event.group 指定による一括でのルールの有効化
CCP_CmdRet Cmd_EH_SET_REGISTER_RULE_CONDITION_PARAM(const CommonCmdPacket *packet)
void EH_init_rule_by_event_group(EL_GROUP group)
EH_RuleSettings.event.group 指定による一括でのルールの初期化
EH_CHECK_RULE_ACK EH_init_rule(EH_RULE_ID id)
ルールの初期化
CCP_CmdRet Cmd_EH_SET_MAX_MULTI_LEVEL_NUM(const CommonCmdPacket *packet)
void EH_initialize(void)
event_handler の初期化
static EH_RULE_SORTED_INDEX_ACK EH_search_rule_table_index_(EL_GROUP group, uint32_t local, EH_RULE_ID found_ids[EH_MAX_RULE_NUM_OF_EL_ID_DUPLICATES], uint16_t found_sorted_idxes[EH_MAX_RULE_NUM_OF_EL_ID_DUPLICATES], uint8_t *found_id_num)
EH_RuleSortedIndex から,目的の EL_Event の idx を検索する
void EH_clear_rule_counter_by_event(EL_GROUP group, uint32_t local, EL_ERROR_LEVEL err_level)
EH_Rule の counter を EL_Event 指定で 0 クリア
CCP_CmdRet Cmd_EH_INIT_RULE(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_LOAD_DEFAULT_RULE(const CommonCmdPacket *packet)
static EH_CHECK_RULE_ACK EH_check_rule_id_(EH_RULE_ID id)
EH_RULE_ID のルール登録状況を調べる
CCP_CmdRet Cmd_EH_MATCH_EVENT_COUNTER_TO_EL(const CommonCmdPacket *packet)
新しい EL_Event 発生を検出するためのカウンタを強制的に EL のカウンタに合わせる
CCP_CmdRet Cmd_EH_INIT_RULE_BY_EVENT_GROUP(const CommonCmdPacket *packet)
void EH_match_event_counter_to_el(void)
イベントカウンタを EL のそれに合わせる
static int EH_compare_sorted_index_by_event_group_for_bsearch_(const void *key, const void *elem)
EH_search_rule_table_index_by_event_group_ での bsearch 用の EH_RuleSortedIndex 比較関数
CCP_CmdRet Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL(const CommonCmdPacket *packet)
static const EL_Event * EH_get_event_to_check_rule_(void)
EH_Rule が存在するかチェックするための次の EL_Event (EL_ERROR_LEVEL_EH を除く) を返す
void EH_execute(void)
event_handler の実行
static EH_RULE_SORTED_INDEX_ACK EH_delete_rule_table_(EH_RULE_ID id)
EH_Rule を EH_RuleTable と EH_RuleSortedIndex から削除する
void EH_activate_rule_by_event_group_for_multi_level(EL_GROUP group)
EH_RuleSettings.event.group 指定による一括でのルールの有効化 (multi-level)
CCP_CmdRet Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL(const CommonCmdPacket *packet)
EH_CHECK_RULE_ACK EH_clear_rule_counter(EH_RULE_ID id)
EH_Rule の counter を 0 クリア
CCP_CmdRet Cmd_EH_CLEAR_RULE_COUNTER(const CommonCmdPacket *packet)
EH_CHECK_RULE_ACK EH_set_rule_counter(EH_RULE_ID id, uint16_t counter)
EH_Rule の counter をセット
CCP_CmdRet Cmd_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP(const CommonCmdPacket *packet)
uint8_t EH_get_rule_is_active(EH_RULE_ID id)
ルールが有効かどうか取得する
static void EH_respond_(EH_RULE_ID rule_id)
EH 対応を実施
CCP_CmdRet Cmd_EH_INIT_RULE_FOR_MULTI_LEVEL(const CommonCmdPacket *packet)
EH_CHECK_RULE_ACK EH_activate_rule(EH_RULE_ID id)
ルールの有効化
void EH_inactivate_rule_by_event_group_for_multi_level(EL_GROUP group)
EH_RuleSettings.event.group 指定による一括でのルールの無効化 (multi-level)
static const EL_Event * EH_get_oldest_event_excluding_eh_error_level_(void)
まだ処理していない最も古い EL_Event (EL_ERROR_LEVEL_EH を除く) を返す
CCP_CmdRet Cmd_EH_SET_MAX_CHECK_EVENT_NUM(const CommonCmdPacket *packet)
void EH_init_rule_by_event_group_for_multi_level(EL_GROUP group)
EH_RuleSettings.event.group 指定による一括でのルールの初期化 (multi-level)
static void EH_clear_rules_(void)
EH_RuleTable を全消去
EH_RULE_SORTED_INDEX_ACK
EH_RuleSortedIndex を操作するときの返り値
@ EH_RULE_SORTED_INDEX_ACK_RULE_OVERWRITE
ルールの上書きになってしまう(すでに同じ ID にルールが登録されているため棄却)
@ EH_RULE_SORTED_INDEX_ACK_ILLEGAL_RULE_ID
不正な EH_RULE_ID
@ EH_RULE_SORTED_INDEX_ACK_NOT_FOUND
見つからず
@ EH_RULE_SORTED_INDEX_ACK_DUPLICATE_FULL
重複上限まで重複してしまっている
@ EH_RULE_SORTED_INDEX_ACK_OK
正常終了
@ EH_RULE_SORTED_INDEX_ACK_FULL
これ以上登録できない
static EH_ACK EH_check_el_event_counter_(void)
EL 側の EL_Event のカウンタをチェックし,整合性を確認する
CCP_CmdRet Cmd_EH_SET_MAX_RESPONSE_NUM(const CommonCmdPacket *packet)
static EH_CKECK_RULE_ACK EH_check_continuous_rule_(EH_RULE_ID rule_id, const EL_Event *event)
EH の対応条件をチェックする (EH_RESPONSE_CONDITION_CONTINUOUS)
static EH_CKECK_RULE_ACK EH_check_single_rule_(EH_RULE_ID rule_id, const EL_Event *event)
EH の対応条件をチェックする (EH_RESPONSE_CONDITION_SINGLE)
EH_EL_LOCAL_ID
EL_CORE_GROUP_EVENT_HANDLER イベントの local id
@ EH_EL_LOCAL_ID_TOO_MANY_EVENT
イベントが発生しすぎて,TLogが失われている
@ EH_EL_LOCAL_ID_FAIL_TO_RESPOND
EH 対応時に BC 展開に失敗
@ EH_EL_LOCAL_ID_UNKNOWN_ERR
不明なエラー
@ EH_EL_LOCAL_ID_EL_COUNTER_ERR
ELとEHのカウンタの不整合エラー (counters)
@ EH_EL_LOCAL_ID_RECURSION_ERR
多段対応時に再帰呼び出し回数が設定値を超えた
@ EH_EL_LOCAL_ID_EL_TOTAL_COUNTER_ERR
ELとEHのカウンタの不整合エラー (counter_total)
@ EH_EL_LOCAL_ID_LOG_TABLE_FULL
EH_LogTable が満杯になり, wp が 0 に戻った
@ EH_EL_LOCAL_ID_SEARCH_ERR
EH_search_rule_table_index_ の返り値不正
EH_CKECK_RULE_ACK
EH_check_rule 系関数の返り値
@ EH_CKECK_RULE_ACK_MATCH
該当 EH_Rule にマッチした
@ EH_CKECK_RULE_ACK_NOT_MATCH
該当 EH_Rule にマッチしなかった
CCP_CmdRet Cmd_EH_CLEAR_RULE_COUNTER_BY_EVENT(const CommonCmdPacket *packet)
static EH_RULE_SORTED_INDEX_ACK EH_search_rule_table_index_by_event_group_(EL_GROUP group, uint16_t *least_found_sorted_idx, uint16_t *found_sorted_idx_num)
EH_RuleSortedIndex から,指定した EL_GROUP の EH_Rule を指す最も若い EH_RuleSortedIndex を取得する
CCP_CmdRet Cmd_EH_DELETE_RULE(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL(const CommonCmdPacket *packet)
EH_CHECK_RULE_ACK EH_activate_rule_for_multi_level(EH_RULE_ID id)
ルールの有効化 (multi-level)
CCP_CmdRet Cmd_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL(const CommonCmdPacket *packet)
void EH_inactivate_rule_by_event_group(EL_GROUP group)
EH_RuleSettings.event.group 指定による一括でのルールの無効化
static uint8_t EH_check_rule_and_respond_(EH_RULE_ID rule_id, const EL_Event *event)
EH の対応条件をチェックし, EL_Event に対応する
CCP_CmdRet Cmd_EH_INACTIVATE_RULE(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP(const CommonCmdPacket *packet)
EH_CHECK_RULE_ACK EH_inactivate_rule(EH_RULE_ID id)
ルールの無効化
CCP_CmdRet Cmd_EH_REGISTER_RULE(const CommonCmdPacket *packet)
static void EH_clear_log_(void)
EH 対応ログを全消去
static void EH_record_responded_log_(EH_RULE_ID rule_id, CCP_EXEC_STS deploy_cmd_ack)
EH 対応のログを残す
CCP_CmdRet Cmd_EH_ACTIVATE_RULE(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_INIT(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_EH_CLEAR_ALL_RULE(const CommonCmdPacket *packet)
static EH_CKECK_RULE_ACK EH_check_cumulative_rule_(EH_RULE_ID rule_id, const EL_Event *event)
EH の対応条件をチェックする (EH_RESPONSE_CONDITION_CUMULATIVE)
static uint8_t EH_check_higher_level_rule_and_respond_(EH_RULE_ID rule_id)
上位の EH の対応条件をチェックし,対応する
EH_CHECK_RULE_ACK EH_inactivate_rule_for_multi_level(EH_RULE_ID id)
ルールの無効化 (multi-level)
#define EH_LOG_MAX
最大何個の EH 対応ログを保持できるか
EH_CHECK_RULE_ACK
EH_Rule 登録状況確認用
@ EH_CHECK_RULE_ACK_INVALID_RULE_ID
EH_RULE_ID が不正
@ EH_CHECK_RULE_ACK_OK
正常 or ルール登録済み
@ EH_CHECK_RULE_ACK_UNREGISTERED
ルールが未登録
#define EH_MAX_RULE_NUM_OF_EL_ID_DUPLICATES
EL_Event の ID が重複した EH_Rule を最大何個まで重複させてよいか (uint8_t を想定)
EH_REGISTER_ACK
EH_register_rule の返り値
@ EH_REGISTER_ACK_ILLEGAL_MULTI_LEVEL
多段 EH 対応での不正な設定
@ EH_REGISTER_ACK_ILLEGAL_RULE_ID
不正な EH_RULE_ID
@ EH_REGISTER_ACK_ILLEGAL_MATCH_FLAG
不正な should_match_err_level
@ EH_REGISTER_ACK_ILLEGAL_GROUP
不正な EL_Event.group
@ EH_REGISTER_ACK_ERR_RULE_OVERWRITE
すでに同じ ID にルールが登録されているため棄却
@ EH_REGISTER_ACK_ILLEGAL_ERROR_LEVEL
不正な EL_Event.err_level
@ EH_REGISTER_ACK_UNKNOWN_ERR
不明なエラー
@ EH_REGISTER_ACK_ERR_FULL
これ以上登録できない
@ EH_REGISTER_ACK_ERR_DUPLICATE_FULL
これ以上, EL_Event の重複した EH_Rule を登録できない
@ EH_REGISTER_ACK_ILLEGAL_CONDITION_TYPE
不正な EH_RESPONSE_CONDITION_TYPE
@ EH_REGISTER_ACK_OK
正常に登録完了
@ EH_REGISTER_ACK_ILLEGAL_BCT_ID
不正な deploy_bct_id
@ EH_REGISTER_ACK_ILLEGAL_COUNT_THRESHOLD
不正な condition.count_threshold
@ EH_REGISTER_ACK_ILLEGAL_ACTIVE_FLAG
不正な is_active
#define EH_RULE_TLM_PAGE_MAX
event_handler のルールテーブルのページ数(ページネーション用)
#define EH_MAX_MULTI_LEVEL_NUM_DEFAULT
多段の EH 対応の設定可能な最大段数(初期値) (uint8_t を想定)
#define EH_LOG_TLM_PAGE_MAX
EH対応のログテーブルのページ数(ページネーション用)
#define EH_MAX_CHECK_EVENT_NUM_DEFAULT
EH_RESPONSE_CONDITION_TYPE
EL_Event 登録に対して,どのように EH 対応させるかの種類
@ EH_RESPONSE_CONDITION_CONTINUOUS
Event 登録後 N 秒以内に再び同じ Event 登録が発生することが M 回連続で発生した場合に EH 対応
@ EH_RESPONSE_CONDITION_TYPE_MAX
@ EH_RESPONSE_CONDITION_CUMULATIVE
Event が M 回登録した場合に EH 対応
@ EH_RESPONSE_CONDITION_SINGLE
Event 登録に対して即座に EH 対応
#define EH_MAX_RESPONSE_NUM_DEFAULT
一度の実行で対応する最大数(初期値) (uint8_t を想定)
void EH_load_default_rules(void)
event_handler のデフォルトルールを読み込む
EL_ACK EL_record_event(EL_GROUP group, uint32_t local, EL_ERROR_LEVEL err_level, uint32_t note)
イベント (EL_Event) を記録
const EL_Event * EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL err_level, uint16_t n)
TLog のイベントテーブルの最新からn番目のイベントを取得
const EventLogger *const event_logger
@ EL_CORE_GROUP_EH_RESPOND_WITH_HIGHER_LEVEL_RULE
EH_Rule でマッチしたが,そのルールで対応せずに,上位のルールで対応させた(詳細は event_handler.h 参照)
@ EL_CORE_GROUP_EH_MATCH_RULE
EH_Rule でマッチした(詳細は event_handler.h 参照)
@ EL_CORE_GROUP_NULL
初期値 or NULL.これは 0 であることを要求 (clear で memset 0x00 をするなら)
@ EL_CORE_GROUP_EVENT_HANDLER
EH (詳細は event_handler.h 参照)
EL_ERROR_LEVEL
event_logger の エラーレベル
EL_GROUP
event_logger の Event Group の user 定義部分
uint32_t OBCT_diff_in_msec(const ObcTime *before, const ObcTime *after)
ObcTime の引き算をミリ秒単位で行う
ObcTime OBCT_get_max(void)
ObcTime が取りうる最大値を返す
int OBCT_compare(const ObcTime *t1, const ObcTime *t2)
ObcTime の比較
void OBCT_clear(ObcTime *time)
ObcTime をクリアし全てゼロにする
PL_ACK
PacketList 関連操作のエラーコード
@ PL_BC_TIME_ADJUSTED
同時刻に Node があったため調整せれた
uint32_t err_code
各 Cmd ユニークなエラーコード.各 App で定義する enum などを入れることを想定.
CCP_EXEC_STS exec_sts
CCP_EXEC_STS.Cmd の統一的なエラーコード
uint32_t counter_total
前回 EH_execute 実行時の EL でのイベント記録数
uint32_t counters[EL_ERROR_LEVEL_MAX]
エラーレベルごとの記録数
uint8_t current_multi_level
現在処理してる多段 EH 対応レベル
uint8_t max_multi_level_num
uint16_t max_check_event_num
CCP_EXEC_STS deploy_cmd_ack
cycle_t respond_time_in_master_cycle
EH_RuleSettings settings
登録する EH_RuleSettings
EH_REGISTER_ACK register_ack
EH_register_rule の返り値
EH_RULE_ID rule_id
登録先 EH_RULE_ID
EL_Event に対して対応する EH_Rule
EH_RuleSettings settings
設定値
ObcTime last_event_time
最後に発生した EL_Event の時刻
uint16_t counter
EH 対応までのカウンタ
EH_register_rule の引数.Rule登録に必要な情報
struct EH_RuleSettings::@8 event
EH に対応する EL_Event
EL_GROUP group
引っ掛ける EL_Event.group
uint32_t time_threshold_ms
uint8_t should_match_err_level
EL_Event の一致に,エラーレベル一致を含めるか?
uint8_t is_active
対応が有効か? 対応後,自動的に無効になる
struct EH_RuleSettings::@9 condition
EH 対応条件
EH_RESPONSE_CONDITION_TYPE type
EH 対応の条件種類
bct_id_t deploy_bct_id
EH 対応に展開する BCT id
uint32_t local
引っ掛ける EL_Event.local
EL_GROUP group
EH_Rule.event.group
uint8_t duplicate_id
同じ {group. local} の rule がある場合の,重複ID
uint32_t local
EH_Rule.event.local
EH_RULE_ID rule_id
EventHandler.rules の idx
uint16_t registered_rule_num
登録済み rule 数
EH_Rule rules[EH_RULE_MAX]
idx は EH_RULE_ID
struct EH_TlmInfo::@11 rule_sorted_index
struct EH_TlmInfo::@10 rule
struct EH_TlmInfo::@12 log
EH_RULE_ID target_rule_id
EL_GROUP group
イベントを特定する group id
EL_ERROR_LEVEL err_level
エラーレベル
uint32_t record_counters[EL_ERROR_LEVEL_MAX]
エラーレベルごとの記録数
uint32_t record_counter_total
イベント記録数
uint16_t log_capacity
イベントテーブルのキャパシティ(サイズ)
EH_ExecSettings exec_settings
実行時設定
EH_ElEventCounter el_event_counter
EH_ElEventCounter
EH_RegisterFromCmd reg_from_cmd
コマンド経由で EH_Rule を登録するときに使う内部状態変数
EH_RuleTable rule_table
EH_Rule のテーブル
EH_LogTable log_table
EH 対応ログテーブル
EH_RuleSortedIndex sorted_idxes[EH_RULE_MAX]
rules の二分探索用 idx
EH_ExecInfo exec_info
実行時情報
EH_TlmInfo tlm_info
tlmのための情報
EL_EventStatistics statistics
統計情報
EL_TimeSeriesLog tlogs[EL_ERROR_LEVEL_MAX]
cycle_t TMGR_get_master_total_cycle(void)
現在の total_cycle を返す