C2A_Core
event_handler.c ファイル

イベント発火型処理を行う [詳解]

event_handler.c の依存先関係図:

[ソースコード]

列挙型

enum  EH_EL_LOCAL_ID {
  EH_EL_LOCAL_ID_EL_TOTAL_COUNTER_ERR = 0 , EH_EL_LOCAL_ID_EL_COUNTER_ERR , EH_EL_LOCAL_ID_TOO_MANY_EVENT , EH_EL_LOCAL_ID_FAIL_TO_RESPOND ,
  EH_EL_LOCAL_ID_LOG_TABLE_FULL , EH_EL_LOCAL_ID_SEARCH_ERR , EH_EL_LOCAL_ID_RECURSION_ERR , EH_EL_LOCAL_ID_UNKNOWN_ERR
}
 EL_CORE_GROUP_EVENT_HANDLER イベントの local id [詳解]
 
enum  EH_ACK { EH_ACK_OK , EH_ACK_ERR }
 EH の内部関数返り値 [詳解]
 
enum  EH_RULE_SORTED_INDEX_ACK {
  EH_RULE_SORTED_INDEX_ACK_OK = 0 , EH_RULE_SORTED_INDEX_ACK_ILLEGAL_RULE_ID , EH_RULE_SORTED_INDEX_ACK_NOT_FOUND , EH_RULE_SORTED_INDEX_ACK_FULL ,
  EH_RULE_SORTED_INDEX_ACK_RULE_OVERWRITE , EH_RULE_SORTED_INDEX_ACK_DUPLICATE_FULL
}
 EH_RuleSortedIndex を操作するときの返り値 [詳解]
 
enum  EH_CKECK_RULE_ACK { EH_CKECK_RULE_ACK_MATCH = 0 , EH_CKECK_RULE_ACK_NOT_MATCH }
 EH_check_rule 系関数の返り値 [詳解]
 

関数

static void EH_clear_rules_ (void)
 EH_RuleTable を全消去 [詳解]
 
static void EH_clear_log_ (void)
 EH 対応ログを全消去 [詳解]
 
static EH_ACK EH_check_el_event_counter_ (void)
 EL 側の EL_Event のカウンタをチェックし,整合性を確認する [詳解]
 
static const EL_EventEH_get_event_to_check_rule_ (void)
 EH_Rule が存在するかチェックするための次の EL_Event (EL_ERROR_LEVEL_EH を除く) を返す [詳解]
 
static uint8_t EH_check_event_and_respond_ (const EL_Event *event)
 EL_Event に対応する EH_Rule が存在するかチェックし,対応する [詳解]
 
static uint8_t EH_check_rule_and_respond_ (EH_RULE_ID rule_id, const EL_Event *event)
 EH の対応条件をチェックし, EL_Event に対応する [詳解]
 
static uint8_t EH_check_higher_level_rule_and_respond_ (EH_RULE_ID rule_id)
 上位の EH の対応条件をチェックし,対応する [詳解]
 
static EH_CKECK_RULE_ACK EH_check_rule_ (EH_RULE_ID rule_id, const EL_Event *event)
 EH の対応条件をチェックする [詳解]
 
static EH_CKECK_RULE_ACK EH_check_single_rule_ (EH_RULE_ID rule_id, const EL_Event *event)
 EH の対応条件をチェックする (EH_RESPONSE_CONDITION_SINGLE) [詳解]
 
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_cumulative_rule_ (EH_RULE_ID rule_id, const EL_Event *event)
 EH の対応条件をチェックする (EH_RESPONSE_CONDITION_CUMULATIVE) [詳解]
 
static void EH_respond_ (EH_RULE_ID rule_id)
 EH 対応を実施 [詳解]
 
static void EH_record_responded_log_ (EH_RULE_ID rule_id, CCP_EXEC_STS deploy_cmd_ack)
 EH 対応のログを残す [詳解]
 
static const EL_EventEH_get_oldest_event_excluding_eh_error_level_ (void)
 まだ処理していない最も古い EL_Event (EL_ERROR_LEVEL_EH を除く) を返す [詳解]
 
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 を検索する [詳解]
 
static int EH_compare_sorted_index_for_bsearch_ (const void *key, const void *elem)
 EH_search_rule_table_index_ での bsearch 用の EH_RuleSortedIndex 比較関数 [詳解]
 
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 を取得する [詳解]
 
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 比較関数 [詳解]
 
static EH_RULE_SORTED_INDEX_ACK EH_insert_rule_table_ (EH_RULE_ID id, const EH_Rule *rule)
 EH_RuleEH_RuleTableEH_RuleSortedIndex に挿入する [詳解]
 
static EH_RULE_SORTED_INDEX_ACK EH_delete_rule_table_ (EH_RULE_ID id)
 EH_RuleEH_RuleTableEH_RuleSortedIndex から削除する [詳解]
 
