C2A_Core
|
イベント発火型処理を行う [詳解]
#include "event_logger.h"
#include <stddef.h>
#include "../TimeManager/obc_time.h"
#include "../../TlmCmd/block_command_table.h"
#include <src_user/Settings/System/EventHandlerRules/event_handler_rules.h>
#include <src_user/Settings/System/event_handler_params.h>
データ構造 | |
struct | EH_RuleSettings |
EH_register_rule の引数.Rule登録に必要な情報 [詳解] | |
struct | EH_Rule |
EL_Event に対して対応する EH_Rule [詳解] | |
struct | EH_RuleTable |
EH_Rule のテーブル [詳解] | |
struct | EH_RuleSortedIndex |
struct | EH_Log |
EH 対応のログ [詳解] | |
struct | EH_LogTable |
EH 対応のログテーブル [詳解] | |
struct | EH_ElEventCounter |
EL イベントカウンタ. EL のイベント記録情報と照らし合わせて,対応すべきイベントを探索するために使う [詳解] | |
struct | EH_ExecSettings |
EH 実行時設定 [詳解] | |
struct | EH_ExecInfo |
EH 実行時情報 [詳解] | |
struct | EH_RegisterFromCmd |
コマンド経由で EH_Rule を登録するときに使う内部状態変数 [詳解] | |
struct | EH_TlmInfo |
tlmのページネーションの情報保持 [詳解] | |
struct | EventHandler |
EventHandler のInfo構造体 [詳解] | |
マクロ定義 | |
#define | EH_RULE_TLM_PAGE_SIZE (20) |
event_handler のルールテーブルの1テレメトリパケット(=1ページ)に格納されるルール数(ページネーション用) [詳解] | |
#define | EH_RULE_TLM_PAGE_MAX (8) |
event_handler のルールテーブルのページ数(ページネーション用) [詳解] | |
#define | EH_LOG_TLM_PAGE_SIZE (64) |
EH対応のログテーブルの1テレメトリパケット(=1ページ)に格納されるログ数(ページネーション用) [詳解] | |
#define | EH_LOG_TLM_PAGE_MAX (2) |
EH対応のログテーブルのページ数(ページネーション用) [詳解] | |
#define | EH_MAX_RULE_NUM_OF_EL_ID_DUPLICATES (4) |
EL_Event の ID が重複した EH_Rule を最大何個まで重複させてよいか (uint8_t を想定) [詳解] | |
#define | EH_MAX_RESPONSE_NUM_DEFAULT (8) |
一度の実行で対応する最大数(初期値) (uint8_t を想定) [詳解] | |
#define | EH_MAX_CHECK_EVENT_NUM_DEFAULT (64) |
#define | EH_MAX_MULTI_LEVEL_NUM_DEFAULT (4) |
多段の EH 対応の設定可能な最大段数(初期値) (uint8_t を想定) [詳解] | |
#define | EH_RULE_MAX (EH_RULE_ID)(EH_RULE_TLM_PAGE_SIZE * EH_RULE_TLM_PAGE_MAX) |
#define | EH_LOG_MAX (EH_LOG_TLM_PAGE_SIZE * EH_LOG_TLM_PAGE_MAX) |
最大何個の EH 対応ログを保持できるか [詳解] | |
変数 | |
const EventHandler *const | event_handler |
イベント発火型処理を行う
event_handler.h に定義があります。
#define EH_LOG_MAX (EH_LOG_TLM_PAGE_SIZE * EH_LOG_TLM_PAGE_MAX) |
最大何個の EH 対応ログを保持できるか
event_handler.h の 136 行目に定義があります。
#define EH_LOG_TLM_PAGE_MAX (2) |
EH対応のログテーブルのページ数(ページネーション用)
event_handler.h の 112 行目に定義があります。
#define EH_LOG_TLM_PAGE_SIZE (64) |
EH対応のログテーブルの1テレメトリパケット(=1ページ)に格納されるログ数(ページネーション用)
event_handler.h の 111 行目に定義があります。
#define EH_MAX_CHECK_EVENT_NUM_DEFAULT (64) |
一度の実行でチェックする event_logger の event log の最大値(初期値) (uint16_t を想定) TL内での実行時間を調整するために設定する.
event_handler.h の 117 行目に定義があります。
#define EH_MAX_MULTI_LEVEL_NUM_DEFAULT (4) |
多段の EH 対応の設定可能な最大段数(初期値) (uint8_t を想定)
event_handler.h の 118 行目に定義があります。
#define EH_MAX_RESPONSE_NUM_DEFAULT (8) |
一度の実行で対応する最大数(初期値) (uint8_t を想定)
event_handler.h の 115 行目に定義があります。
#define EH_MAX_RULE_NUM_OF_EL_ID_DUPLICATES (4) |
EL_Event の ID が重複した EH_Rule を最大何個まで重複させてよいか (uint8_t を想定)
event_handler.h の 114 行目に定義があります。
#define EH_RULE_MAX (EH_RULE_ID)(EH_RULE_TLM_PAGE_SIZE * EH_RULE_TLM_PAGE_MAX) |
最大何個のルール ( EL_Event - EH_Rule 対応) を保持できるか 基本的に, EH_RULE_ID として使うので,キャストする enum上で定義しないのは, EH_Rule の最大値を,初期に定義する数よりも多くしたいため また,この値は, Rule 未定義値(ないしは初期値)としても使う
event_handler.h の 135 行目に定義があります。
#define EH_RULE_TLM_PAGE_MAX (8) |
event_handler のルールテーブルのページ数(ページネーション用)
event_handler.h の 109 行目に定義があります。
#define EH_RULE_TLM_PAGE_SIZE (20) |
event_handler のルールテーブルの1テレメトリパケット(=1ページ)に格納されるルール数(ページネーション用)
event_handler.h の 108 行目に定義があります。
enum EH_CHECK_RULE_ACK |
EH_Rule 登録状況確認用
列挙値 | |
---|---|
EH_CHECK_RULE_ACK_OK | 正常 or ルール登録済み |
EH_CHECK_RULE_ACK_INVALID_RULE_ID | EH_RULE_ID が不正 |
EH_CHECK_RULE_ACK_UNREGISTERED | ルールが未登録 |
event_handler.h の 167 行目に定義があります。
enum EH_REGISTER_ACK |
EH_register_rule の返り値
列挙値 | |
---|---|
EH_REGISTER_ACK_OK | 正常に登録完了 |
EH_REGISTER_ACK_ERR_FULL | これ以上登録できない |
EH_REGISTER_ACK_ERR_RULE_OVERWRITE | すでに同じ ID にルールが登録されているため棄却 |
EH_REGISTER_ACK_ERR_DUPLICATE_FULL | |
EH_REGISTER_ACK_ILLEGAL_RULE_ID | 不正な EH_RULE_ID |
EH_REGISTER_ACK_ILLEGAL_GROUP | 不正な EL_Event.group |
EH_REGISTER_ACK_ILLEGAL_ERROR_LEVEL | |
EH_REGISTER_ACK_ILLEGAL_MATCH_FLAG | 不正な should_match_err_level |
EH_REGISTER_ACK_ILLEGAL_CONDITION_TYPE | 不正な EH_RESPONSE_CONDITION_TYPE |
EH_REGISTER_ACK_ILLEGAL_COUNT_THRESHOLD | 不正な condition.count_threshold |
EH_REGISTER_ACK_ILLEGAL_BCT_ID | 不正な deploy_bct_id |
EH_REGISTER_ACK_ILLEGAL_ACTIVE_FLAG | 不正な is_active |
EH_REGISTER_ACK_ILLEGAL_MULTI_LEVEL | 多段 EH 対応での不正な設定 |
EH_REGISTER_ACK_UNKNOWN_ERR | 不明なエラー |
event_handler.h の 143 行目に定義があります。
EL_Event 登録に対して,どのように EH 対応させるかの種類
event_handler.h の 179 行目に定義があります。
CCP_CmdRet Cmd_EH_ACTIVATE_RULE | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_ACTIVATE_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_ACTIVATE_RULE_FOR_MULTI_LEVEL | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_CLEAR_ALL_RULE | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_CLEAR_LOG | ( | 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_DELETE_RULE | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_INACTIVATE_RULE | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_INIT | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_INIT_RULE | ( | const CommonCmdPacket * | packet | ) |
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_INIT_RULE_FOR_MULTI_LEVEL | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_LOAD_DEFAULT_RULE | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_MATCH_EVENT_COUNTER_TO_EL | ( | const CommonCmdPacket * | packet | ) |
新しい EL_Event 発生を検出するためのカウンタを強制的に EL のカウンタに合わせる
event_handler.c の 1800 行目に定義があります。
CCP_CmdRet Cmd_EH_REGISTER_RULE | ( | 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_MAX_RESPONSE_NUM | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_SET_PAGE_OF_LOG_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_RULE_TABLE_FOR_TLM | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_SET_REGISTER_RULE_CONDITION_PARAM | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_SET_REGISTER_RULE_EVENT_PARAM | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_SET_RULE_COUNTER | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM | ( | const CommonCmdPacket * | packet | ) |
EH_CHECK_RULE_ACK EH_activate_rule | ( | EH_RULE_ID | id | ) |
ルールの有効化
id | EH_RULE_ID |
event_handler.c の 1280 行目に定義があります。
void EH_activate_rule_by_event_group | ( | EL_GROUP | group | ) |
EH_RuleSettings.event.group 指定による一括でのルールの有効化
group | EL_GROUP |
event_handler.c の 1344 行目に定義があります。
void EH_activate_rule_by_event_group_for_multi_level | ( | EL_GROUP | group | ) |
EH_RuleSettings.event.group 指定による一括でのルールの有効化 (multi-level)
group | EL_GROUP |
event_handler.c の 1356 行目に定義があります。
EH_CHECK_RULE_ACK EH_activate_rule_for_multi_level | ( | EH_RULE_ID | id | ) |
ルールの有効化 (multi-level)
id | EH_RULE_ID |
event_handler.c の 1300 行目に定義があります。
EH_CHECK_RULE_ACK EH_clear_rule_counter | ( | EH_RULE_ID | id | ) |
EH_Rule の counter を 0 クリア
id | EH_RULE_ID |
event_handler.c の 1386 行目に定義があります。
void EH_clear_rule_counter_by_event | ( | EL_GROUP | group, |
uint32_t | local, | ||
EL_ERROR_LEVEL | err_level | ||
) |
EH_Rule の counter を EL_Event 指定で 0 クリア
group | EL_Event.group |
local | EL_Event.local |
err_level | EL_Event.err_level |
event_handler.c の 1392 行目に定義があります。
void EH_execute | ( | void | ) |
event_handler の実行
EL にて登録されたイベントを走査し,対応するBCを展開する
void |
event_handler.c の 343 行目に定義があります。
uint8_t EH_get_rule_is_active | ( | EH_RULE_ID | id | ) |
ルールが有効かどうか取得する
[in] | id | EH_RULE_ID |
event_handler.c の 1368 行目に定義があります。
const EH_Log* EH_get_the_nth_log_from_the_latest | ( | uint16_t | n | ) |
EH_LogTable の最新からn番目の対応ログを取得
n | n番目(0のとき最新) |
event_handler.c の 1446 行目に定義があります。
EH_CHECK_RULE_ACK EH_inactivate_rule | ( | EH_RULE_ID | id | ) |
ルールの無効化
id | EH_RULE_ID |
event_handler.c の 1290 行目に定義があります。
void EH_inactivate_rule_by_event_group | ( | EL_GROUP | group | ) |
EH_RuleSettings.event.group 指定による一括でのルールの無効化
group | EL_GROUP |
event_handler.c の 1350 行目に定義があります。
void EH_inactivate_rule_by_event_group_for_multi_level | ( | EL_GROUP | group | ) |
EH_RuleSettings.event.group 指定による一括でのルールの無効化 (multi-level)
group | EL_GROUP |
event_handler.c の 1362 行目に定義があります。
EH_CHECK_RULE_ACK EH_inactivate_rule_for_multi_level | ( | EH_RULE_ID | id | ) |
ルールの無効化 (multi-level)
id | EH_RULE_ID |
event_handler.c の 1322 行目に定義があります。
EH_CHECK_RULE_ACK EH_init_rule | ( | EH_RULE_ID | id | ) |
ルールの初期化
EH_activate_rule した後, EH_clear_rule_counter が実行される
id | EH_RULE_ID |
event_handler.c の 1234 行目に定義があります。
void EH_init_rule_by_event_group | ( | EL_GROUP | group | ) |
EH_RuleSettings.event.group 指定による一括でのルールの初期化
EH_activate_rule した後, EH_clear_rule_counter が実行される
group | EL_GROUP |
event_handler.c の 1268 行目に定義があります。
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 | EL_GROUP |
event_handler.c の 1274 行目に定義があります。
EH_CHECK_RULE_ACK EH_init_rule_for_multi_level | ( | EH_RULE_ID | id | ) |
ルールの初期化 (multi-level)
EH_activate_rule した後, EH_clear_rule_counter が実行される
id | EH_RULE_ID |
event_handler.c の 1245 行目に定義があります。
void EH_initialize | ( | void | ) |
void EH_match_event_counter_to_el | ( | void | ) |
イベントカウンタを EL のそれに合わせる
void |
event_handler.c の 1435 行目に定義があります。
EH_REGISTER_ACK EH_register_rule | ( | EH_RULE_ID | id, |
const EH_RuleSettings * | settings | ||
) |
ルールの登録
settings | EH_RuleSettings |
id | EH_RULE_ID |
event_handler.c の 1101 行目に定義があります。
EH_CHECK_RULE_ACK EH_set_rule_counter | ( | EH_RULE_ID | id, |
uint16_t | counter | ||
) |
EH_Rule の counter をセット
id | EH_RULE_ID |
counter | セットする counter |
event_handler.c の 1376 行目に定義があります。
|
extern |
event_handler.c の 290 行目に定義があります。