C2A_Core
|
コマンドの実行・登録,コマンド関連処理 [詳解]
#include "common_cmd_packet.h"
#include "common_cmd_packet_util.h"
#include <src_user/TlmCmd/command_definitions.h>
#include <src_user/Settings/TlmCmd/command_analyze_params.h>
データ構造 | |
struct | CA_PackedParamSizeInfo |
パラメタのサイズ情報を圧縮した構造体 [詳解] | |
struct | CA_CmdInfo |
コマンドテーブルの要素となる構造体 [詳解] | |
struct | CommandAnalyze |
CommandAnalyze の Info 構造体 [詳解] | |
マクロ定義 | |
#define | CA_TLM_PAGE_SIZE (32) |
コマンドテーブルの1テレメトリパケット(=1ページ)に格納されるコマンド数(ページネーション用) [詳解] | |
#define | CA_TLM_PAGE_MAX (48) |
コマンドテーブルページ数(ページネーション用) [詳解] | |
#define | CA_MAX_CMDS (CA_TLM_PAGE_SIZE * CA_TLM_PAGE_MAX) |
コマンドテーブルサイズ.すなわち登録できる最大コマンド数 [詳解] | |
#define | CA_MAX_CMD_PARAM_NUM (6) |
コマンドパラメタ(引数)の最大数.現時点ではユーザー側で可変にすることを想定してはない [詳解] | |
列挙型 | |
enum | CA_ACK { CA_ACK_OK = 0 , CA_ACK_ERR } |
enum | CA_PARAM_SIZE_TYPE { CA_PARAM_SIZE_TYPE_NONE = 0 , CA_PARAM_SIZE_TYPE_1BYTE , CA_PARAM_SIZE_TYPE_2BYTE , CA_PARAM_SIZE_TYPE_4BYTE , CA_PARAM_SIZE_TYPE_8BYTE , CA_PARAM_SIZE_TYPE_RAW = 0xf } |
コマンドパラメタサイズ [詳解] | |
関数 | |
void | CA_initialize (void) |
CA の初期化 [詳解] | |
CCP_CmdRet | CA_execute_cmd (const CommonCmdPacket *packet) |
コマンド実行の本体 [詳解] | |
uint8_t | CA_get_cmd_param_num (CMD_CODE cmd_code) |
コマンドパラメタ数を取得する [詳解] | |
uint8_t | CA_get_cmd_param_size (CMD_CODE cmd_code, uint8_t n) |
コマンドパラメタサイズを取得する [詳解] | |
uint16_t | CA_get_cmd_param_min_len (CMD_CODE cmd_code) |
最小コマンドパラメタ長を取得する [詳解] | |
CA_ACK | CA_ckeck_cmd_param_len (CMD_CODE cmd_code, uint16_t param_len) |
コマンドパラメタ長をチェックする [詳解] | |
int | CA_has_raw_param (CMD_CODE cmd_code) |
RAW パラメタを持っているか? [詳解] | |
void | CA_load_cmd_table (CA_CmdInfo cmd_table[CA_MAX_CMDS]) |
Cmd Tableのロード [詳解] | |
CCP_CmdRet | Cmd_CA_INIT (const CommonCmdPacket *packet) |
CCP_CmdRet | Cmd_CA_REGISTER_CMD (const CommonCmdPacket *packet) |
CCP_CmdRet | Cmd_CA_SET_PAGE_FOR_TLM (const CommonCmdPacket *packet) |
変数 | |
const CommandAnalyze *const | command_analyze |
コマンドの実行・登録,コマンド関連処理
command_analyze.h に定義があります。
#define CA_MAX_CMD_PARAM_NUM (6) |
コマンドパラメタ(引数)の最大数.現時点ではユーザー側で可変にすることを想定してはない
command_analyze.h の 15 行目に定義があります。
#define CA_MAX_CMDS (CA_TLM_PAGE_SIZE * CA_TLM_PAGE_MAX) |
コマンドテーブルサイズ.すなわち登録できる最大コマンド数
command_analyze.h の 14 行目に定義があります。
#define CA_TLM_PAGE_MAX (48) |
コマンドテーブルページ数(ページネーション用)
command_analyze.h の 13 行目に定義があります。
#define CA_TLM_PAGE_SIZE (32) |
コマンドテーブルの1テレメトリパケット(=1ページ)に格納されるコマンド数(ページネーション用)
command_analyze.h の 12 行目に定義があります。
enum CA_ACK |
列挙値 | |
---|---|
CA_ACK_OK | 正常終了 |
CA_ACK_ERR | エラー |
command_analyze.h の 25 行目に定義があります。
enum CA_PARAM_SIZE_TYPE |
コマンドパラメタサイズ
列挙値 | |
---|---|
CA_PARAM_SIZE_TYPE_NONE | パラメタなし |
CA_PARAM_SIZE_TYPE_1BYTE | 1 byte |
CA_PARAM_SIZE_TYPE_2BYTE | 2 byte |
CA_PARAM_SIZE_TYPE_4BYTE | 4 byte |
CA_PARAM_SIZE_TYPE_8BYTE | 8 byte |
CA_PARAM_SIZE_TYPE_RAW | RAW パラメタ |
command_analyze.h の 55 行目に定義があります。
コマンドパラメタ長をチェックする
cmd_code | チェックするコマンドのID |
param_len | パラメタ長 |
command_analyze.c の 146 行目に定義があります。
CCP_CmdRet CA_execute_cmd | ( | const CommonCmdPacket * | packet | ) |
uint16_t CA_get_cmd_param_min_len | ( | CMD_CODE | cmd_code | ) |
最小コマンドパラメタ長を取得する
cmd_code | チェックするコマンドのID |
command_analyze.c の 132 行目に定義があります。
uint8_t CA_get_cmd_param_num | ( | CMD_CODE | cmd_code | ) |
コマンドパラメタ数を取得する
cmd_code | チェックするコマンドのID |
command_analyze.c の 93 行目に定義があります。
uint8_t CA_get_cmd_param_size | ( | CMD_CODE | cmd_code, |
uint8_t | n | ||
) |
コマンドパラメタサイズを取得する
cmd_code | チェックするコマンドのID |
n | N番目のパラメタ (0起算) |
command_analyze.c の 108 行目に定義があります。
int CA_has_raw_param | ( | CMD_CODE | cmd_code | ) |
RAW パラメタを持っているか?
cmd_code | チェックするコマンドのID |
1 | RAW パラメタあり |
0 | RAW パラメタなし or 不正な引数 |
command_analyze.c の 164 行目に定義があります。
void CA_initialize | ( | void | ) |
void CA_load_cmd_table | ( | CA_CmdInfo | cmd_table[CA_MAX_CMDS] | ) |
Cmd Tableのロード
cmd_table | Cmd Tableの実体 |
command_definitions.c の 11 行目に定義があります。
CCP_CmdRet Cmd_CA_INIT | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_CA_REGISTER_CMD | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_CA_SET_PAGE_FOR_TLM | ( | const CommonCmdPacket * | packet | ) |
|
extern |
command_analyze.c の 34 行目に定義があります。