static EH_CHECK_RULE_ACK EH_check_rule_id_ (EH_RULE_ID id)
 EH_RULE_ID のルール登録状況を調べる [詳解]
 
static void EH_exec_func_by_event_group_ (EL_GROUP group, EH_CHECK_RULE_ACK(*func)(EH_RULE_ID))
 by_event_group 関数を実行する主体 [詳解]
 
void EH_initialize (void)
 event_handler の初期化 [詳解]
 
void EH_execute (void)
 event_handler の実行 [詳解]
 
EH_REGISTER_ACK EH_register_rule (EH_RULE_ID id, const EH_RuleSettings *settings)
 ルールの登録 [詳解]
 
EH_CHECK_RULE_ACK EH_init_rule (EH_RULE_ID id)
 ルールの初期化 [詳解]
 
EH_CHECK_RULE_ACK EH_init_rule_for_multi_level (EH_RULE_ID id)
 ルールの初期化 (multi-level) [詳解]
 
void EH_init_rule_by_event_group (EL_GROUP group)
 EH_RuleSettings.event.group 指定による一括でのルールの初期化 [詳解]
 
void EH_init_rule_by_event_group_for_multi_level (EL_GROUP group)
 EH_RuleSettings.event.group 指定による一括でのルールの初期化 (multi-level) [詳解]
 
EH_CHECK_RULE_ACK EH_activate_rule (EH_RULE_ID id)
 ルールの有効化 [詳解]
 
EH_CHECK_RULE_ACK EH_inactivate_rule (EH_RULE_ID id)
 ルールの無効化 [詳解]
 
EH_CHECK_RULE_ACK EH_activate_rule_for_multi_level (EH_RULE_ID id)
 ルールの有効化 (multi-level) [詳解]
 
EH_CHECK_RULE_ACK EH_inactivate_rule_for_multi_level (EH_RULE_ID id)
 ルールの無効化 (multi-level) [詳解]
 
void EH_activate_rule_by_event_group (EL_GROUP group)
 EH_RuleSettings.event.group 指定による一括でのルールの有効化 [詳解]
 
void EH_inactivate_rule_by_event_group (EL_GROUP group)
 EH_RuleSettings.event.group 指定による一括でのルールの無効化 [詳解]
 
void EH_activate_rule_by_event_group_for_multi_level (EL_GROUP group)
 EH_RuleSettings.event.group 指定による一括でのルールの有効化 (multi-level) [詳解]
 
void EH_inactivate_rule_by_event_group_for_multi_level (EL_GROUP group)
 EH_RuleSettings.event.group 指定による一括でのルールの無効化 (multi-level) [詳解]
 
uint8_t EH_get_rule_is_active (EH_RULE_ID id)
 ルールが有効かどうか取得する [詳解]
 
EH_CHECK_RULE_ACK EH_set_rule_counter (EH_RULE_ID id, uint16_t counter)
 EH_Rule の counter をセット [詳解]
 
EH_CHECK_RULE_ACK EH_clear_rule_counter (EH_RULE_ID id)
 EH_Rule の counter を 0 クリア [詳解]
 
void EH_clear_rule_counter_by_event (EL_GROUP group, uint32_t local, EL_ERROR_LEVEL err_level)
 EH_Rule の counter を EL_Event 指定で 0 クリア [詳解]
 
void EH_match_event_counter_to_el (void)
 イベントカウンタを EL のそれに合わせる [詳解]
 
const EH_LogEH_get_the_nth_log_from_the_latest (uint16_t n)
 EH_LogTable の最新からn番目の対応ログを取得 [詳解]
 
CCP_CmdRet Cmd_EH_INIT (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_CLEAR_ALL_RULE (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_LOAD_DEFAULT_RULE (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_SET_REGISTER_RULE_EVENT_PARAM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_SET_REGISTER_RULE_CONDITION_PARAM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_REGISTER_RULE (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_DELETE_RULE (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_INIT_RULE (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_INIT_RULE_FOR_MULTI_LEVEL (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_ACTIVATE_RULE (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_INACTIVATE_RULE (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_SET_RULE_COUNTER (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_CLEAR_RULE_COUNTER (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_CLEAR_RULE_COUNTER_BY_EVENT (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_CLEAR_LOG (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_SET_MAX_RESPONSE_NUM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_SET_MAX_CHECK_EVENT_NUM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_SET_MAX_MULTI_LEVEL_NUM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM (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_MATCH_EVENT_COUNTER_TO_EL (const CommonCmdPacket *packet)
 新しい EL_Event 発生を検出するためのカウンタを強制的に EL のカウンタに合わせる [詳解]
 
CCP_CmdRet Cmd_EH_INIT_RULE_BY_EVENT_GROUP (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL (const CommonCmdPacket *packet)
 

変数

static EventHandler event_handler_
 
const EventHandler *const event_handler = &event_handler_
 

詳解

イベント発火型処理を行う

覚え書き
event_logger の情報を元に指定した BC (対応 BC) を展開する (Event 発火に応じて対応を行う)

event_handler.c に定義があります。

列挙型詳解

◆ EH_ACK

enum EH_ACK

EH の内部関数返り値

覚え書き
uint8_t を想定
列挙値
EH_ACK_OK 
EH_ACK_ERR 

event_handler.c38 行目に定義があります。

◆ EH_CKECK_RULE_ACK

EH_check_rule 系関数の返り値

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

該当 EH_Rule にマッチした

EH_CKECK_RULE_ACK_NOT_MATCH 

該当 EH_Rule にマッチしなかった

event_handler.c64 行目に定義があります。

◆ EH_EL_LOCAL_ID

EL_CORE_GROUP_EVENT_HANDLER イベントの local id

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

ELとEHのカウンタの不整合エラー (counter_total)

EH_EL_LOCAL_ID_EL_COUNTER_ERR 

ELとEHのカウンタの不整合エラー (counters)

EH_EL_LOCAL_ID_TOO_MANY_EVENT 

イベントが発生しすぎて,TLogが失われている

EH_EL_LOCAL_ID_FAIL_TO_RESPOND 

EH 対応時に BC 展開に失敗

EH_EL_LOCAL_ID_LOG_TABLE_FULL 

EH_LogTable が満杯になり, wp が 0 に戻った

EH_EL_LOCAL_ID_SEARCH_ERR 

EH_search_rule_table_index_ の返り値不正

EH_EL_LOCAL_ID_RECURSION_ERR 

多段対応時に再帰呼び出し回数が設定値を超えた

EH_EL_LOCAL_ID_UNKNOWN_ERR 

不明なエラー

event_handler.c21 行目に定義があります。

◆ EH_RULE_SORTED_INDEX_ACK

EH_RuleSortedIndex を操作するときの返り値

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

正常終了

EH_RULE_SORTED_INDEX_ACK_ILLEGAL_RULE_ID 

不正な EH_RULE_ID

EH_RULE_SORTED_INDEX_ACK_NOT_FOUND 

見つからず

EH_RULE_SORTED_INDEX_ACK_FULL 

これ以上登録できない

EH_RULE_SORTED_INDEX_ACK_RULE_OVERWRITE 

ルールの上書きになってしまう(すでに同じ ID にルールが登録されているため棄却)

EH_RULE_SORTED_INDEX_ACK_DUPLICATE_FULL 

重複上限まで重複してしまっている

event_handler.c49 行目に定義があります。

関数詳解

◆ Cmd_EH_ACTIVATE_RULE()

CCP_CmdRet Cmd_EH_ACTIVATE_RULE ( const CommonCmdPacket packet)

event_handler.c1604 行目に定義があります。

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

◆ Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP()

CCP_CmdRet Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP ( const CommonCmdPacket packet)

event_handler.c1824 行目に定義があります。

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

◆ Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL()

CCP_CmdRet Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL ( const CommonCmdPacket packet)

event_handler.c1840 行目に定義があります。

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

◆ Cmd_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL()

CCP_CmdRet Cmd_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL ( const CommonCmdPacket packet)

event_handler.c1642 行目に定義があります。

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

◆ Cmd_EH_CLEAR_ALL_RULE()

CCP_CmdRet Cmd_EH_CLEAR_ALL_RULE ( const CommonCmdPacket packet)

event_handler.c1472 行目に定義があります。

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

◆ Cmd_EH_CLEAR_LOG()

CCP_CmdRet Cmd_EH_CLEAR_LOG ( const CommonCmdPacket packet)

event_handler.c1730 行目に定義があります。

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

◆ Cmd_EH_CLEAR_RULE_COUNTER()

CCP_CmdRet Cmd_EH_CLEAR_RULE_COUNTER ( const CommonCmdPacket packet)

event_handler.c1700 行目に定義があります。

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

◆ Cmd_EH_CLEAR_RULE_COUNTER_BY_EVENT()

CCP_CmdRet Cmd_EH_CLEAR_RULE_COUNTER_BY_EVENT ( const CommonCmdPacket packet)

event_handler.c1719 行目に定義があります。

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

◆ Cmd_EH_DELETE_RULE()

CCP_CmdRet Cmd_EH_DELETE_RULE ( const CommonCmdPacket packet)

event_handler.c1547 行目に定義があります。

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

◆ Cmd_EH_INACTIVATE_RULE()

CCP_CmdRet Cmd_EH_INACTIVATE_RULE ( const CommonCmdPacket packet)

event_handler.c1623 行目に定義があります。

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

◆ Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP()

CCP_CmdRet Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP ( const CommonCmdPacket packet)

event_handler.c1832 行目に定義があります。

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

◆ Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL()

CCP_CmdRet Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL ( const CommonCmdPacket packet)

event_handler.c1848 行目に定義があります。

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

◆ Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL()

CCP_CmdRet Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL ( const CommonCmdPacket packet)

event_handler.c1661 行目に定義があります。

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

◆ Cmd_EH_INIT()

CCP_CmdRet Cmd_EH_INIT ( const CommonCmdPacket packet)

event_handler.c1464 行目に定義があります。

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

◆ Cmd_EH_INIT_RULE()

CCP_CmdRet Cmd_EH_INIT_RULE ( const CommonCmdPacket packet)

event_handler.c1566 行目に定義があります。

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

◆ Cmd_EH_INIT_RULE_BY_EVENT_GROUP()

CCP_CmdRet Cmd_EH_INIT_RULE_BY_EVENT_GROUP ( const CommonCmdPacket packet)

event_handler.c1808 行目に定義があります。

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

◆ Cmd_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL()

CCP_CmdRet Cmd_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL ( const CommonCmdPacket packet)

event_handler.c1816 行目に定義があります。

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

◆ Cmd_EH_INIT_RULE_FOR_MULTI_LEVEL()

CCP_CmdRet Cmd_EH_INIT_RULE_FOR_MULTI_LEVEL ( const CommonCmdPacket packet)

event_handler.c1585 行目に定義があります。

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

◆ Cmd_EH_LOAD_DEFAULT_RULE()

CCP_CmdRet Cmd_EH_LOAD_DEFAULT_RULE ( const CommonCmdPacket packet)

event_handler.c1480 行目に定義があります。

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

◆ Cmd_EH_MATCH_EVENT_COUNTER_TO_EL()

CCP_CmdRet Cmd_EH_MATCH_EVENT_COUNTER_TO_EL ( const CommonCmdPacket packet)

新しい EL_Event 発生を検出するためのカウンタを強制的に EL のカウンタに合わせる

event_handler.c1800 行目に定義があります。

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

◆ Cmd_EH_REGISTER_RULE()

CCP_CmdRet Cmd_EH_REGISTER_RULE ( const CommonCmdPacket packet)

event_handler.c1516 行目に定義があります。

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

◆ Cmd_EH_SET_MAX_CHECK_EVENT_NUM()

CCP_CmdRet Cmd_EH_SET_MAX_CHECK_EVENT_NUM ( const CommonCmdPacket packet)

event_handler.c1745 行目に定義があります。

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

◆ Cmd_EH_SET_MAX_MULTI_LEVEL_NUM()

CCP_CmdRet Cmd_EH_SET_MAX_MULTI_LEVEL_NUM ( const CommonCmdPacket packet)

event_handler.c1752 行目に定義があります。

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

◆ Cmd_EH_SET_MAX_RESPONSE_NUM()

CCP_CmdRet Cmd_EH_SET_MAX_RESPONSE_NUM ( const CommonCmdPacket packet)

event_handler.c1738 行目に定義があります。

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

◆ Cmd_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM()

CCP_CmdRet Cmd_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM ( const CommonCmdPacket packet)

event_handler.c1777 行目に定義があります。

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

◆ Cmd_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM()

CCP_CmdRet Cmd_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM ( const CommonCmdPacket packet)

event_handler.c1768 行目に定義があります。

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

◆ Cmd_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM()

CCP_CmdRet Cmd_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM ( const CommonCmdPacket packet)

event_handler.c1759 行目に定義があります。

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

◆ Cmd_EH_SET_REGISTER_RULE_CONDITION_PARAM()

CCP_CmdRet Cmd_EH_SET_REGISTER_RULE_CONDITION_PARAM ( const CommonCmdPacket packet)

event_handler.c1503 行目に定義があります。

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

◆ Cmd_EH_SET_REGISTER_RULE_EVENT_PARAM()

CCP_CmdRet Cmd_EH_SET_REGISTER_RULE_EVENT_PARAM ( const CommonCmdPacket packet)

event_handler.c1488 行目に定義があります。

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

◆ Cmd_EH_SET_RULE_COUNTER()

CCP_CmdRet Cmd_EH_SET_RULE_COUNTER ( const CommonCmdPacket packet)

event_handler.c1680 行目に定義があります。

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

◆ Cmd_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM()

CCP_CmdRet Cmd_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM ( const CommonCmdPacket packet)

event_handler.c1786 行目に定義があります。

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

◆ EH_activate_rule()

EH_CHECK_RULE_ACK EH_activate_rule ( EH_RULE_ID  id)

ルールの有効化

覚え書き
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
rule_counter はクリアされない
引数
idEH_RULE_ID
戻り値
EH_CHECK_RULE_ACK

event_handler.c1280 行目に定義があります。

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

◆ EH_activate_rule_by_event_group()

void EH_activate_rule_by_event_group ( EL_GROUP  group)

EH_RuleSettings.event.group 指定による一括でのルールの有効化

覚え書き
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
rule_counter はクリアされない
group での操作によって,想定外の EH_Rule まで操作されないように注意すること
引数
groupEL_GROUP
戻り値
void

event_handler.c1344 行目に定義があります。

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

◆ EH_activate_rule_by_event_group_for_multi_level()

void EH_activate_rule_by_event_group_for_multi_level ( EL_GROUP  group)

EH_RuleSettings.event.group 指定による一括でのルールの有効化 (multi-level)

覚え書き
多段の場合,指定した EL_GROUP で指定された EH_RULE_ID より下位のすべてのルールを有効化
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
group での操作によって,想定外の EH_Rule まで操作されないように注意すること
引数
groupEL_GROUP
戻り値
void

event_handler.c1356 行目に定義があります。

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

◆ EH_activate_rule_for_multi_level()

EH_CHECK_RULE_ACK EH_activate_rule_for_multi_level ( EH_RULE_ID  id)

ルールの有効化 (multi-level)

覚え書き
多段の場合,指定した EH_RULE_ID より下位のすべてのルールを有効化
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
引数
idEH_RULE_ID
戻り値
EH_CHECK_RULE_ACK

event_handler.c1300 行目に定義があります。

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

◆ EH_check_continuous_rule_()

static EH_CKECK_RULE_ACK EH_check_continuous_rule_ ( EH_RULE_ID  rule_id,
const EL_Event event 
)
static

EH の対応条件をチェックする (EH_RESPONSE_CONDITION_CONTINUOUS)

覚え書き
引数はアサーション済みを仮定する
上位の EH_Rule についてはここではみない
引数
[in]rule_id対応条件をチェックする EH_RULE_ID
[in]event発生した EL_Event
戻り値
EH_CKECK_RULE_ACK

event_handler.c608 行目に定義があります。

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

◆ EH_check_cumulative_rule_()

static EH_CKECK_RULE_ACK EH_check_cumulative_rule_ ( EH_RULE_ID  rule_id,
const EL_Event event 
)
static

EH の対応条件をチェックする (EH_RESPONSE_CONDITION_CUMULATIVE)

覚え書き
引数はアサーション済みを仮定する
上位の EH_Rule についてはここではみない
引数
[in]rule_id対応条件をチェックする EH_RULE_ID
[in]event発生した EL_Event
戻り値
EH_CKECK_RULE_ACK

event_handler.c632 行目に定義があります。

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

◆ EH_check_el_event_counter_()

static EH_ACK EH_check_el_event_counter_ ( void  )
static

EL 側の EL_Event のカウンタをチェックし,整合性を確認する

引数
void
戻り値
EH_ACK_OK: 正常終了
EH_ACK_ERR: EL と EH のカウンタの不整合が発生し, EH カウンタリセット

event_handler.c368 行目に定義があります。

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

◆ EH_check_event_and_respond_()

static uint8_t EH_check_event_and_respond_ ( const EL_Event event)
static

EL_Event に対応する EH_Rule が存在するかチェックし,対応する

覚え書き
多段の EH 対応のために,再帰呼出しの起点となる
引数
[in]eventチェックする EL_Event
戻り値
対応した EH_Rule 数(多段対応も考慮)

event_handler.c435 行目に定義があります。

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

◆ EH_check_higher_level_rule_and_respond_()

static uint8_t EH_check_higher_level_rule_and_respond_ ( EH_RULE_ID  rule_id)
static

上位の EH の対応条件をチェックし,対応する

覚え書き
引数はアサーション済みを仮定する
再帰呼出しされる
引数
[in]rule_id下位となる可能性がある EH_RULE_ID
戻り値
対応した EH_Rule 数(多段対応も考慮)

event_handler.c519 行目に定義があります。

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

◆ EH_check_rule_()

static EH_CKECK_RULE_ACK EH_check_rule_ ( EH_RULE_ID  rule_id,
const EL_Event event 
)
static

EH の対応条件をチェックする

覚え書き
引数はアサーション済みを仮定する
引数
[in]rule_id対応条件をチェックする EH_RULE_ID
[in]event発生した EL_Event
戻り値
EH_CKECK_RULE_ACK

event_handler.c565 行目に定義があります。

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

◆ EH_check_rule_and_respond_()

static uint8_t EH_check_rule_and_respond_ ( EH_RULE_ID  rule_id,
const EL_Event event 
)
static

EH の対応条件をチェックし, EL_Event に対応する

    対応条件にマッチした場合, EL_CORE_GROUP_EH_MATCH_RULE イベントを発行し,多段の EH 対応を問い合わせる
覚え書き
引数はアサーション済みを仮定する
再帰呼出しされる
引数
[in]rule_id対応条件をチェックし,対応する EH_RULE_ID
[in]event発生した EL_Event
戻り値
対応した EH_Rule 数(多段対応も考慮)

event_handler.c474 行目に定義があります。

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

◆ EH_check_rule_id_()

static EH_CHECK_RULE_ACK EH_check_rule_id_ ( EH_RULE_ID  id)
static

EH_RULE_ID のルール登録状況を調べる

引数
[in]id調べる EH_RULE_ID
戻り値
EH_CHECK_RULE_ACK

event_handler.c1189 行目に定義があります。

被呼び出し関係図:

◆ EH_check_single_rule_()

static EH_CKECK_RULE_ACK EH_check_single_rule_ ( EH_RULE_ID  rule_id,
const EL_Event event 
)
static

EH の対応条件をチェックする (EH_RESPONSE_CONDITION_SINGLE)

覚え書き
引数はアサーション済みを仮定する
上位の EH_Rule についてはここではみない
引数
[in]rule_id対応条件をチェックする EH_RULE_ID
[in]event発生した EL_Event
戻り値
EH_CKECK_RULE_ACK

event_handler.c600 行目に定義があります。

被呼び出し関係図:

◆ EH_clear_log_()

static void EH_clear_log_ ( void  )
static

EH 対応ログを全消去

引数
void
戻り値
void

event_handler.c331 行目に定義があります。

被呼び出し関係図:

◆ EH_clear_rule_counter()

EH_CHECK_RULE_ACK EH_clear_rule_counter ( EH_RULE_ID  id)

EH_Rule の counter を 0 クリア

覚え書き
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
引数
idEH_RULE_ID
戻り値
EH_CHECK_RULE_ACK

event_handler.c1386 行目に定義があります。

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

◆ EH_clear_rule_counter_by_event()

void EH_clear_rule_counter_by_event ( EL_GROUP  group,
uint32_t  local,
EL_ERROR_LEVEL  err_level 
)

EH_Rule の counter を EL_Event 指定で 0 クリア

覚え書き
もしアノマリが発生したら, EL_record_event, 正常なら EH_clear_rule_counter_by_event という使い方を想定している
そのため,EL_record_event とインターフェースをあわせている
引数
groupEL_Event.group
localEL_Event.local
err_levelEL_Event.err_level
戻り値
EH_CHECK_RULE_ACK

event_handler.c1392 行目に定義があります。

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

◆ EH_clear_rules_()

static void EH_clear_rules_ ( void  )
static

EH_RuleTable を全消去

引数
void
戻り値
void

event_handler.c310 行目に定義があります。

被呼び出し関係図:

◆ EH_compare_sorted_index_by_event_group_for_bsearch_()

static int EH_compare_sorted_index_by_event_group_for_bsearch_ ( const void *  key,
const void *  elem 
)
static

EH_search_rule_table_index_by_event_group_ での bsearch 用の EH_RuleSortedIndex 比較関数

覚え書き
group 指定では最も若いものを見つけることができないので,これを用いて bsearch した場合,同じ group が複数ある時,どれを返すかは未規定となることに注意
by_event_group 関数用
引数
[in]keybsearch で検索する EH_RuleSortedIndex
[in]elembsearch 検索対象の EH_RuleSortedIndex 配列要素
戻り値
1key > elem
0key == elem
-1key < elem

event_handler.c907 行目に定義があります。

被呼び出し関係図:

◆ EH_compare_sorted_index_for_bsearch_()

static int EH_compare_sorted_index_for_bsearch_ ( const void *  key,
const void *  elem 
)
static

EH_search_rule_table_index_ での bsearch 用の EH_RuleSortedIndex 比較関数

覚え書き
duplicate_id が 0 であるものを見つける想定
引数
[in]keybsearch で検索する EH_RuleSortedIndex
[in]elembsearch 検索対象の EH_RuleSortedIndex 配列要素
戻り値
1key > elem
0key == elem
-1key < elem

event_handler.c807 行目に定義があります。

被呼び出し関係図:

◆ EH_delete_rule_table_()

static EH_RULE_SORTED_INDEX_ACK EH_delete_rule_table_ ( EH_RULE_ID  id)
static

EH_RuleEH_RuleTableEH_RuleSortedIndex から削除する

引数
[in]id削除する EH_Rule の EH_RULE_ID
戻り値
EH_RULE_SORTED_INDEX_ACK_ILLEGAL_RULE_ID不正な EH_RULE_ID
EH_RULE_SORTED_INDEX_ACK_NOT_FOUND削除対象が見つからず or 登録されてない
EH_RULE_SORTED_INDEX_ACK_OK正常に削除完了

event_handler.c1028 行目に定義があります。

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

◆ EH_exec_func_by_event_group_()

static void EH_exec_func_by_event_group_ ( EL_GROUP  group,
EH_CHECK_RULE_ACK(*)(EH_RULE_ID func 
)
static

by_event_group 関数を実行する主体

引数
[in]group操作する EL_GROUP
[in]func実行する関数
戻り値
void

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

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

◆ EH_execute()

void EH_execute ( void  )

event_handler の実行

    EL にて登録されたイベントを走査し,対応するBCを展開する
覚え書き
event_utility app などから定期実行されることを想定
引数
void
戻り値
void

event_handler.c343 行目に定義があります。

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

◆ EH_get_event_to_check_rule_()

static const EL_Event * EH_get_event_to_check_rule_ ( void  )
static

EH_Rule が存在するかチェックするための次の EL_Event (EL_ERROR_LEVEL_EH を除く) を返す

覚え書き
見つからなかった場合, NULL を返す
引数
void
戻り値
取得した EL_Event

event_handler.c423 行目に定義があります。

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

◆ EH_get_oldest_event_excluding_eh_error_level_()

static const EL_Event * EH_get_oldest_event_excluding_eh_error_level_ ( void  )
static

まだ処理していない最も古い EL_Event (EL_ERROR_LEVEL_EH を除く) を返す

覚え書き
見つからなかった場合, NULL を返す
引数
void
戻り値
見つけた EL_Event

event_handler.c702 行目に定義があります。

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

◆ EH_get_rule_is_active()

uint8_t EH_get_rule_is_active ( EH_RULE_ID  id)

ルールが有効かどうか取得する

引数
[in]idEH_RULE_ID
戻り値
uint8_t: 有効かどうか
覚え書き
ID が無効の場合は inactive (0) を返す

event_handler.c1368 行目に定義があります。

呼び出し関係図:

◆ EH_get_the_nth_log_from_the_latest()

const EH_Log* EH_get_the_nth_log_from_the_latest ( uint16_t  n)

EH_LogTable の最新からn番目の対応ログを取得

覚え書き
n が大きすぎる場合は,最新のものを返す
引数
nn番目(0のとき最新)
戻り値
EH_Log

event_handler.c1446 行目に定義があります。

被呼び出し関係図:

◆ EH_inactivate_rule()

EH_CHECK_RULE_ACK EH_inactivate_rule ( EH_RULE_ID  id)

ルールの無効化

覚え書き
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
引数
idEH_RULE_ID
戻り値
EH_CHECK_RULE_ACK

event_handler.c1290 行目に定義があります。

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

◆ EH_inactivate_rule_by_event_group()

void EH_inactivate_rule_by_event_group ( EL_GROUP  group)

EH_RuleSettings.event.group 指定による一括でのルールの無効化

覚え書き
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
group での操作によって,想定外の EH_Rule まで操作されないように注意すること
引数
groupEL_GROUP
戻り値
void

event_handler.c1350 行目に定義があります。

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

◆ EH_inactivate_rule_by_event_group_for_multi_level()

void EH_inactivate_rule_by_event_group_for_multi_level ( EL_GROUP  group)

EH_RuleSettings.event.group 指定による一括でのルールの無効化 (multi-level)

覚え書き
多段の場合,指定した EL_GROUP で指定された EH_RULE_ID より下位のすべてのルールを無効化
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
group での操作によって,想定外の EH_Rule まで操作されないように注意すること
引数
groupEL_GROUP
戻り値
void

event_handler.c1362 行目に定義があります。

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

◆ EH_inactivate_rule_for_multi_level()

EH_CHECK_RULE_ACK EH_inactivate_rule_for_multi_level ( EH_RULE_ID  id)

ルールの無効化 (multi-level)

覚え書き
多段の場合,指定した EH_RULE_ID より下位のすべてのルールを無効化
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
引数
idEH_RULE_ID
戻り値
EH_CHECK_RULE_ACK

event_handler.c1322 行目に定義があります。

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

◆ EH_init_rule()

EH_CHECK_RULE_ACK EH_init_rule ( EH_RULE_ID  id)

ルールの初期化

    EH_activate_rule した後, EH_clear_rule_counter が実行される
覚え書き
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
引数
idEH_RULE_ID
戻り値
EH_CHECK_RULE_ACK

event_handler.c1234 行目に定義があります。

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

◆ EH_init_rule_by_event_group()

void EH_init_rule_by_event_group ( EL_GROUP  group)

EH_RuleSettings.event.group 指定による一括でのルールの初期化

    EH_activate_rule した後, EH_clear_rule_counter が実行される
覚え書き
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
group での操作によって,想定外の EH_Rule まで操作されないように注意すること
引数
groupEL_GROUP
戻り値
void

event_handler.c1268 行目に定義があります。

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

◆ EH_init_rule_by_event_group_for_multi_level()

void EH_init_rule_by_event_group_for_multi_level ( EL_GROUP  group)

EH_RuleSettings.event.group 指定による一括でのルールの初期化 (multi-level)

    EH_activate_rule した後, EH_clear_rule_counter が実行される
覚え書き
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
group での操作によって,想定外の EH_Rule まで操作されないように注意すること
引数
groupEL_GROUP
戻り値
void

event_handler.c1274 行目に定義があります。

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

◆ EH_init_rule_for_multi_level()

EH_CHECK_RULE_ACK EH_init_rule_for_multi_level ( EH_RULE_ID  id)

ルールの初期化 (multi-level)

    EH_activate_rule した後, EH_clear_rule_counter が実行される
覚え書き
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
引数
idEH_RULE_ID
戻り値
EH_CHECK_RULE_ACK

event_handler.c1245 行目に定義があります。

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

◆ EH_initialize()

void EH_initialize ( void  )

event_handler の初期化

引数
void
戻り値
void

event_handler.c293 行目に定義があります。

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

◆ EH_insert_rule_table_()

static EH_RULE_SORTED_INDEX_ACK EH_insert_rule_table_ ( EH_RULE_ID  id,
const EH_Rule rule 
)
static

EH_RuleEH_RuleTableEH_RuleSortedIndex に挿入する

覚え書き
引数は rule に関してはアサーション済みを仮定する
すでに登録された id に対しての上書き登録はエラー (EH_RULE_SORTED_INDEX_ACK_RULE_OVERWRITE) を返す
引数
[in]id挿入する EH_Rule の EH_RULE_ID
[in]rule挿入する EH_Rule
戻り値
EH_RULE_SORTED_INDEX_ACK_FULLルール登録上限に到達済み
EH_RULE_SORTED_INDEX_ACK_ILLEGAL_RULE_ID不正な EH_RULE_ID
EH_RULE_SORTED_INDEX_ACK_RULE_OVERWRITEすでに同じ ID にルールが登録されているため棄却
EH_RULE_SORTED_INDEX_ACK_DUPLICATE_FULL重複上限まで重複してしまっている
EH_RULE_SORTED_INDEX_ACK_OK正常に挿入完了

event_handler.c927 行目に定義があります。

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

◆ EH_match_event_counter_to_el()

void EH_match_event_counter_to_el ( void  )

イベントカウンタを EL のそれに合わせる

覚え書き
EL 側をリセットした際に呼び出さないと,不整合が発生する(まあ,勝手に解消されるけど)
引数
void
戻り値
void

event_handler.c1435 行目に定義があります。

被呼び出し関係図:

◆ EH_record_responded_log_()

static void EH_record_responded_log_ ( EH_RULE_ID  rule_id,
CCP_EXEC_STS  deploy_cmd_ack 
)
static

EH 対応のログを残す

覚え書き
引数はアサーション済みを仮定する
引数
[in]rule_id対応した EH_RULE_ID
[in]deploy_cmd_ack対応 BC 展開コマンドの実行結果
戻り値
void

event_handler.c680 行目に定義があります。

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

◆ EH_register_rule()

EH_REGISTER_ACK EH_register_rule ( EH_RULE_ID  id,
const EH_RuleSettings settings 
)

ルールの登録

覚え書き
基本的には, EH_load_default_rules 内部でのみ使われることを想定
引数
settingsEH_RuleSettings
idEH_RULE_ID
戻り値
EH_REGISTER_ACK

event_handler.c1101 行目に定義があります。

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

◆ EH_respond_()

static void EH_respond_ ( EH_RULE_ID  rule_id)
static

EH 対応を実施

覚え書き
引数はアサーション済みを仮定する
is_active はこの関数ではみない(上流でチェックしてることを想定)
引数
[in]rule_id対応する EH_RULE_ID
戻り値
void

event_handler.c648 行目に定義があります。

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

◆ EH_search_rule_table_index_()

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 
)
static

EH_RuleSortedIndex から,目的の EL_Event の idx を検索する

覚え書き
引数はアサーション済みを仮定する
引数
[in]group検索する EL_Event.group
[in]local検索する EL_Event.local
[out]found_ids見つかった EH_RULE_ID 一覧
[out]found_sorted_idxes見つかった EH_RuleSortedIndex の index
[out]found_id_num見つかった idx の数
戻り値
EH_RULE_SORTED_INDEX_ACK_NOT_FOUND見つからず
EH_RULE_SORTED_INDEX_ACK_OK正常に探索完了

event_handler.c753 行目に定義があります。

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

◆ EH_search_rule_table_index_by_event_group_()

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 
)
static

EH_RuleSortedIndex から,指定した EL_GROUP の EH_Rule を指す最も若い EH_RuleSortedIndex を取得する

覚え書き
引数はアサーション済みを仮定する
by_event_group 関数用
引数
[in]group検索する EL_Event.group
[out]least_found_sorted_idx見つかった EH_RuleSortedIndex の index のうち最小のもの
[out]found_sorted_idx_num見つかった EH_RuleSortedIndex の index の数
戻り値
EH_RULE_SORTED_INDEX_ACK_NOT_FOUND見つからず
EH_RULE_SORTED_INDEX_ACK_OK正常に探索完了

event_handler.c847 行目に定義があります。

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

◆ EH_set_rule_counter()

EH_CHECK_RULE_ACK EH_set_rule_counter ( EH_RULE_ID  id,
uint16_t  counter 
)

EH_Rule の counter をセット

覚え書き
基本的にはコマンドで操作するので,直接使うことはあまり想定していない
引数
idEH_RULE_ID
counterセットする counter
戻り値
EH_CHECK_RULE_ACK

event_handler.c1376 行目に定義があります。

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

変数詳解

◆ event_handler

const EventHandler* const event_handler = &event_handler_

event_handler.c290 行目に定義があります。

◆ event_handler_

EventHandler event_handler_
static

event_handler.c289 行目に定義があります。