diff --git a/Drivers/Super/driver_super_issl_format.h b/Drivers/Super/driver_super_issl_format.h index 596173132..bfc24056e 100644 --- a/Drivers/Super/driver_super_issl_format.h +++ b/Drivers/Super/driver_super_issl_format.h @@ -28,6 +28,7 @@ // [TODO] 以下は本当はTCPの定義から持ってきたい.TCPの整理が終わったらそうする +// FIXME: Space Packet 大工事が終わったら整合を取る! #define DS_C2AFMT_TCP_CMD_PRIMARY_HEADER_SIZE (6) //!< C2A間通信のTCPCMDののPrimary header size #define DS_C2AFMT_TCP_CMD_SECONDARY_HEADER_SIZE (1) //!< C2A間通信のTCPCMDののSecondary header size #define DS_C2AFMT_TCP_TLM_PRIMARY_HEADER_SIZE (6) //!< C2A間通信のTCPのTLMのPrimary header size diff --git a/Examples/minimum_user_for_s2e/src/src_user/Applications/CMakeLists.txt b/Examples/minimum_user_for_s2e/src/src_user/Applications/CMakeLists.txt index 4fe3a18a9..8d7b242b3 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Applications/CMakeLists.txt +++ b/Examples/minimum_user_for_s2e/src/src_user/Applications/CMakeLists.txt @@ -4,6 +4,7 @@ project(C2A_USER_APPS) set(C2A_SRCS app_registry.c + DriverInstances/di_aobc.c DriverInstances/di_gs.c DriverInstances/di_uart_test.c UserDefined/debug_apps.c diff --git a/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_aobc.c b/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_aobc.c new file mode 100644 index 000000000..f71653dec --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_aobc.c @@ -0,0 +1,119 @@ +#pragma section REPRO +/** +* @file +* @brief AOBC の DI と AOBC の cmd dispatcher +* @note C2A 間通信のデモ用であり, AOBC も C2A 搭載を仮定する +*/ + +#include "di_aobc.h" +#include "../../Drivers/Aocs/aobc.h" +#include "../../TlmCmd/user_packet_handler.h" +#include +#include "../../Settings/port_config.h" + + +static AOBC_Driver aobc_driver_; +const AOBC_Driver* const aobc_driver = &aobc_driver_; + +static CommandDispatcher DI_AOBC_cdis_; +const CommandDispatcher* const DI_AOBC_cdis = &DI_AOBC_cdis_; + +static void DI_AOBC_init_(void); +static void DI_AOBC_update_(void); + +static void DI_AOBC_cmd_dispatcher_init_(void); +static void DI_AOBC_cmd_dispatcher_(void); + + +AppInfo DI_AOBC_update(void) +{ + return AI_create_app_info("update_AOBC", DI_AOBC_init_, DI_AOBC_update_); +} + + +static void DI_AOBC_init_(void) +{ + int ret = AOBC_init(&aobc_driver_, PORT_CH_RS422_AOBC); + + if (ret != 0) + { + Printf("AOBC init Failed ! %d \n", ret); + } +} + + +static void DI_AOBC_update_(void) +{ + int ret; + ret = AOBC_rec(&aobc_driver_); + + // [TODO] + // 必要があればここに処理を +} + + +AppInfo DI_AOBC_cmd_dispatcher(void) +{ + return AI_create_app_info("aobc_cdis", + DI_AOBC_cmd_dispatcher_init_, + DI_AOBC_cmd_dispatcher_); +} + + +static void DI_AOBC_cmd_dispatcher_init_(void) +{ + DI_AOBC_cdis_ = CDIS_init(&PH_aobc_cmd_list); +} + + +static void DI_AOBC_cmd_dispatcher_(void) +{ + CDIS_dispatch_command(&DI_AOBC_cdis_); +} + + +CCP_EXEC_STS DI_AOBC_dispatch_command(const CommonCmdPacket* packet) +{ + DS_CMD_ERR_CODE ret; + CommonCmdPacket* pckt = (CommonCmdPacket*)packet; // const_cast + // ここで TCP_CMD_DEST_TYPE を宛先で受理できるように変更(なので const cast が発生している...) + + if (CCP_get_dest_type(pckt) != CCP_DEST_TYPE_TO_ME) + { + // MOBC のキューに入らず直接転送 + // そのままの EXEC_TYPE で転送.なにもしない + } + else + { + // MOBC のキューに溜まった後に実行されたもの + // 配送先 OBC では MOBC 側の TL などの影響は受けないはずなので RTC へ変換 + CCP_set_exec_type(pckt, CCP_EXEC_TYPE_RT); + } + + // 配送先 OBC が最終到達地なので + CCP_set_dest_type(pckt, CCP_DEST_TYPE_TO_ME); + + ret = AOBC_send_cmd(&aobc_driver_, pckt); + return DS_conv_cmd_err_to_ccp_exec_sts(ret); +} + + +CCP_EXEC_STS Cmd_DI_AOBC_CDIS_CLEAR_ALL_REALTIME(const CommonCmdPacket* packet) +{ + (void)packet; + + CDIS_clear_command_list(&DI_AOBC_cdis_); + return CCP_EXEC_SUCCESS; +} + + +CCP_EXEC_STS Cmd_DI_AOBC_CDIS_CLEAR_ERR_LOG(const CommonCmdPacket* packet) +{ + (void)packet; + + // 記録されたエラー情報を解除 + CDIS_clear_error_status(&DI_AOBC_cdis_); + return CCP_EXEC_SUCCESS; +} + +#pragma section diff --git a/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_aobc.h b/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_aobc.h new file mode 100644 index 000000000..14d922ba5 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_aobc.h @@ -0,0 +1,47 @@ +/** +* @file +* @brief AOBC の DI と AOBC の cmd dispatcher +* @note C2A 間通信のデモ用であり, AOBC も C2A 搭載を仮定する +*/ +#ifndef INCLUDED_DI_AOBC_H +#define INCLUDED_DI_AOBC_H + +#include "../../Drivers/Aocs/aobc.h" +#include "../../Drivers/Aocs/aobc_command_definitions.h" +#include "../../Drivers/Aocs/aobc_telemetry_definitions.h" +#include +#include +#include + +extern const AOBC_Driver* const aobc_driver; //!< AOBC driver +extern const CommandDispatcher* const DI_AOBC_cdis; //!< AOBC cmd dispatcher + +/** + * @brief AOBC update アプリ生成関数 + * @param void + * @return void + */ +AppInfo DI_AOBC_update(void); + +/** + * @brief AOBC cmd dispatcher アプリ生成関数 + * @param void + * @return void + */ +AppInfo DI_AOBC_cmd_dispatcher(void); + +/** + * @brief CommonCmdPacket を AOBC に送信する + * @note AOBC が自身のコマンドと解釈できるよう,Execution Type を上書きするため, packet を const cast する.[TODO] const cast やめたい + * @note この関数を呼んでも良いのは,user_packet_handler のみ! + * @param packet: CommonCmdPacket packet + * @retval CCP_EXEC_SUCCESS: 無事に転送された + * @retval それ以外: 転送失敗(DS_CMD_ERR_CODE を CCP_EXEC_STS に変換して返す.詳細エラーは DriverSuper を参照) + */ +CCP_EXEC_STS DI_AOBC_dispatch_command(const CommonCmdPacket* packet); + +CCP_EXEC_STS Cmd_DI_AOBC_CDIS_CLEAR_ALL_REALTIME(const CommonCmdPacket* packet); + +CCP_EXEC_STS Cmd_DI_AOBC_CDIS_CLEAR_ERR_LOG(const CommonCmdPacket* packet); + +#endif diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc.c b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc.c new file mode 100644 index 000000000..659bc0016 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc.c @@ -0,0 +1,200 @@ +#pragma section REPRO +/** +* @file +* @brief AOBC の Driver +*/ +#include "./aobc.h" +#include "./aobc_command_definitions.h" +#include "./aobc_telemetry_definitions.h" +#include "./aobc_telemetry_buffer.h" +#include +#include +#include + +// ヘッダーフッター +static const uint8_t AOBC_stx_[DS_ISSLFMT_STX_SIZE] = {DS_ISSLFMT_STX_1ST_BYTE, + DS_ISSLFMT_STX_2ND_BYTE}; +static const uint8_t AOBC_etx_[DS_ISSLFMT_ETX_SIZE] = {DS_ISSLFMT_ETX_1ST_BYTE, + DS_ISSLFMT_ETX_2ND_BYTE}; + +#define AOBC_STREAM_TLM_CMD (0) //!< テレコマで使うストリーム + +static DS_ERR_CODE AOBC_load_driver_super_init_settings_(DriverSuper* p_super); +static DS_ERR_CODE AOBC_analyze_rec_data_(DS_StreamConfig* p_stream_config, + void* p_driver); + +static uint8_t AOBC_tx_frame_[DS_ISSLFMT_COMMON_HEADER_SIZE + + CTCP_MAX_LEN + + DS_ISSLFMT_COMMON_FOOTER_SIZE]; + + +int AOBC_init(AOBC_Driver* aobc_driver, uint8_t ch) +{ + DS_ERR_CODE ret; + + memset(aobc_driver, 0x00, sizeof(*aobc_driver)); + AOBC_buffer_init(); + + aobc_driver->driver.uart_config.ch = ch; + aobc_driver->driver.uart_config.baudrate = 115200; + aobc_driver->driver.uart_config.parity_settings = PARITY_SETTINGS_NONE; + aobc_driver->driver.uart_config.data_length = UART_DATA_LENGTH_8BIT; + aobc_driver->driver.uart_config.stop_bit = UART_STOP_BIT_1BIT; + + ret = DS_init(&(aobc_driver->driver.super), + &(aobc_driver->driver.uart_config), + AOBC_load_driver_super_init_settings_); + if (ret != DS_ERR_CODE_OK) return 1; + return 0; +} + + +static DS_ERR_CODE AOBC_load_driver_super_init_settings_(DriverSuper* p_super) +{ + DS_StreamConfig* p_stream_config; + + p_super->interface = UART; + + // streamは0のみ + p_stream_config = &(p_super->stream_config[AOBC_STREAM_TLM_CMD]); + DSSC_enable(p_stream_config); + + // 送信はする + DSSC_set_tx_frame(p_stream_config, AOBC_tx_frame_); // 送る直前に中身を memcpy する + DSSC_set_tx_frame_size(p_stream_config, 0); // 送る直前に値をセットする + + // 定期的な受信はする + DSSC_set_rx_header(p_stream_config, AOBC_stx_, DS_ISSLFMT_STX_SIZE); + DSSC_set_rx_footer(p_stream_config, AOBC_etx_, DS_ISSLFMT_ETX_SIZE); + DSSC_set_rx_frame_size(p_stream_config, -1); // 可変 + DSSC_set_rx_framelength_pos(p_stream_config, DS_ISSLFMT_COMMON_HEADER_SIZE + 4); + DSSC_set_rx_framelength_type_size(p_stream_config, 2); + // [TODO] これはちょっと要確認. CCSDS は 1 起算? + DSSC_set_rx_framelength_offset(p_stream_config, + DS_ISSLFMT_COMMON_HEADER_SIZE + DS_ISSLFMT_COMMON_FOOTER_SIZE + DS_C2AFMT_TCP_TLM_PRIMARY_HEADER_SIZE + 1); + DSSC_set_data_analyzer(p_stream_config, AOBC_analyze_rec_data_); + + // 定期 TLM の監視機能の有効化しない → ので設定上書きなし + + return DS_ERR_CODE_OK; +} + + +int AOBC_rec(AOBC_Driver* aobc_driver) +{ + DS_ERR_CODE ret; + DS_StreamConfig* p_stream_config; + + ret = DS_receive(&(aobc_driver->driver.super)); + + if (ret != DS_ERR_CODE_OK) return 1; + + p_stream_config = &(aobc_driver->driver.super.stream_config[AOBC_STREAM_TLM_CMD]); + if (DSSC_get_rec_status(p_stream_config)->status_code != DS_STREAM_REC_STATUS_FIXED_FRAME) return 0; // 受信せず([TODO] 詳細なエラー処理は一旦しない) + + ret = DS_analyze_rec_data(&(aobc_driver->driver.super), AOBC_STREAM_TLM_CMD, aobc_driver); + + if (ret != DS_ERR_CODE_OK) return 1; + + return 0; +} + + +static DS_ERR_CODE AOBC_analyze_rec_data_(DS_StreamConfig* p_stream_config, + void* p_driver) +{ + AOBC_Driver* aobc_driver = (AOBC_Driver*)p_driver; + + aobc_driver->info.comm.rx_err_code = AOBC_RX_ERR_CODE_OK; + + // [TODO] ここに CRC チェックをいれる + // AOBC_RX_ERR_CODE_CRC_ERR を入れる + + return AOBC_buffer_tlm_contents(p_stream_config, aobc_driver); +} + + +#if 0 +// 非C2A系列はこのように書く +static DS_ERR_CODE AOBC_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* p_driver) +{ + AOBC_Driver* aobc_driver = (AOBC_Driver*)p_driver; + uint32_t tlm_ver = DS_ISSLFMT_get_tlm_version(p_stream_config); + uint32_t tlm_id = DS_ISSLFMT_get_tlm_id(tlm_ver, p_stream_config); + + aobc_driver->info.comm.rx_err_code = AOBC_RX_ERR_CODE_OK; + + // [TODO] ここ自動生成したい... + switch (tlm_id) + { + case AOBC_Tlm_CODE_HK: + return AOBC_analyze_tlm_hk_(p_stream_config, aobc_driver); + default: + aobc_driver->info.comm.rx_err_code = AOBC_RX_ERR_CODE_TLM_NOT_FOUND; + return DS_ERR_CODE_OK; + } +} +#endif + + +DS_CMD_ERR_CODE AOBC_send_cmd(AOBC_Driver* aobc_driver, const CommonCmdPacket* packet) +{ + DS_ERR_CODE ret; + DS_StreamConfig* p_stream_config; + AOBC_CMD_CODE cmd_code; + uint16_t ctcp_len; + uint16_t crc; + size_t pos; + size_t size; + + p_stream_config = &(aobc_driver->driver.super.stream_config[AOBC_STREAM_TLM_CMD]); + + // tx_frameの設定 + ctcp_len = CCP_get_packet_len(packet); + DSSC_set_tx_frame_size(p_stream_config, + (uint16_t)(ctcp_len + DS_ISSLFMT_COMMON_HEADER_SIZE + DS_ISSLFMT_COMMON_FOOTER_SIZE)); + + pos = 0; + size = DS_ISSLFMT_STX_SIZE; + memcpy(&(AOBC_tx_frame_[pos]), AOBC_stx_, size); + pos += size; + size = DS_ISSLFMT_LEN_SIZE; + endian_memcpy(&(AOBC_tx_frame_[pos]), &ctcp_len, size); // ここはエンディアンを気にする! + pos += size; + size = (size_t)ctcp_len; + memcpy(&(AOBC_tx_frame_[pos]), packet->packet, size); + pos += size; + + crc = DS_ISSLFMT_calc_crc(AOBC_tx_frame_, pos); + + size = DS_ISSLFMT_CRC_SIZE; + endian_memcpy(&(AOBC_tx_frame_[pos]), &crc, size); // ここはエンディアンを気にする! + pos += size; + size = DS_ISSLFMT_ETX_SIZE; + memcpy(&(AOBC_tx_frame_[pos]), AOBC_etx_, size); + + cmd_code = (AOBC_CMD_CODE)CCP_get_id(packet); + + // [TODO] ここではコマンドが実際に存在するか,ということはフィルタしない!(でいいよね?) + // 必要があれば,AOBC 側で弾くべき. + if (cmd_code == AOBC_Cmd_CODE_GENERATE_TLM) + { + ret = DS_send_req_tlm_cmd(&(aobc_driver->driver.super), AOBC_STREAM_TLM_CMD); + } + else + { + ret = DS_send_general_cmd(&(aobc_driver->driver.super), AOBC_STREAM_TLM_CMD); + } + + if (ret == DS_ERR_CODE_OK) + { + return DS_CMD_OK; + } + else + { + // TODO: エラー処理? + return DS_CMD_DRIVER_SUPER_ERR; + } +} + +#pragma section diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc.h b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc.h new file mode 100644 index 000000000..71a920753 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc.h @@ -0,0 +1,102 @@ +/** +* @file +* @brief AOBC の Driver +*/ +#ifndef AOBC_H +#define AOBC_H + +#include +#include +#include +#include //!< 自動生成コードである aobc_telemetry_buffer で用いる +#include "./aobc_telemetry_data_definitions.h" + +/** + * @enum AOBC_TX_ERR_CODE + * @brief AOBC のコマンド送信エラーコード + * @note uint8_t を想定 + */ +typedef enum +{ + AOBC_TX_ERR_CODE_OK = 0, + AOBC_TX_ERR_CODE_CMD_NOT_FOUND, +} AOBC_TX_ERR_CODE; + +/** + * @enum AOBC_RX_ERR_CODE + * @brief AOBC のテレメ受信エラーコード + * @note uint8_t を想定 + */ +typedef enum +{ + AOBC_RX_ERR_CODE_OK = 0, + AOBC_RX_ERR_CODE_TLM_NOT_FOUND, + AOBC_RX_ERR_CODE_CRC_ERR, +} AOBC_RX_ERR_CODE; + +/** + * @struct AOBC_Info + * @brief + */ +typedef struct +{ +#if 0 + // C2A情報 + struct + { + cycle_t ti; + } c2a; //!< C2A 情報 +#endif + // 通信情報 + struct + { + AOBC_TX_ERR_CODE tx_err_code; + AOBC_RX_ERR_CODE rx_err_code; + } comm; //!< 通信情報 +} AOBC_Info; + +/** + * @struct AOBC_Driver + * @brief + */ +typedef struct +{ + struct + { + DriverSuper super; //!< DriverSuper class + UART_Config uart_config; //!< RS422 class + } driver; + AOBC_Info info; + AOBC_TlmData tlm_data; +} AOBC_Driver; + + +/** + * @brief AOBC 初期化 + * + * AOBC_Driver 構造体のポインタを渡すことでポートを初期化し, AOBC_Driver の各メンバも初期化する + * @param aobc_driver: 初期化する AOBC_Driver 構造体へのポインタ + * @param ch : AOBC が接続されている UART ポート番号 + * @return 0 : 正常終了 + * @return 0 以外: 異常終了 + */ +int AOBC_init(AOBC_Driver* aobc_driver, uint8_t ch); + +/** + * @brief AOBC のデータ(テレメ)受信 + * @param aobc_driver: AOBC_Driver 構造体へのポインタ + * @return 0 : 正常終了 + * @return 0 以外: 異常終了 + */ +int AOBC_rec(AOBC_Driver* aobc_driver); + +/** + * @brief AOB Cへのコマンド送信 + * @param aobc_driver: AOBC_Driver 構造体へのポインタ + * @param packet : 送信する packet + * @return DS_CMD_ERR_CODE + * @note これを受信した AOBC C2A は, packet をそのまま PH_analyze_cmd_packet に流せばよい. + */ +DS_CMD_ERR_CODE AOBC_send_cmd(AOBC_Driver* aobc_driver, const CommonCmdPacket* packet); + +#endif diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_command_definitions.h b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_command_definitions.h new file mode 100644 index 000000000..f11fc92e7 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_command_definitions.h @@ -0,0 +1,42 @@ +/** + * @file + * @brief コマンド定義 + * @note このコードは自動生成されています! + */ +#ifndef AOBC_COMMAND_DEFINITIONS_H_ +#define AOBC_COMMAND_DEFINITIONS_H_ + +typedef enum +{ + AOBC_Cmd_CODE_NOP = 0x0000, + AOBC_Cmd_CODE_TMGR_SET_TIME = 0x0001, + AOBC_Cmd_CODE_TMGR_UPDATE_UNIXTIME = 0x0002, + AOBC_Cmd_CODE_TMGR_SET_UTL_UNIXTIME_EPOCH = 0x0003, + AOBC_Cmd_CODE_TMGR_SET_CYCLE_CORRECTION = 0x0004, + AOBC_Cmd_CODE_TMGR_RESET_CYCLE_CORRECTION = 0x0005, + AOBC_Cmd_CODE_TMGR_CLEAR_UNIXTIME_INFO = 0x0006, + AOBC_Cmd_CODE_AM_REGISTER_APP = 0x0007, + AOBC_Cmd_CODE_AM_INITIALIZE_APP = 0x0008, + AOBC_Cmd_CODE_AM_EXECUTE_APP = 0x0009, + AOBC_Cmd_CODE_AM_SET_PAGE_FOR_TLM = 0x000A, + AOBC_Cmd_CODE_AM_CLEAR_APP_INFO = 0x000B, + AOBC_Cmd_CODE_MM_SET_MODE_LIST = 0x000C, + AOBC_Cmd_CODE_MM_SET_TRANSITION_TABLE = 0x000D, + AOBC_Cmd_CODE_MM_START_TRANSITION = 0x000E, + AOBC_Cmd_CODE_MM_FINISH_TRANSITION = 0x000F, + AOBC_Cmd_CODE_MM_UPDATE_TRANSITION_TABLE_FOR_TLM = 0x0010, + AOBC_Cmd_CODE_TDSP_SET_TASK_LIST = 0x0011, + AOBC_Cmd_CODE_TLCD_CLEAR_ALL_TIMELINE = 0x0012, + AOBC_Cmd_CODE_TLCD_CLEAR_TIMELINE_AT = 0x0013, + AOBC_Cmd_CODE_TLCD_SET_LINE_NO_FOR_TIMELINE_TLM = 0x0014, + AOBC_Cmd_CODE_TLCD_DEPLOY_BLOCK = 0x0015, + AOBC_Cmd_CODE_TLCD_SET_SOE_FLAG = 0x0016, + AOBC_Cmd_CODE_TLCD_SET_LOUT_FLAG = 0x0017, + AOBC_Cmd_CODE_TLCD_SET_PAGE_FOR_TLM = 0x0018, + AOBC_Cmd_CODE_TLCD_CLEAR_ERR_LOG = 0x0019, + AOBC_Cmd_CODE_GENERATE_TLM = 0x001A, + + AOBC_Cmd_CODE_MAX +} AOBC_CMD_CODE; + +#endif diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_buffer.c b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_buffer.c new file mode 100644 index 000000000..0b44f1f73 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_buffer.c @@ -0,0 +1,379 @@ +#pragma section REPRO +/** + * @file + * @brief テレメトリバッファー(テレメ中継) + * @note このコードは自動生成されています! + */ + +#include "./aobc_telemetry_definitions.h" +#include "./aobc_telemetry_buffer.h" +#include // for memcpy + +static AOBC_Buffer aobc_buffer_; +const AOBC_Buffer* const aobc_buffer = &aobc_buffer_; + +static DS_ERR_CODE AOBC_analyze_tlm_aobc_aobc_(DS_StreamConfig* p_stream_config, AOBC_Driver* aobc_driver); +static DS_ERR_CODE AOBC_analyze_tlm_aobc_hk_(DS_StreamConfig* p_stream_config, AOBC_Driver* aobc_driver); + +void AOBC_buffer_init(void) +{ + aobc_buffer_.aobc_aobc.size = 0; + aobc_buffer_.aobc_hk.size = 0; +} + +DS_ERR_CODE AOBC_buffer_tlm_contents(DS_StreamConfig* p_stream_config, AOBC_Driver* aobc_driver) +{ + uint8_t tlm_id = DS_C2AFMT_get_tlm_id(p_stream_config); + + switch (tlm_id) + { + case AOBC_Tlm_CODE_AOBC_AOBC: + return AOBC_analyze_tlm_aobc_aobc_(p_stream_config, aobc_driver); + case AOBC_Tlm_CODE_AOBC_HK: + return AOBC_analyze_tlm_aobc_hk_(p_stream_config, aobc_driver); + default: + aobc_driver->info.comm.rx_err_code = AOBC_RX_ERR_CODE_TLM_NOT_FOUND; + return DS_ERR_CODE_ERR; + } +} + +static DS_ERR_CODE AOBC_analyze_tlm_aobc_aobc_(DS_StreamConfig* p_stream_config, AOBC_Driver* aobc_driver) +{ + uint32_t tlm_len = DS_ISSLFMT_get_tlm_length(p_stream_config); + const uint8_t* f = DSSC_get_rx_frame(p_stream_config) + DS_ISSLFMT_COMMON_HEADER_SIZE; + uint32_t contents_len = tlm_len - DS_C2AFMT_TCP_TLM_SECONDARY_HEADER_SIZE - 1; // FIXME: CCSDSは1起算? + const uint8_t* contents_pos = f + DS_C2AFMT_TCP_TLM_PRIMARY_HEADER_SIZE + DS_C2AFMT_TCP_TLM_SECONDARY_HEADER_SIZE; + int8_t temp_i8 = 0; + int16_t temp_i16 = 0; + int32_t temp_i32 = 0; + uint8_t temp_u8 = 0; + uint16_t temp_u16 = 0; + uint32_t temp_u32 = 0; + float temp_f = 0.0f; + double temp_d = 0.0; + + // GSへのテレメ中継のためのバッファーへのコピー + if (contents_len > AOBC_TELEMETRY_BUFFE_SIZE) return DS_ERR_CODE_ERR; + memcpy(aobc_buffer_.aobc_aobc.buffer, contents_pos, (size_t)contents_len); + aobc_buffer_.aobc_aobc.size = (int)contents_len; + + // MOBC内部でテレメデータへアクセスしやすいようにするための構造体へのパース + endian_memcpy(&temp_u16, &(f[0]), 2); + temp_u16 >>= 7; + temp_u16 &= 0x7; + aobc_driver->tlm_data.aobc_aobc.ph.ver = temp_u16; + endian_memcpy(&temp_u16, &(f[0]), 2); + temp_u16 >>= 4; + temp_u16 &= 0x1; + aobc_driver->tlm_data.aobc_aobc.ph.type = temp_u16; + endian_memcpy(&temp_u16, &(f[0]), 2); + temp_u16 >>= 3; + temp_u16 &= 0x1; + aobc_driver->tlm_data.aobc_aobc.ph.sh_flag = temp_u16; + endian_memcpy(&temp_u16, &(f[0]), 2); + temp_u16 >>= 2; + temp_u16 &= 0x7ff; + aobc_driver->tlm_data.aobc_aobc.ph.apid = temp_u16; + endian_memcpy(&temp_u16, &(f[2]), 2); + temp_u16 >>= 7; + temp_u16 &= 0x3; + aobc_driver->tlm_data.aobc_aobc.ph.seq_flag = temp_u16; + endian_memcpy(&temp_u16, &(f[2]), 2); + temp_u16 >>= 5; + temp_u16 &= 0x3fff; + aobc_driver->tlm_data.aobc_aobc.ph.seq_count = temp_u16; + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.ph.packet_len), &(f[4]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.sh.ver), &(f[6]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.sh.ti), &(f[7]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.sh.tlm_id), &(f[11]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.sh.global_time), &(f[12]), 8); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.sh.on_board_subnet_time), &(f[20]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.sh.dest_flags), &(f[24]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.sh.dr_partition), &(f[25]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tm_mode_time), &(f[26]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tm_utl_unixtime_epoch), &(f[30]), 8); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tm_cycles_per_sec_fix_ratio), &(f[38]), 8); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.mm_sts), &(f[46]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.mm_opsmode), &(f[47]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.mm_opsmode_prev), &(f[48]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tdsp_current_id), &(f[49]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tdsp_cmd_last_err_time_master), &(f[50]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tdsp_cmd_last_err_time_step), &(f[54]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tdsp_cmd_last_err_id), &(f[55]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tdsp_cmd_last_err_sts), &(f[57]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.gs_ret_from_if_rx), &(f[61]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tcf_last_recv_ack), &(f[65]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tcf_validate_status), &(f[66]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tcf_last_recv_time), &(f[67]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tcf_farm_pw), &(f[71]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tcp_last_recv_ack), &(f[72]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tlm_tx_port_type), &(f[73]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.gs_cmd_counter), &(f[74]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.gs_cmd_last_exec_time), &(f[78]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.gs_cmd_last_exec_id), &(f[82]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.gs_cmd_last_exec_sts), &(f[84]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.gs_cmd_last_err_time), &(f[88]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.gs_cmd_last_err_id), &(f[92]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.gs_cmd_last_err_sts), &(f[94]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.gs_cmd_err_counter), &(f[98]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rt_cmd_counter), &(f[102]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rt_cmd_last_exec_time), &(f[106]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rt_cmd_last_exec_id), &(f[110]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rt_cmd_last_exec_sts), &(f[112]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rt_cmd_last_err_time), &(f[116]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rt_cmd_last_err_id), &(f[120]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rt_cmd_last_err_sts), &(f[122]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rt_cmd_err_counter), &(f[126]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_counter), &(f[130]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_queued), &(f[134]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_last_exec_time), &(f[135]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_last_exec_id), &(f[139]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_last_exec_sts), &(f[141]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_last_err_time), &(f[145]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_last_err_id), &(f[149]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_last_err_sts), &(f[151]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_err_counter), &(f[155]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_soe_flag), &(f[159]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_cmd_lockout_flag), &(f[160]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_next_time), &(f[161]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl0_next_id), &(f[165]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_counter), &(f[167]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_queued), &(f[171]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_last_exec_time), &(f[172]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_last_exec_id), &(f[176]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_last_exec_sts), &(f[178]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_last_err_time), &(f[182]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_last_err_id), &(f[186]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_last_err_sts), &(f[188]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_err_counter), &(f[192]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_soe_flag), &(f[196]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_cmd_lockout_flag), &(f[197]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_next_time), &(f[198]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl1_next_id), &(f[202]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_counter), &(f[204]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_queued), &(f[208]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_last_exec_time), &(f[209]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_last_exec_id), &(f[213]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_last_exec_sts), &(f[215]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_last_err_time), &(f[219]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_last_err_id), &(f[223]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_last_err_sts), &(f[225]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_err_counter), &(f[229]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_soe_flag), &(f[233]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_cmd_lockout_flag), &(f[234]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_next_time), &(f[235]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tl2_next_id), &(f[239]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.bct_blk_ptr), &(f[241]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.bct_cmd_ptr), &(f[242]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.bct_regd_time), &(f[243]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.bct_regd_id), &(f[247]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.ms_buffer_available), &(f[249]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.ms_t2m_flush_interval), &(f[250]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rp_t2m_flush_interval), &(f[254]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.ms_tlm_counter), &(f[258]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.ms_tlm_queued), &(f[262]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.st_tlm_counter), &(f[263]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.st_tlm_queued), &(f[267]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rp_tlm_counter), &(f[268]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rp_tlm_queued), &(f[272]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tci_tx_cycle), &(f[273]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tci_tx_bitrate), &(f[277]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tci_vcid), &(f[281]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tci_vcdu_counter), &(f[282]), 4); + // TODO: ビットフィールドをつかっている系は,様々なパターンがあり得るので,今後,バグが出ないか注視する + + // ワーニング回避 + (void)temp_i8; + (void)temp_i16; + (void)temp_i32; + (void)temp_u8; + (void)temp_u16; + (void)temp_u32; + (void)temp_f; + (void)temp_d; + + return DS_ERR_CODE_OK; +} + +static DS_ERR_CODE AOBC_analyze_tlm_aobc_hk_(DS_StreamConfig* p_stream_config, AOBC_Driver* aobc_driver) +{ + uint32_t tlm_len = DS_ISSLFMT_get_tlm_length(p_stream_config); + const uint8_t* f = DSSC_get_rx_frame(p_stream_config) + DS_ISSLFMT_COMMON_HEADER_SIZE; + uint32_t contents_len = tlm_len - DS_C2AFMT_TCP_TLM_SECONDARY_HEADER_SIZE - 1; // FIXME: CCSDSは1起算? + const uint8_t* contents_pos = f + DS_C2AFMT_TCP_TLM_PRIMARY_HEADER_SIZE + DS_C2AFMT_TCP_TLM_SECONDARY_HEADER_SIZE; + int8_t temp_i8 = 0; + int16_t temp_i16 = 0; + int32_t temp_i32 = 0; + uint8_t temp_u8 = 0; + uint16_t temp_u16 = 0; + uint32_t temp_u32 = 0; + float temp_f = 0.0f; + double temp_d = 0.0; + + // GSへのテレメ中継のためのバッファーへのコピー + if (contents_len > AOBC_TELEMETRY_BUFFE_SIZE) return DS_ERR_CODE_ERR; + memcpy(aobc_buffer_.aobc_hk.buffer, contents_pos, (size_t)contents_len); + aobc_buffer_.aobc_hk.size = (int)contents_len; + + // MOBC内部でテレメデータへアクセスしやすいようにするための構造体へのパース + endian_memcpy(&temp_u16, &(f[0]), 2); + temp_u16 >>= 7; + temp_u16 &= 0x7; + aobc_driver->tlm_data.aobc_hk.ph.ver = temp_u16; + endian_memcpy(&temp_u16, &(f[0]), 2); + temp_u16 >>= 4; + temp_u16 &= 0x1; + aobc_driver->tlm_data.aobc_hk.ph.type = temp_u16; + endian_memcpy(&temp_u16, &(f[0]), 2); + temp_u16 >>= 3; + temp_u16 &= 0x1; + aobc_driver->tlm_data.aobc_hk.ph.sh_flag = temp_u16; + endian_memcpy(&temp_u16, &(f[0]), 2); + temp_u16 >>= 2; + temp_u16 &= 0x7ff; + aobc_driver->tlm_data.aobc_hk.ph.apid = temp_u16; + endian_memcpy(&temp_u16, &(f[2]), 2); + temp_u16 >>= 7; + temp_u16 &= 0x3; + aobc_driver->tlm_data.aobc_hk.ph.seq_flag = temp_u16; + endian_memcpy(&temp_u16, &(f[2]), 2); + temp_u16 >>= 5; + temp_u16 &= 0x3fff; + aobc_driver->tlm_data.aobc_hk.ph.seq_count = temp_u16; + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.ph.packet_len), &(f[4]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.sh.ver), &(f[6]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.sh.ti), &(f[7]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.sh.tlm_id), &(f[11]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.sh.global_time), &(f[12]), 8); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.sh.on_board_subnet_time), &(f[20]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.sh.dest_flags), &(f[24]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.sh.dr_partition), &(f[25]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tm_mode_time), &(f[26]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tm_unixtime_at_ti0), &(f[30]), 8); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_mm_opsmode), &(f[38]), 1); + endian_memcpy(&temp_u8, &(f[39]), 1); + temp_u8 >>= 7; + temp_u8 &= 0x1; + aobc_driver->tlm_data.aobc_hk.obc_mm_sts = temp_u8; + endian_memcpy(&temp_u8, &(f[39]), 1); + temp_u8 >>= 6; + temp_u8 &= 0x7f; + aobc_driver->tlm_data.aobc_hk.obc_mm_opsmode_prev = temp_u8; + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tdsp_current_id), &(f[40]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tcf_last_recv_ack), &(f[42]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tcf_last_recv_time), &(f[43]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tcp_last_recv_ack), &(f[47]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_gs_cmd_counter), &(f[48]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_gs_cmd_last_exec_time), &(f[52]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_gs_cmd_last_exec_id), &(f[56]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_gs_cmd_last_exec_sts), &(f[58]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_gs_cmd_last_err_time), &(f[59]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_gs_cmd_last_err_id), &(f[63]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_gs_cmd_last_err_sts), &(f[65]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl0_cmd_counter), &(f[66]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl0_cmd_queued), &(f[70]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl0_cmd_last_exec_time), &(f[71]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl0_cmd_last_exec_id), &(f[75]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl0_cmd_last_exec_sts), &(f[77]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl0_cmd_last_err_time), &(f[78]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl0_cmd_last_err_id), &(f[82]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl0_cmd_last_err_sts), &(f[84]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl0_next_time), &(f[85]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl0_next_id), &(f[89]), 2); + endian_memcpy(&temp_u8, &(f[91]), 1); + temp_u8 >>= 7; + temp_u8 &= 0x1; + aobc_driver->tlm_data.aobc_hk.obc_tl0_cmd_soe_flag = temp_u8; + endian_memcpy(&temp_u8, &(f[91]), 1); + temp_u8 >>= 6; + temp_u8 &= 0x1; + aobc_driver->tlm_data.aobc_hk.obc_tl0_cmd_lockout_flag = temp_u8; + endian_memcpy(&temp_u8, &(f[91]), 1); + temp_u8 >>= 5; + temp_u8 &= 0x1; + aobc_driver->tlm_data.aobc_hk.obc_tl1_cmd_soe_flag = temp_u8; + endian_memcpy(&temp_u8, &(f[91]), 1); + temp_u8 >>= 4; + temp_u8 &= 0x1; + aobc_driver->tlm_data.aobc_hk.obc_tl1_cmd_lockout_flag = temp_u8; + endian_memcpy(&temp_u8, &(f[91]), 1); + temp_u8 >>= 3; + temp_u8 &= 0x1; + aobc_driver->tlm_data.aobc_hk.obc_tl2_cmd_soe_flag = temp_u8; + endian_memcpy(&temp_u8, &(f[91]), 1); + temp_u8 >>= 2; + temp_u8 &= 0x1; + aobc_driver->tlm_data.aobc_hk.obc_tl2_cmd_lockout_flag = temp_u8; + endian_memcpy(&temp_u8, &(f[91]), 1); + temp_u8 >>= 1; + temp_u8 &= 0x1; + aobc_driver->tlm_data.aobc_hk.wdt.is_enable = temp_u8; + endian_memcpy(&temp_u8, &(f[91]), 1); + temp_u8 >>= 0; + temp_u8 &= 0x1; + aobc_driver->tlm_data.aobc_hk.wdt.is_clear_enable = temp_u8; + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_bct_blk_ptr), &(f[92]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_bct_cmd_ptr), &(f[94]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_bct_regd_time), &(f[95]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_bct_regd_id), &(f[99]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.statistics.record_counter_total), &(f[101]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.statistics.record_counters_high), &(f[105]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.statistics.record_counters_middle), &(f[107]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.statistics.record_counters_low), &(f[109]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.statistics.record_counters_el), &(f[111]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.statistics.record_counters_eh), &(f[113]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_event.group), &(f[115]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_event.local), &(f[116]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_event.err_level), &(f[120]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_event.time.total_cycle), &(f[121]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_event.time.step), &(f[125]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_event.note), &(f[126]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_high_event.group), &(f[128]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_high_event.local), &(f[129]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_high_event.time.total_cycle), &(f[133]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_high_event.time.step), &(f[137]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.el.latest_high_event.note), &(f[138]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.eh.log_table.respond_counter), &(f[140]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.anomaly_mobc_al_counter), &(f[144]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.anomaly_mobc_al_latest_time_master), &(f[148]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.anomaly_mobc_al_latest_time_step), &(f[152]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.anomaly_mobc_al_latest_code_group), &(f[153]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.anomaly_mobc_al_latest_code_local), &(f[154]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.anomaly_mobc_al_latest_run_length), &(f[158]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.anomaly_mobc_al_header), &(f[159]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl1_cmd_counter), &(f[160]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl2_cmd_counter), &(f[164]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl1_cmd_queued), &(f[168]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tl2_cmd_queued), &(f[169]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_ah_action_counter), &(f[170]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_ah_latest_id), &(f[171]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_ah_respond_at), &(f[172]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_gs_cmd_err_counter), &(f[176]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.dcu.exec_logs0.cmd_code), &(f[177]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.dcu.exec_logs0.status), &(f[179]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.dcu.exec_logs0.exec_counter), &(f[180]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.dcu.exec_logs0.last_exec_sts), &(f[182]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.dcu.exec_logs0.last_exec_time.total_cycle), &(f[183]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.dcu.exec_logs1.cmd_code), &(f[187]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.dcu.exec_logs1.status), &(f[189]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.dcu.exec_logs1.exec_counter), &(f[190]), 2); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.dcu.exec_logs1.last_exec_sts), &(f[192]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.dcu.exec_logs1.last_exec_time.total_cycle), &(f[193]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.git_rev_core), &(f[197]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.git_rev_user), &(f[201]), 4); + // TODO: ビットフィールドをつかっている系は,様々なパターンがあり得るので,今後,バグが出ないか注視する + + // ワーニング回避 + (void)temp_i8; + (void)temp_i16; + (void)temp_i32; + (void)temp_u8; + (void)temp_u16; + (void)temp_u32; + (void)temp_f; + (void)temp_d; + + return DS_ERR_CODE_OK; +} + +#pragma section diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_buffer.h b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_buffer.h new file mode 100644 index 000000000..e4d009148 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_buffer.h @@ -0,0 +1,33 @@ +/** + * @file + * @brief テレメトリバッファー(テレメ中継) + * @note このコードは自動生成されています! + */ +#ifndef AOBC_TELEMETRY_BUFFER_H_ +#define AOBC_TELEMETRY_BUFFER_H_ + +#include "./aobc.h" + +#define AOBC_TELEMETRY_BUFFE_SIZE (512) + +typedef struct +{ + struct + { + int size; + uint8_t buffer[AOBC_TELEMETRY_BUFFE_SIZE]; + } aobc_aobc; + struct + { + int size; + uint8_t buffer[AOBC_TELEMETRY_BUFFE_SIZE]; + } aobc_hk; +} AOBC_Buffer; + +extern const AOBC_Buffer* const aobc_buffer; + +void AOBC_buffer_init(void); + +DS_ERR_CODE AOBC_buffer_tlm_contents(DS_StreamConfig* p_stream_config, AOBC_Driver* aobc_driver); + +#endif diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_data_definitions.h b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_data_definitions.h new file mode 100644 index 000000000..1196edd7e --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_data_definitions.h @@ -0,0 +1,274 @@ +/** + * @file + * @brief バッファリングされているテレメをパースしてMOBC内でかんたんに利用できるようにするためのテレメデータ構造体定義 + * @note このコードは自動生成されています! + */ +#ifndef AOBC_TELEMETRY_DATA_DEFINITIONS_H_ +#define AOBC_TELEMETRY_DATA_DEFINITIONS_H_ + +typedef struct +{ + struct + { + struct + { + uint16_t ver; + uint16_t type; + uint16_t sh_flag; + uint16_t apid; + uint16_t seq_flag; + uint16_t seq_count; + uint16_t packet_len; + } ph; + struct + { + uint8_t ver; + uint32_t ti; + uint8_t tlm_id; + double global_time; + uint32_t on_board_subnet_time; + uint8_t dest_flags; + uint8_t dr_partition; + } sh; + uint32_t tm_mode_time; + double tm_utl_unixtime_epoch; + double tm_cycles_per_sec_fix_ratio; + uint8_t mm_sts; + uint8_t mm_opsmode; + uint8_t mm_opsmode_prev; + uint8_t tdsp_current_id; + uint32_t tdsp_cmd_last_err_time_master; + uint8_t tdsp_cmd_last_err_time_step; + uint16_t tdsp_cmd_last_err_id; + int32_t tdsp_cmd_last_err_sts; + int32_t gs_ret_from_if_rx; + uint8_t tcf_last_recv_ack; + uint8_t tcf_validate_status; + uint32_t tcf_last_recv_time; + uint8_t tcf_farm_pw; + uint8_t tcp_last_recv_ack; + uint8_t tlm_tx_port_type; + uint32_t gs_cmd_counter; + uint32_t gs_cmd_last_exec_time; + uint16_t gs_cmd_last_exec_id; + int32_t gs_cmd_last_exec_sts; + uint32_t gs_cmd_last_err_time; + uint16_t gs_cmd_last_err_id; + int32_t gs_cmd_last_err_sts; + uint32_t gs_cmd_err_counter; + uint32_t rt_cmd_counter; + uint32_t rt_cmd_last_exec_time; + uint16_t rt_cmd_last_exec_id; + int32_t rt_cmd_last_exec_sts; + uint32_t rt_cmd_last_err_time; + uint16_t rt_cmd_last_err_id; + int32_t rt_cmd_last_err_sts; + uint32_t rt_cmd_err_counter; + uint32_t tl0_cmd_counter; + uint8_t tl0_cmd_queued; + uint32_t tl0_cmd_last_exec_time; + uint16_t tl0_cmd_last_exec_id; + int32_t tl0_cmd_last_exec_sts; + uint32_t tl0_cmd_last_err_time; + uint16_t tl0_cmd_last_err_id; + int32_t tl0_cmd_last_err_sts; + uint32_t tl0_cmd_err_counter; + uint8_t tl0_cmd_soe_flag; + uint8_t tl0_cmd_lockout_flag; + uint32_t tl0_next_time; + uint16_t tl0_next_id; + uint32_t tl1_cmd_counter; + uint8_t tl1_cmd_queued; + uint32_t tl1_cmd_last_exec_time; + uint16_t tl1_cmd_last_exec_id; + int32_t tl1_cmd_last_exec_sts; + uint32_t tl1_cmd_last_err_time; + uint16_t tl1_cmd_last_err_id; + int32_t tl1_cmd_last_err_sts; + uint32_t tl1_cmd_err_counter; + uint8_t tl1_cmd_soe_flag; + uint8_t tl1_cmd_lockout_flag; + uint32_t tl1_next_time; + uint16_t tl1_next_id; + uint32_t tl2_cmd_counter; + uint8_t tl2_cmd_queued; + uint32_t tl2_cmd_last_exec_time; + uint16_t tl2_cmd_last_exec_id; + int32_t tl2_cmd_last_exec_sts; + uint32_t tl2_cmd_last_err_time; + uint16_t tl2_cmd_last_err_id; + int32_t tl2_cmd_last_err_sts; + uint32_t tl2_cmd_err_counter; + uint8_t tl2_cmd_soe_flag; + uint8_t tl2_cmd_lockout_flag; + uint32_t tl2_next_time; + uint16_t tl2_next_id; + uint8_t bct_blk_ptr; + uint8_t bct_cmd_ptr; + uint32_t bct_regd_time; + uint16_t bct_regd_id; + uint8_t ms_buffer_available; + uint32_t ms_t2m_flush_interval; + uint32_t rp_t2m_flush_interval; + uint32_t ms_tlm_counter; + uint8_t ms_tlm_queued; + uint32_t st_tlm_counter; + uint8_t st_tlm_queued; + uint32_t rp_tlm_counter; + uint8_t rp_tlm_queued; + uint32_t tci_tx_cycle; + uint32_t tci_tx_bitrate; + uint8_t tci_vcid; + uint32_t tci_vcdu_counter; + } aobc_aobc; + struct + { + struct + { + uint16_t ver; + uint16_t type; + uint16_t sh_flag; + uint16_t apid; + uint16_t seq_flag; + uint16_t seq_count; + uint16_t packet_len; + } ph; + struct + { + uint8_t ver; + uint32_t ti; + uint8_t tlm_id; + double global_time; + uint32_t on_board_subnet_time; + uint8_t dest_flags; + uint8_t dr_partition; + } sh; + uint32_t obc_tm_mode_time; + double obc_tm_unixtime_at_ti0; + uint8_t obc_mm_opsmode; + uint8_t obc_mm_sts; + uint8_t obc_mm_opsmode_prev; + uint16_t obc_tdsp_current_id; + uint8_t obc_tcf_last_recv_ack; + uint32_t obc_tcf_last_recv_time; + uint8_t obc_tcp_last_recv_ack; + uint32_t obc_gs_cmd_counter; + uint32_t obc_gs_cmd_last_exec_time; + uint16_t obc_gs_cmd_last_exec_id; + int8_t obc_gs_cmd_last_exec_sts; + uint32_t obc_gs_cmd_last_err_time; + uint16_t obc_gs_cmd_last_err_id; + int8_t obc_gs_cmd_last_err_sts; + uint32_t obc_tl0_cmd_counter; + uint8_t obc_tl0_cmd_queued; + uint32_t obc_tl0_cmd_last_exec_time; + uint16_t obc_tl0_cmd_last_exec_id; + int8_t obc_tl0_cmd_last_exec_sts; + uint32_t obc_tl0_cmd_last_err_time; + uint16_t obc_tl0_cmd_last_err_id; + int8_t obc_tl0_cmd_last_err_sts; + uint32_t obc_tl0_next_time; + uint16_t obc_tl0_next_id; + uint8_t obc_tl0_cmd_soe_flag; + uint8_t obc_tl0_cmd_lockout_flag; + uint8_t obc_tl1_cmd_soe_flag; + uint8_t obc_tl1_cmd_lockout_flag; + uint8_t obc_tl2_cmd_soe_flag; + uint8_t obc_tl2_cmd_lockout_flag; + struct + { + uint8_t is_enable; + uint8_t is_clear_enable; + } wdt; + uint16_t obc_bct_blk_ptr; + uint8_t obc_bct_cmd_ptr; + uint32_t obc_bct_regd_time; + uint16_t obc_bct_regd_id; + struct + { + struct + { + uint32_t record_counter_total; + uint16_t record_counters_high; + uint16_t record_counters_middle; + uint16_t record_counters_low; + uint16_t record_counters_el; + uint16_t record_counters_eh; + } statistics; + struct + { + uint8_t group; + uint32_t local; + uint8_t err_level; + struct + { + uint32_t total_cycle; + uint8_t step; + } time; + uint16_t note; + } latest_event; + struct + { + uint8_t group; + uint32_t local; + struct + { + uint32_t total_cycle; + uint8_t step; + } time; + uint16_t note; + } latest_high_event; + } el; + struct + { + struct + { + uint32_t respond_counter; + } log_table; + } eh; + uint32_t anomaly_mobc_al_counter; + uint32_t anomaly_mobc_al_latest_time_master; + uint8_t anomaly_mobc_al_latest_time_step; + uint8_t anomaly_mobc_al_latest_code_group; + uint32_t anomaly_mobc_al_latest_code_local; + uint8_t anomaly_mobc_al_latest_run_length; + uint8_t anomaly_mobc_al_header; + uint32_t obc_tl1_cmd_counter; + uint32_t obc_tl2_cmd_counter; + uint8_t obc_tl1_cmd_queued; + uint8_t obc_tl2_cmd_queued; + uint8_t obc_ah_action_counter; + uint8_t obc_ah_latest_id; + uint32_t obc_ah_respond_at; + uint8_t obc_gs_cmd_err_counter; + struct + { + struct + { + uint16_t cmd_code; + uint8_t status; + uint16_t exec_counter; + int8_t last_exec_sts; + struct + { + uint32_t total_cycle; + } last_exec_time; + } exec_logs0; + struct + { + uint16_t cmd_code; + uint8_t status; + uint16_t exec_counter; + int8_t last_exec_sts; + struct + { + uint32_t total_cycle; + } last_exec_time; + } exec_logs1; + } dcu; + uint32_t git_rev_core; + uint32_t git_rev_user; + } aobc_hk; +} AOBC_TlmData; + +#endif diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_definitions.h b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_definitions.h new file mode 100644 index 000000000..291cd2d7e --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/aobc_telemetry_definitions.h @@ -0,0 +1,17 @@ +/** + * @file + * @brief テレメトリ定義 + * @note このコードは自動生成されています! + */ +#ifndef AOBC_TELEMETRY_DEFINITIONS_H_ +#define AOBC_TELEMETRY_DEFINITIONS_H_ + +typedef enum +{ + AOBC_Tlm_CODE_AOBC_AOBC = 0x90, + AOBC_Tlm_CODE_AOBC_HK = 0x91, + + AOBC_TLM_CODE_MAX +} AOBC_TLM_CODE; + +#endif diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/CMakeLists.txt b/Examples/minimum_user_for_s2e/src/src_user/Drivers/CMakeLists.txt index 4624ced23..71af64468 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Drivers/CMakeLists.txt +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/CMakeLists.txt @@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 3.13) project(C2A_USER_DRIVERS) set(C2A_SRCS + Aocs/aobc_telemetry_buffer.c + Aocs/aobc.c Com/gs.c Com/gs_validate.c Etc/UART_TEST.c diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/.gitkeep b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMDFILE/.gitkeep similarity index 100% rename from Examples/minimum_user_for_s2e/src/src_user/Drivers/Aocs/.gitkeep rename to Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMDFILE/.gitkeep diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB.xlsm b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB.xlsm new file mode 100644 index 000000000..5ec7ad0db Binary files /dev/null and b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB.xlsm differ diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB_BCT.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB_BCT.csv new file mode 100644 index 000000000..8c15a8585 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB_BCT.csv @@ -0,0 +1,300 @@ +Comment,Name,ShortName,BCID,GCAX,,,,,Danger Flag,Description,Note +,,,,Deploy,SetBlockPosition,Clear,Activate,Inactivate,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB_CMD_DB.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB_CMD_DB.csv new file mode 100644 index 000000000..be31ac050 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB_CMD_DB.csv @@ -0,0 +1,1000 @@ +Component,Name,Target,Code,Params,,,,,,,,,,,,,Danger Flag,Is Restricted,Description,Note +AOBC,,,,Num Params,Param1,,Param2,,Param3,,Param4,,Param5,,Param6,,,,, +Comment,,,,,Type,Description,Type,Description,Type,Description,Type,Description,Type,Description,Type,Description,,,, +*,Cmd_EXAMPLE,OBC,,2,uint32_t,address,int32_t,time [ms],,,,,,,,,,,,̐ƒPʂƁIiFtime [ms]j +* C2A_CORE,@\R}h,,,,,,,,,,,,,,,,,,, +,Cmd_NOP,OBC,0x0000,0,,,,,,,,,,,,,,,_~[R}h, +,Cmd_TMGR_SET_TIME,OBC,0x0001,1,uint32_t,TI,,,,,,,,,,,,,MOBCݒR}h, +,Cmd_TMGR_UPDATE_UNIXTIME,OBC,0x0002,3,double,unixtime,uint32_t,total_cycle,uint32_t,step,,,,,,,,,MOBC UNIXTIMECR}h, +,Cmd_TMGR_SET_UTL_UNIXTIME_EPOCH,OBC,0x0003,1,double,ult_unixtime_epoch,,,,,,,,,,,,,UTL_cmdŗpunixtime̋IύX,utl_unixtime_epoch [s] +,Cmd_TMGR_SET_CYCLE_CORRECTION,OBC,0x0004,1,double,cycle_correction,,,,,,,,,,,,,CYCLES_PER_SEC̕␳{ύX@@ l1.0, +,Cmd_TMGR_RESET_CYCLE_CORRECTION,OBC,0x0005,0,,,,,,,,,,,,,,,CYCLES_PER_SEC̕␳{1.0ɏ, +,Cmd_TMGR_CLEAR_UNIXTIME_INFO,OBC,0x0006,0,,,,,,,,,,,,,,,unixtime_info_ , +,Cmd_AM_REGISTER_APP,OBC,0x0007,3,uint32_t,app_id,uint32_t,init_ptr,uint32_t,entry_ptr,,,,,,,,,Avo^R}h, +,Cmd_AM_INITIALIZE_APP,OBC,0x0008,1,uint32_t,app_id,,,,,,,,,,,,,AvR}h, +,Cmd_AM_EXECUTE_APP,OBC,0x0009,1,uint32_t,app_id,,,,,,,,,,,,,AvsR}h, +,Cmd_AM_SET_PAGE_FOR_TLM,OBC,0x000A,1,uint8_t,,,,,,,,,,,,,,egpy[Wԍݒ, +,Cmd_AM_CLEAR_APP_INFO,OBC,0x000B,0,,,,,,,,,,,,,danger,,AvsԌv̏, +,Cmd_MM_SET_MODE_LIST,OBC,0x000C,2,uint8_t,mode,uint16_t,bc_index,,,,,,,,,,,[h`XgݒR}h, +,Cmd_MM_SET_TRANSITION_TABLE,OBC,0x000D,3,uint8_t,from_mode,uint8_t,to_mode,uint16_t,bc_index,,,,,,,,,[hJڒ`e[uR}h, +,Cmd_MM_START_TRANSITION,OBC,0x000E,1,uint8_t,to_mode,,,,,,,,,,,,,[hJڊJnR}h, +,Cmd_MM_FINISH_TRANSITION,OBC,0x000F,0,,,,,,,,,,,,,,,[hJڏIʒmR}h, +,Cmd_MM_UPDATE_TRANSITION_TABLE_FOR_TLM,OBC,0x0010,0,,,,,,,,,,,,,,,[hTLMe[uXV, +,Cmd_TDSP_SET_TASK_LIST,OBC,0x0011,1,uint8_t,bc_index,,,,,,,,,,,,,^XNXgݒR}h, +,Cmd_TLCD_CLEAR_ALL_TIMELINE,OBC,0x0012,1,uint8_t,TL_ID,,,,,,,,,,,danger,,STLCo^, +,Cmd_TLCD_CLEAR_TIMELINE_AT,OBC,0x0013,2,uint8_t,TL_ID,uint32_t,TI,,,,,,,,,,,TIwTLCo^, +,Cmd_TLCD_SET_LINE_NO_FOR_TIMELINE_TLM,OBC,0x0014,1,uint8_t,TL_ID,,,,,,,,,,,,,TLC󋵈ꗗXV, +,Cmd_TLCD_DEPLOY_BLOCK,OBC,0x0015,2,uint8_t,TL_ID,uint16_t,bc_index,,,,,,,,,,,BLCWJ , +,Cmd_TLCD_SET_SOE_FLAG,OBC,0x0016,2,uint8_t,TL_ID,uint8_t,,,,,,,,,,,,ُ펞s~@\ݒ(Cԍ@@ tO), +,Cmd_TLCD_SET_LOUT_FLAG,OBC,0x0017,2,uint8_t,TL_ID,uint8_t,,,,,,,,,,,,s~@\ݒ(Cԍ@@ tO), +,Cmd_TLCD_SET_PAGE_FOR_TLM,OBC,0x0018,1,uint8_t,page_no,,,,,,,,,,,,,egpy[Wԍݒ, +,Cmd_TLCD_CLEAR_ERR_LOG,OBC,0x0019,1,uint8_t,,,,,,,,,,,,,,ŐṼR}hsُL^NA, +,Cmd_GENERATE_TLM,OBC,0x001A,3,uint8_t,category,uint8_t,TLM_ID,uint8_t,o,,,,,,,,,TLMpPbg, +**,,,,,,,,,,,,,,,,,,,, +* CDH,,,,,,,,,,,,,,,,,,,, +**,,,,,,,,,,,,,,,,,,,, +* POWER,,,,,,,,,,,,,,,,,,,, +**,,,,,,,,,,,,,,,,,,,, +* COM,,,,,,,,,,,,,,,,,,,, +**,,,,,,,,,,,,,,,,,,,, +* MISSION,,,,,,,,,,,,,,,,,,,, +**,,,,,,,,,,,,,,,,,,,, +**,,,,,,,,,,,,,,,,,,,, +* PROP,,,,,,,,,,,,,,,,,,,, +**,,,,,,,,,,,,,,,,,,,, +* AOCS,,,,,,,,,,,,,,,,,,,, +**,,,,,,,,,,,,,,,,,,,, +* Thermal,,,,,,,,,,,,,,,,,,,, +**,,,,,,,,,,,,,,,,,,,, +* Trajectory,,,,,,,,,,,,,,,,,,,, +**,,,,,,,,,,,,,,,,,,,, +* HILS,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB_Utility.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB_Utility.csv new file mode 100644 index 000000000..eb0f6d8cf --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/CMD_DB/SAMPLE_AOBC_CMD_DB_Utility.csv @@ -0,0 +1,50 @@ +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,蓖ăe[u,,, +,n,,JnID,IID +,C2A_CORE,=16*16,=DEC2HEX(0@@ 4),=DEC2HEX(HEX2DEC(D9)+C9-1@@ 4) +,CDH,=16*16,=DEC2HEX(HEX2DEC(E9)+1@@ 4),=DEC2HEX(HEX2DEC(D10)+C10-1@@ 4) +,POWER,96,=DEC2HEX(HEX2DEC(E10)+1@@ 4),=DEC2HEX(HEX2DEC(D11)+C11-1@@ 4) +,COM,=4*16,=DEC2HEX(HEX2DEC(E11)+1@@ 4),=DEC2HEX(HEX2DEC(D12)+C12-1@@ 4) +,MISSION,128,=DEC2HEX(HEX2DEC(E12)+1@@ 4),=DEC2HEX(HEX2DEC(D13)+C13-1@@ 4) +,PROP,80,=DEC2HEX(HEX2DEC(E13)+1@@ 4),=DEC2HEX(HEX2DEC(D14)+C14-1@@ 4) +,AOCS,=4*16,=DEC2HEX(HEX2DEC(E14)+1@@ 4),=DEC2HEX(HEX2DEC(D15)+C15-1@@ 4) +,Thermal,=2*16,=DEC2HEX(HEX2DEC(E15)+1@@ 4),=DEC2HEX(HEX2DEC(D16)+C16-1@@ 4) +,Trajectory,=1*16,=DEC2HEX(HEX2DEC(E16)+1@@ 4),=DEC2HEX(HEX2DEC(D17)+C17-1@@ 4) +,HILS,=1*16,=DEC2HEX(HEX2DEC(E17)+1@@ 4),=DEC2HEX(HEX2DEC(D18)+C18-1@@ 4) +,RESERVE2,0,=DEC2HEX(HEX2DEC(E18)+1@@ 4),=DEC2HEX(HEX2DEC(D19)+C19-1@@ 4) +,RESERVE3,0,=DEC2HEX(HEX2DEC(E19)+1@@ 4),=DEC2HEX(HEX2DEC(D20)+C20-1@@ 4) +,RESERVE4,0,=DEC2HEX(HEX2DEC(E20)+1@@ 4),=DEC2HEX(HEX2DEC(D21)+C21-1@@ 4) +,RESERVE5,0,=DEC2HEX(HEX2DEC(E21)+1@@ 4),=DEC2HEX(HEX2DEC(D22)+C22-1@@ 4) +,RESERVE6,0,=DEC2HEX(HEX2DEC(E22)+1@@ 4),=DEC2HEX(HEX2DEC(D23)+C23-1@@ 4) +,RESERVE7,0,=DEC2HEX(HEX2DEC(E23)+1@@ 4),=DEC2HEX(HEX2DEC(D24)+C24-1@@ 4) +,RESERVE8,0,=DEC2HEX(HEX2DEC(E24)+1@@ 4),=DEC2HEX(HEX2DEC(D25)+C25-1@@ 4) +,RESERVE9,0,=DEC2HEX(HEX2DEC(E25)+1@@ 4),=DEC2HEX(HEX2DEC(D26)+C26-1@@ 4) +,Margin,=C28-SUM(C9:C26),=DEC2HEX(HEX2DEC(E26)+1@@ 4),=DEC2HEX(HEX2DEC(D27)+C27-1@@ 4) +,Total,1536,=D9,=DEC2HEX(HEX2DEC(D28)+C28-1@@ 4) +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/README.md b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/README.md new file mode 100644 index 000000000..4b0594451 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/README.md @@ -0,0 +1,4 @@ +# DATABASE for AOBC + +この Tlm Cmd DB は, minimum user sample における C2A 間通信のテストコードのためにここに配置している. +実際,衛星内で MOBC と通信する C2A を搭載したボード(ここでは AOBC とする)の DB は, AOBC のリポジトリ内で保存する. diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/SAMPLE_AOBC_TLM_DB.xlsm b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/SAMPLE_AOBC_TLM_DB.xlsm new file mode 100644 index 000000000..c4677136a Binary files /dev/null and b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/SAMPLE_AOBC_TLM_DB.xlsm differ diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv new file mode 100644 index 000000000..d842ed785 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv @@ -0,0 +1,500 @@ +,Target,OBC,Local Var,,,,,,,,,,,,,, +,PacketID,0x90,,,,,,,,,,,,,,, +,Enable/Disable,ENABLE,,,,,,,,,,,,,,, +,IsRestricted,FALSE,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,,,,,,,,Description,Note +,Name,Var.%%##Type,Variable or Function Name,Ext.%%##Type,Pos. Desiginator,,,Conv.%%##Type,Poly (a_i * x^i),,,,,,Status,, +,,,,,Octet%%##Pos.,bit%%##Pos.,bit%%##Len.,,a0,a1,a2,a3,a4,a5,,, +,PH.VER,uint16_t,,PACKET,0,0,3,NONE,,,,,,,,, +,PH.TYPE,||,,PACKET,=F9+INT((G9+H9)/8),=MOD((G9+H9)@@8),1,NONE,,,,,,,,, +,PH.SH_FLAG,||,,PACKET,=F10+INT((G10+H10)/8),=MOD((G10+H10)@@8),1,NONE,,,,,,,,, +,PH.APID,||,,PACKET,=F11+INT((G11+H11)/8),=MOD((G11+H11)@@8),11,NONE,,,,,,,,, +,PH.SEQ_FLAG,uint16_t,,PACKET,=F12+INT((G12+H12)/8),=MOD((G12+H12)@@8),2,NONE,,,,,,,,, +,PH.SEQ_COUNT,||,,PACKET,=F13+INT((G13+H13)/8),=MOD((G13+H13)@@8),14,NONE,,,,,,,,, +,PH.PACKET_LEN,uint16_t,,PACKET,=F14+INT((G14+H14)/8),=MOD((G14+H14)@@8),=IF(OR(EXACT(C15@@"uint8_t")@@EXACT(C15@@"int8_t"))@@8@@IF(OR(EXACT(C15@@"uint16_t")@@EXACT(C15@@"int16_t"))@@16@@IF(OR(EXACT(C15@@"uint32_t")@@EXACT(C15@@"int32_t")@@EXACT(C15@@"float"))@@32@@IF(EXACT(C15@@"double")@@64)))),NONE,,,,,,,,, +,SH.VER,uint8_t,,PACKET,=F15+INT((G15+H15)/8),=MOD((G15+H15)@@8),=IF(OR(EXACT(C16@@"uint8_t")@@EXACT(C16@@"int8_t"))@@8@@IF(OR(EXACT(C16@@"uint16_t")@@EXACT(C16@@"int16_t"))@@16@@IF(OR(EXACT(C16@@"uint32_t")@@EXACT(C16@@"int32_t")@@EXACT(C16@@"float"))@@32@@IF(EXACT(C16@@"double")@@64)))),NONE,,,,,,,,, +,SH.TI,uint32_t,,PACKET,=F16+INT((G16+H16)/8),=MOD((G16+H16)@@8),=IF(OR(EXACT(C17@@"uint8_t")@@EXACT(C17@@"int8_t"))@@8@@IF(OR(EXACT(C17@@"uint16_t")@@EXACT(C17@@"int16_t"))@@16@@IF(OR(EXACT(C17@@"uint32_t")@@EXACT(C17@@"int32_t")@@EXACT(C17@@"float"))@@32@@IF(EXACT(C17@@"double")@@64)))),NONE,,,,,,,,, +,SH.TLM_ID,uint8_t,,PACKET,=F17+INT((G17+H17)/8),=MOD((G17+H17)@@8),=IF(OR(EXACT(C18@@"uint8_t")@@EXACT(C18@@"int8_t"))@@8@@IF(OR(EXACT(C18@@"uint16_t")@@EXACT(C18@@"int16_t"))@@16@@IF(OR(EXACT(C18@@"uint32_t")@@EXACT(C18@@"int32_t")@@EXACT(C18@@"float"))@@32@@IF(EXACT(C18@@"double")@@64)))),HEX,,,,,,,,, +,SH.GLOBAL_TIME,double,,PACKET,=F18+INT((G18+H18)/8),=MOD((G18+H18)@@8),=IF(OR(EXACT(C19@@"uint8_t")@@EXACT(C19@@"int8_t"))@@8@@IF(OR(EXACT(C19@@"uint16_t")@@EXACT(C19@@"int16_t"))@@16@@IF(OR(EXACT(C19@@"uint32_t")@@EXACT(C19@@"int32_t")@@EXACT(C19@@"float"))@@32@@IF(EXACT(C19@@"double")@@64)))),NONE,,,,,,,,, +,SH.ON_BOARD_SUBNET_TIME,uint32_t,,PACKET,=F19+INT((G19+H19)/8),=MOD((G19+H19)@@8),=IF(OR(EXACT(C20@@"uint8_t")@@EXACT(C20@@"int8_t"))@@8@@IF(OR(EXACT(C20@@"uint16_t")@@EXACT(C20@@"int16_t"))@@16@@IF(OR(EXACT(C20@@"uint32_t")@@EXACT(C20@@"int32_t")@@EXACT(C20@@"float"))@@32@@IF(EXACT(C20@@"double")@@64)))),NONE,,,,,,,,, +,SH.DEST_FLAGS,uint8_t,,PACKET,=F20+INT((G20+H20)/8),=MOD((G20+H20)@@8),=IF(OR(EXACT(C21@@"uint8_t")@@EXACT(C21@@"int8_t"))@@8@@IF(OR(EXACT(C21@@"uint16_t")@@EXACT(C21@@"int16_t"))@@16@@IF(OR(EXACT(C21@@"uint32_t")@@EXACT(C21@@"int32_t")@@EXACT(C21@@"float"))@@32@@IF(EXACT(C21@@"double")@@64)))),HEX,,,,,,,,, +,SH.DR_PARTITION,uint8_t,,PACKET,=F21+INT((G21+H21)/8),=MOD((G21+H21)@@8),=IF(OR(EXACT(C22@@"uint8_t")@@EXACT(C22@@"int8_t"))@@8@@IF(OR(EXACT(C22@@"uint16_t")@@EXACT(C22@@"int16_t"))@@16@@IF(OR(EXACT(C22@@"uint32_t")@@EXACT(C22@@"int32_t")@@EXACT(C22@@"float"))@@32@@IF(EXACT(C22@@"double")@@64)))),NONE,,,,,,,,, +,TM_MODE_TIME,uint32_t,(uint32_t)(TMGR_get_master_clock().mode_cycle),PACKET,=F22+INT((G22+H22)/8),=MOD((G22+H22)@@8),=IF(OR(EXACT(C23@@"uint8_t")@@EXACT(C23@@"int8_t"))@@8@@IF(OR(EXACT(C23@@"uint16_t")@@EXACT(C23@@"int16_t"))@@16@@IF(OR(EXACT(C23@@"uint32_t")@@EXACT(C23@@"int32_t")@@EXACT(C23@@"float"))@@32@@IF(EXACT(C23@@"double")@@64)))),NONE,,,,,,,,[hJڌoߎ, +,TM_UTL_UNIXTIME_EPOCH,double,TMGR_get_utl_unixtime_epoch(),PACKET,=F23+INT((G23+H23)/8),=MOD((G23+H23)@@8),=IF(OR(EXACT(C24@@"uint8_t")@@EXACT(C24@@"int8_t"))@@8@@IF(OR(EXACT(C24@@"uint16_t")@@EXACT(C24@@"int16_t"))@@16@@IF(OR(EXACT(C24@@"uint32_t")@@EXACT(C24@@"int32_t")@@EXACT(C24@@"float"))@@32@@IF(EXACT(C24@@"double")@@64)))),NONE,,,,,,,,UTL_cmdŗpunixtime̋I, +,TM_CYCLES_PER_SEC_FIX_RATIO,double,(double)(time_manager->unixtime_info_.cycle_correction),PACKET,=F24+INT((G24+H24)/8),=MOD((G24+H24)@@8),=IF(OR(EXACT(C25@@"uint8_t")@@EXACT(C25@@"int8_t"))@@8@@IF(OR(EXACT(C25@@"uint16_t")@@EXACT(C25@@"int16_t"))@@16@@IF(OR(EXACT(C25@@"uint32_t")@@EXACT(C25@@"int32_t")@@EXACT(C25@@"float"))@@32@@IF(EXACT(C25@@"double")@@64)))),NONE,,,,,,,,CYCLES_PER_SEC̕␳{. l1.0, +,MM_STS,uint8_t,(uint8_t)(mode_manager->stat),PACKET,=F25+INT((G25+H25)/8),=MOD((G25+H25)@@8),=IF(OR(EXACT(C26@@"uint8_t")@@EXACT(C26@@"int8_t"))@@8@@IF(OR(EXACT(C26@@"uint16_t")@@EXACT(C26@@"int16_t"))@@16@@IF(OR(EXACT(C26@@"uint32_t")@@EXACT(C26@@"int32_t")@@EXACT(C26@@"float"))@@32@@IF(EXACT(C26@@"double")@@64)))),NONE,,,,,,,,[hJڎs, +,MM_OPSMODE,uint8_t,(uint8_t)(mode_manager->current_id),PACKET,=F26+INT((G26+H26)/8),=MOD((G26+H26)@@8),=IF(OR(EXACT(C27@@"uint8_t")@@EXACT(C27@@"int8_t"))@@8@@IF(OR(EXACT(C27@@"uint16_t")@@EXACT(C27@@"int16_t"))@@16@@IF(OR(EXACT(C27@@"uint32_t")@@EXACT(C27@@"int32_t")@@EXACT(C27@@"float"))@@32@@IF(EXACT(C27@@"double")@@64)))),NONE,,,,,,,,󃂁[hԍ, +,MM_OPSMODE_PREV,uint8_t,(uint8_t)(mode_manager->previous_id),PACKET,=F27+INT((G27+H27)/8),=MOD((G27+H27)@@8),=IF(OR(EXACT(C28@@"uint8_t")@@EXACT(C28@@"int8_t"))@@8@@IF(OR(EXACT(C28@@"uint16_t")@@EXACT(C28@@"int16_t"))@@16@@IF(OR(EXACT(C28@@"uint32_t")@@EXACT(C28@@"int32_t")@@EXACT(C28@@"float"))@@32@@IF(EXACT(C28@@"double")@@64)))),NONE,,,,,,,,O[hԍ, +,TDSP_CURRENT_ID,uint8_t,(uint8_t)(TDSP_info->task_list_id),PACKET,=F28+INT((G28+H28)/8),=MOD((G28+H28)@@8),=IF(OR(EXACT(C29@@"uint8_t")@@EXACT(C29@@"int8_t"))@@8@@IF(OR(EXACT(C29@@"uint16_t")@@EXACT(C29@@"int16_t"))@@16@@IF(OR(EXACT(C29@@"uint32_t")@@EXACT(C29@@"int32_t")@@EXACT(C29@@"float"))@@32@@IF(EXACT(C29@@"double")@@64)))),NONE,,,,,,,, TaskList ID, +,TDSP_CMD_LAST_ERR_TIME_MASTER,uint32_t,(uint32_t)(TDSP_info->tskd.prev_err.time.total_cycle),PACKET,=F29+INT((G29+H29)/8),=MOD((G29+H29)@@8),=IF(OR(EXACT(C30@@"uint8_t")@@EXACT(C30@@"int8_t"))@@8@@IF(OR(EXACT(C30@@"uint16_t")@@EXACT(C30@@"int16_t"))@@16@@IF(OR(EXACT(C30@@"uint32_t")@@EXACT(C30@@"int32_t")@@EXACT(C30@@"float"))@@32@@IF(EXACT(C30@@"double")@@64)))),NONE,,,,,,,,ŐVR}hs, +,TDSP_CMD_LAST_ERR_TIME_STEP,uint8_t,(uint8_t)(TDSP_info->tskd.prev_err.time.step),PACKET,=F30+INT((G30+H30)/8),=MOD((G30+H30)@@8),=IF(OR(EXACT(C31@@"uint8_t")@@EXACT(C31@@"int8_t"))@@8@@IF(OR(EXACT(C31@@"uint16_t")@@EXACT(C31@@"int16_t"))@@16@@IF(OR(EXACT(C31@@"uint32_t")@@EXACT(C31@@"int32_t")@@EXACT(C31@@"float"))@@32@@IF(EXACT(C31@@"double")@@64)))),NONE,,,,,,,,, +,TDSP_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(TDSP_info->tskd.prev_err.code),PACKET,=F31+INT((G31+H31)/8),=MOD((G31+H31)@@8),=IF(OR(EXACT(C32@@"uint8_t")@@EXACT(C32@@"int8_t"))@@8@@IF(OR(EXACT(C32@@"uint16_t")@@EXACT(C32@@"int16_t"))@@16@@IF(OR(EXACT(C32@@"uint32_t")@@EXACT(C32@@"int32_t")@@EXACT(C32@@"float"))@@32@@IF(EXACT(C32@@"double")@@64)))),NONE,,,,,,,,ŐVR}hID, +,TDSP_CMD_LAST_ERR_STS,int32_t,(int32_t)(TDSP_info->tskd.prev_err.sts),PACKET,=F32+INT((G32+H32)/8),=MOD((G32+H32)@@8),=IF(OR(EXACT(C33@@"uint8_t")@@EXACT(C33@@"int8_t"))@@8@@IF(OR(EXACT(C33@@"uint16_t")@@EXACT(C33@@"int16_t"))@@16@@IF(OR(EXACT(C33@@"uint32_t")@@EXACT(C33@@"int32_t")@@EXACT(C33@@"float"))@@32@@IF(EXACT(C33@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVR}hs, +,GS_RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->latest_info->ret_from_if_rx,PACKET,=F33+INT((G33+H33)/8),=MOD((G33+H33)@@8),=IF(OR(EXACT(C34@@"uint8_t")@@EXACT(C34@@"int8_t"))@@8@@IF(OR(EXACT(C34@@"uint16_t")@@EXACT(C34@@"int16_t"))@@16@@IF(OR(EXACT(C34@@"uint32_t")@@EXACT(C34@@"int32_t")@@EXACT(C34@@"float"))@@32@@IF(EXACT(C34@@"double")@@64)))),NONE,,,,,,,,, +,TCF_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rec_status,PACKET,=F34+INT((G34+H34)/8),=MOD((G34+H34)@@8),=IF(OR(EXACT(C35@@"uint8_t")@@EXACT(C35@@"int8_t"))@@8@@IF(OR(EXACT(C35@@"uint16_t")@@EXACT(C35@@"int16_t"))@@16@@IF(OR(EXACT(C35@@"uint32_t")@@EXACT(C35@@"int32_t")@@EXACT(C35@@"float"))@@32@@IF(EXACT(C35@@"double")@@64)))),STATUS,,,,,,,0=SUCCESS:G@@ 1=ERROR:R,TCFrame DS, +,TCF_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->tc_frame_validate_status,PACKET,=F35+INT((G35+H35)/8),=MOD((G35+H35)@@8),=IF(OR(EXACT(C36@@"uint8_t")@@EXACT(C36@@"int8_t"))@@8@@IF(OR(EXACT(C36@@"uint16_t")@@EXACT(C36@@"int16_t"))@@16@@IF(OR(EXACT(C36@@"uint32_t")@@EXACT(C36@@"int32_t")@@EXACT(C36@@"float"))@@32@@IF(EXACT(C36@@"double")@@64)))),STATUS,,,,,,,0=SUCCESS:G@@ 1=TCF_VER:R@@ 2=TCF_SCID:R@@ 3=TCF_VCID:R@@ 4=TCF_TYPE:R@@ 5=LOCKOUT:R@@ 6=TCF_SEQ_FLAG:R@@ 7=TCP_VER:R@@ 8=TCP_2ND_HDR_FLAG:R@@ 9=APID:R@@ 10=TCP_TYPE_IS_NOT_CMD:R@@ 11=TCP_SEQ_IS_NOTE_SINGLE:R@@ 12=FECW_MISSMATCH:R@@ 13=FARM1_PWA:R@@ 14=FARM1_NWA:R@@ 15=FARM1_LOCKOUT_AREA:R@@ 16=FARM1_SAME_NUMBER:R@@ 17=INVALID_BC_CMD:R,TCFrame ،, +,TCF_LAST_RECV_TIME,uint32_t,(uint32_t)gs_driver->latest_info->last_rec_time,PACKET,=F36+INT((G36+H36)/8),=MOD((G36+H36)@@8),=IF(OR(EXACT(C37@@"uint8_t")@@EXACT(C37@@"int8_t"))@@8@@IF(OR(EXACT(C37@@"uint16_t")@@EXACT(C37@@"int16_t"))@@16@@IF(OR(EXACT(C37@@"uint32_t")@@EXACT(C37@@"int32_t")@@EXACT(C37@@"float"))@@32@@IF(EXACT(C37@@"double")@@64)))),NONE,,,,,,,,ŐVTCFrameM, +,TCF_FARM_PW,uint8_t,(uint8_t)gs_validate_info->positive_window_width,PACKET,=F37+INT((G37+H37)/8),=MOD((G37+H37)@@8),=IF(OR(EXACT(C38@@"uint8_t")@@EXACT(C38@@"int8_t"))@@8@@IF(OR(EXACT(C38@@"uint16_t")@@EXACT(C38@@"int16_t"))@@16@@IF(OR(EXACT(C38@@"uint32_t")@@EXACT(C38@@"int32_t")@@EXACT(C38@@"float"))@@32@@IF(EXACT(C38@@"double")@@64)))),NONE,,,,,,,,FARM-1 Positive Window Width, +,TCP_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->cmd_ack,PACKET,=F38+INT((G38+H38)/8),=MOD((G38+H38)@@8),=IF(OR(EXACT(C39@@"uint8_t")@@EXACT(C39@@"int8_t"))@@8@@IF(OR(EXACT(C39@@"uint16_t")@@EXACT(C39@@"int16_t"))@@16@@IF(OR(EXACT(C39@@"uint32_t")@@EXACT(C39@@"int32_t")@@EXACT(C39@@"float"))@@32@@IF(EXACT(C39@@"double")@@64)))),STATUS,,,,,,,0=SUCCESS:G@@ 1=RT_ACPT:G@@ 2=RT_FWD:G@@ 3=LENGTH:R@@ 4=CRC:R@@ 5=TO_ID:R@@ 6=TC_DISC:R@@ 7=CM_TYPE:R@@ 8=LST_FUL:R@@ 9=TL_ACPT:G@@ 10=TL_PAST:R@@ 11=TL_EXST:R@@ 12=TL_NEXE:R@@ 13=TL_NFND:R@@ 14=BL_ACPT:G@@ 15=BL_BLK#:R@@ 16=BL_CMD#:R@@ 17=BL_ISOR:R@@ 18=BL_INAC:R@@ 19=BL_COMB:R@@ 20=TLM_DST:R@@ 21=UNKNOWN:R,ŐVTCPacketM, +,TLM_TX_PORT_TYPE,uint8_t,(uint8_t)gs_driver->tlm_tx_port_type,PACKET,=F39+INT((G39+H39)/8),=MOD((G39+H39)@@8),=IF(OR(EXACT(C40@@"uint8_t")@@EXACT(C40@@"int8_t"))@@8@@IF(OR(EXACT(C40@@"uint16_t")@@EXACT(C40@@"int16_t"))@@16@@IF(OR(EXACT(C40@@"uint32_t")@@EXACT(C40@@"int32_t")@@EXACT(C40@@"float"))@@32@@IF(EXACT(C40@@"double")@@64)))),STATUS,,,,,,,0=CCSDS@@ 1=UART,TLM ̑MUART̂̂GŜ̂, +,GS_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_gs_cmd_list),PACKET,=F40+INT((G40+H40)/8),=MOD((G40+H40)@@8),=IF(OR(EXACT(C41@@"uint8_t")@@EXACT(C41@@"int8_t"))@@8@@IF(OR(EXACT(C41@@"uint16_t")@@EXACT(C41@@"int16_t"))@@16@@IF(OR(EXACT(C41@@"uint32_t")@@EXACT(C41@@"int32_t")@@EXACT(C41@@"float"))@@32@@IF(EXACT(C41@@"double")@@64)))),NONE,,,,,,,,nǃR}hJE^, +,GS_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(gs_command_dispatcher->prev.time.total_cycle),PACKET,=F41+INT((G41+H41)/8),=MOD((G41+H41)@@8),=IF(OR(EXACT(C42@@"uint8_t")@@EXACT(C42@@"int8_t"))@@8@@IF(OR(EXACT(C42@@"uint16_t")@@EXACT(C42@@"int16_t"))@@16@@IF(OR(EXACT(C42@@"uint32_t")@@EXACT(C42@@"int32_t")@@EXACT(C42@@"float"))@@32@@IF(EXACT(C42@@"double")@@64)))),NONE,,,,,,,,ŐVnǃR}hs, +,GS_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(gs_command_dispatcher->prev.code),PACKET,=F42+INT((G42+H42)/8),=MOD((G42+H42)@@8),=IF(OR(EXACT(C43@@"uint8_t")@@EXACT(C43@@"int8_t"))@@8@@IF(OR(EXACT(C43@@"uint16_t")@@EXACT(C43@@"int16_t"))@@16@@IF(OR(EXACT(C43@@"uint32_t")@@EXACT(C43@@"int32_t")@@EXACT(C43@@"float"))@@32@@IF(EXACT(C43@@"double")@@64)))),NONE,,,,,,,,ŐVnǃR}hID, +,GS_CMD_LAST_EXEC_STS,int32_t,(int32_t)(gs_command_dispatcher->prev.sts),PACKET,=F43+INT((G43+H43)/8),=MOD((G43+H43)@@8),=IF(OR(EXACT(C44@@"uint8_t")@@EXACT(C44@@"int8_t"))@@8@@IF(OR(EXACT(C44@@"uint16_t")@@EXACT(C44@@"int16_t"))@@16@@IF(OR(EXACT(C44@@"uint32_t")@@EXACT(C44@@"int32_t")@@EXACT(C44@@"float"))@@32@@IF(EXACT(C44@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVnǃR}hs, +,GS_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(gs_command_dispatcher->prev_err.time.total_cycle),PACKET,=F44+INT((G44+H44)/8),=MOD((G44+H44)@@8),=IF(OR(EXACT(C45@@"uint8_t")@@EXACT(C45@@"int8_t"))@@8@@IF(OR(EXACT(C45@@"uint16_t")@@EXACT(C45@@"int16_t"))@@16@@IF(OR(EXACT(C45@@"uint32_t")@@EXACT(C45@@"int32_t")@@EXACT(C45@@"float"))@@32@@IF(EXACT(C45@@"double")@@64)))),NONE,,,,,,,,ŐVnǃR}hs, +,GS_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(gs_command_dispatcher->prev_err.code),PACKET,=F45+INT((G45+H45)/8),=MOD((G45+H45)@@8),=IF(OR(EXACT(C46@@"uint8_t")@@EXACT(C46@@"int8_t"))@@8@@IF(OR(EXACT(C46@@"uint16_t")@@EXACT(C46@@"int16_t"))@@16@@IF(OR(EXACT(C46@@"uint32_t")@@EXACT(C46@@"int32_t")@@EXACT(C46@@"float"))@@32@@IF(EXACT(C46@@"double")@@64)))),NONE,,,,,,,,ŐVnǃR}hID, +,GS_CMD_LAST_ERR_STS,int32_t,(int32_t)(gs_command_dispatcher->prev_err.sts),PACKET,=F46+INT((G46+H46)/8),=MOD((G46+H46)@@8),=IF(OR(EXACT(C47@@"uint8_t")@@EXACT(C47@@"int8_t"))@@8@@IF(OR(EXACT(C47@@"uint16_t")@@EXACT(C47@@"int16_t"))@@16@@IF(OR(EXACT(C47@@"uint32_t")@@EXACT(C47@@"int32_t")@@EXACT(C47@@"float"))@@32@@IF(EXACT(C47@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVnǃR}hs, +,GS_CMD_ERR_COUNTER,uint32_t,(uint32_t)(gs_command_dispatcher->error_counter),PACKET,=F47+INT((G47+H47)/8),=MOD((G47+H47)@@8),=IF(OR(EXACT(C48@@"uint8_t")@@EXACT(C48@@"int8_t"))@@8@@IF(OR(EXACT(C48@@"uint16_t")@@EXACT(C48@@"int16_t"))@@16@@IF(OR(EXACT(C48@@"uint32_t")@@EXACT(C48@@"int32_t")@@EXACT(C48@@"float"))@@32@@IF(EXACT(C48@@"double")@@64)))),NONE,,,,,,,,nǃR}hsُJE^, +,RT_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rt_cmd_list),PACKET,=F48+INT((G48+H48)/8),=MOD((G48+H48)@@8),=IF(OR(EXACT(C49@@"uint8_t")@@EXACT(C49@@"int8_t"))@@8@@IF(OR(EXACT(C49@@"uint16_t")@@EXACT(C49@@"int16_t"))@@16@@IF(OR(EXACT(C49@@"uint32_t")@@EXACT(C49@@"int32_t")@@EXACT(C49@@"float"))@@32@@IF(EXACT(C49@@"double")@@64)))),NONE,,,,,,,,R}hJE^, +,RT_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(realtime_command_dispatcher->prev.time.total_cycle),PACKET,=F49+INT((G49+H49)/8),=MOD((G49+H49)@@8),=IF(OR(EXACT(C50@@"uint8_t")@@EXACT(C50@@"int8_t"))@@8@@IF(OR(EXACT(C50@@"uint16_t")@@EXACT(C50@@"int16_t"))@@16@@IF(OR(EXACT(C50@@"uint32_t")@@EXACT(C50@@"int32_t")@@EXACT(C50@@"float"))@@32@@IF(EXACT(C50@@"double")@@64)))),NONE,,,,,,,,ŐVR}hs, +,RT_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(realtime_command_dispatcher->prev.code),PACKET,=F50+INT((G50+H50)/8),=MOD((G50+H50)@@8),=IF(OR(EXACT(C51@@"uint8_t")@@EXACT(C51@@"int8_t"))@@8@@IF(OR(EXACT(C51@@"uint16_t")@@EXACT(C51@@"int16_t"))@@16@@IF(OR(EXACT(C51@@"uint32_t")@@EXACT(C51@@"int32_t")@@EXACT(C51@@"float"))@@32@@IF(EXACT(C51@@"double")@@64)))),NONE,,,,,,,,ŐVR}hID, +,RT_CMD_LAST_EXEC_STS,int32_t,(int32_t)(realtime_command_dispatcher->prev.sts),PACKET,=F51+INT((G51+H51)/8),=MOD((G51+H51)@@8),=IF(OR(EXACT(C52@@"uint8_t")@@EXACT(C52@@"int8_t"))@@8@@IF(OR(EXACT(C52@@"uint16_t")@@EXACT(C52@@"int16_t"))@@16@@IF(OR(EXACT(C52@@"uint32_t")@@EXACT(C52@@"int32_t")@@EXACT(C52@@"float"))@@32@@IF(EXACT(C52@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVR}hs, +,RT_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(realtime_command_dispatcher->prev_err.time.total_cycle),PACKET,=F52+INT((G52+H52)/8),=MOD((G52+H52)@@8),=IF(OR(EXACT(C53@@"uint8_t")@@EXACT(C53@@"int8_t"))@@8@@IF(OR(EXACT(C53@@"uint16_t")@@EXACT(C53@@"int16_t"))@@16@@IF(OR(EXACT(C53@@"uint32_t")@@EXACT(C53@@"int32_t")@@EXACT(C53@@"float"))@@32@@IF(EXACT(C53@@"double")@@64)))),NONE,,,,,,,,ŐVR}hs, +,RT_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(realtime_command_dispatcher->prev_err.code),PACKET,=F53+INT((G53+H53)/8),=MOD((G53+H53)@@8),=IF(OR(EXACT(C54@@"uint8_t")@@EXACT(C54@@"int8_t"))@@8@@IF(OR(EXACT(C54@@"uint16_t")@@EXACT(C54@@"int16_t"))@@16@@IF(OR(EXACT(C54@@"uint32_t")@@EXACT(C54@@"int32_t")@@EXACT(C54@@"float"))@@32@@IF(EXACT(C54@@"double")@@64)))),NONE,,,,,,,,ŐVR}hID, +,RT_CMD_LAST_ERR_STS,int32_t,(int32_t)(realtime_command_dispatcher->prev_err.sts),PACKET,=F54+INT((G54+H54)/8),=MOD((G54+H54)@@8),=IF(OR(EXACT(C55@@"uint8_t")@@EXACT(C55@@"int8_t"))@@8@@IF(OR(EXACT(C55@@"uint16_t")@@EXACT(C55@@"int16_t"))@@16@@IF(OR(EXACT(C55@@"uint32_t")@@EXACT(C55@@"int32_t")@@EXACT(C55@@"float"))@@32@@IF(EXACT(C55@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVR}hs, +,RT_CMD_ERR_COUNTER,uint32_t,(uint32_t)(realtime_command_dispatcher->error_counter),PACKET,=F55+INT((G55+H55)/8),=MOD((G55+H55)@@8),=IF(OR(EXACT(C56@@"uint8_t")@@EXACT(C56@@"int8_t"))@@8@@IF(OR(EXACT(C56@@"uint16_t")@@EXACT(C56@@"int16_t"))@@16@@IF(OR(EXACT(C56@@"uint32_t")@@EXACT(C56@@"int32_t")@@EXACT(C56@@"float"))@@32@@IF(EXACT(C56@@"double")@@64)))),NONE,,,,,,,,nǃR}hsُJE^, +,TL0_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[0]),PACKET,=F56+INT((G56+H56)/8),=MOD((G56+H56)@@8),=IF(OR(EXACT(C57@@"uint8_t")@@EXACT(C57@@"int8_t"))@@8@@IF(OR(EXACT(C57@@"uint16_t")@@EXACT(C57@@"int16_t"))@@16@@IF(OR(EXACT(C57@@"uint32_t")@@EXACT(C57@@"int32_t")@@EXACT(C57@@"float"))@@32@@IF(EXACT(C57@@"double")@@64)))),NONE,,,,,,,,TL0R}hJE^, +,TL0_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[0])),PACKET,=F57+INT((G57+H57)/8),=MOD((G57+H57)@@8),=IF(OR(EXACT(C58@@"uint8_t")@@EXACT(C58@@"int8_t"))@@8@@IF(OR(EXACT(C58@@"uint16_t")@@EXACT(C58@@"int16_t"))@@16@@IF(OR(EXACT(C58@@"uint32_t")@@EXACT(C58@@"int32_t")@@EXACT(C58@@"float"))@@32@@IF(EXACT(C58@@"double")@@64)))),NONE,,,,,,,,TL0o^R}h, +,TL0_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[0].prev.time.total_cycle),PACKET,=F58+INT((G58+H58)/8),=MOD((G58+H58)@@8),=IF(OR(EXACT(C59@@"uint8_t")@@EXACT(C59@@"int8_t"))@@8@@IF(OR(EXACT(C59@@"uint16_t")@@EXACT(C59@@"int16_t"))@@16@@IF(OR(EXACT(C59@@"uint32_t")@@EXACT(C59@@"int32_t")@@EXACT(C59@@"float"))@@32@@IF(EXACT(C59@@"double")@@64)))),NONE,,,,,,,,ŐVTL0R}hs, +,TL0_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev.code),PACKET,=F59+INT((G59+H59)/8),=MOD((G59+H59)@@8),=IF(OR(EXACT(C60@@"uint8_t")@@EXACT(C60@@"int8_t"))@@8@@IF(OR(EXACT(C60@@"uint16_t")@@EXACT(C60@@"int16_t"))@@16@@IF(OR(EXACT(C60@@"uint32_t")@@EXACT(C60@@"int32_t")@@EXACT(C60@@"float"))@@32@@IF(EXACT(C60@@"double")@@64)))),NONE,,,,,,,,ŐVTL0R}hID, +,TL0_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[0].prev.sts),PACKET,=F60+INT((G60+H60)/8),=MOD((G60+H60)@@8),=IF(OR(EXACT(C61@@"uint8_t")@@EXACT(C61@@"int8_t"))@@8@@IF(OR(EXACT(C61@@"uint16_t")@@EXACT(C61@@"int16_t"))@@16@@IF(OR(EXACT(C61@@"uint32_t")@@EXACT(C61@@"int32_t")@@EXACT(C61@@"float"))@@32@@IF(EXACT(C61@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL0R}hs, +,TL0_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[0].prev_err.time.total_cycle),PACKET,=F61+INT((G61+H61)/8),=MOD((G61+H61)@@8),=IF(OR(EXACT(C62@@"uint8_t")@@EXACT(C62@@"int8_t"))@@8@@IF(OR(EXACT(C62@@"uint16_t")@@EXACT(C62@@"int16_t"))@@16@@IF(OR(EXACT(C62@@"uint32_t")@@EXACT(C62@@"int32_t")@@EXACT(C62@@"float"))@@32@@IF(EXACT(C62@@"double")@@64)))),NONE,,,,,,,,ŐVTL0R}hs, +,TL0_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev_err.code),PACKET,=F62+INT((G62+H62)/8),=MOD((G62+H62)@@8),=IF(OR(EXACT(C63@@"uint8_t")@@EXACT(C63@@"int8_t"))@@8@@IF(OR(EXACT(C63@@"uint16_t")@@EXACT(C63@@"int16_t"))@@16@@IF(OR(EXACT(C63@@"uint32_t")@@EXACT(C63@@"int32_t")@@EXACT(C63@@"float"))@@32@@IF(EXACT(C63@@"double")@@64)))),NONE,,,,,,,,ŐVTL0R}hID, +,TL0_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[0].prev_err.sts),PACKET,=F63+INT((G63+H63)/8),=MOD((G63+H63)@@8),=IF(OR(EXACT(C64@@"uint8_t")@@EXACT(C64@@"int8_t"))@@8@@IF(OR(EXACT(C64@@"uint16_t")@@EXACT(C64@@"int16_t"))@@16@@IF(OR(EXACT(C64@@"uint32_t")@@EXACT(C64@@"int32_t")@@EXACT(C64@@"float"))@@32@@IF(EXACT(C64@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL0R}hs, +,TL0_CMD_ERR_COUNTER,uint32_t,(uint32_t)(timeline_command_dispatcher[0].error_counter),PACKET,=F64+INT((G64+H64)/8),=MOD((G64+H64)@@8),=IF(OR(EXACT(C65@@"uint8_t")@@EXACT(C65@@"int8_t"))@@8@@IF(OR(EXACT(C65@@"uint16_t")@@EXACT(C65@@"int16_t"))@@16@@IF(OR(EXACT(C65@@"uint32_t")@@EXACT(C65@@"int32_t")@@EXACT(C65@@"float"))@@32@@IF(EXACT(C65@@"double")@@64)))),NONE,,,,,,,,nǃR}hsُJE^, +,TL0_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[0].stop_on_error),PACKET,=F65+INT((G65+H65)/8),=MOD((G65+H65)@@8),=IF(OR(EXACT(C66@@"uint8_t")@@EXACT(C66@@"int8_t"))@@8@@IF(OR(EXACT(C66@@"uint16_t")@@EXACT(C66@@"int16_t"))@@16@@IF(OR(EXACT(C66@@"uint32_t")@@EXACT(C66@@"int32_t")@@EXACT(C66@@"float"))@@32@@IF(EXACT(C66@@"double")@@64)))),STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL0_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[0].lockout),PACKET,=F66+INT((G66+H66)/8),=MOD((G66+H66)@@8),=IF(OR(EXACT(C67@@"uint8_t")@@EXACT(C67@@"int8_t"))@@8@@IF(OR(EXACT(C67@@"uint16_t")@@EXACT(C67@@"int16_t"))@@16@@IF(OR(EXACT(C67@@"uint32_t")@@EXACT(C67@@"int32_t")@@EXACT(C67@@"float"))@@32@@IF(EXACT(C67@@"double")@@64)))),STATUS,,,,,,,0=FALSE:G@@ 1=TRUE:R,, +,TL0_NEXT_TIME,uint32_t,(PL_is_empty(&(PH_tl_cmd_list[0])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[0]))->packet))),PACKET,=F67+INT((G67+H67)/8),=MOD((G67+H67)@@8),=IF(OR(EXACT(C68@@"uint8_t")@@EXACT(C68@@"int8_t"))@@8@@IF(OR(EXACT(C68@@"uint16_t")@@EXACT(C68@@"int16_t"))@@16@@IF(OR(EXACT(C68@@"uint32_t")@@EXACT(C68@@"int32_t")@@EXACT(C68@@"float"))@@32@@IF(EXACT(C68@@"double")@@64)))),NONE,,,,,,,,TL0R}hs,ϐw肪ςȂƂɁc +,TL0_NEXT_ID,uint16_t,(uint16_t)(PL_is_empty(&(PH_tl_cmd_list[0])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[0]))->packet))),PACKET,=F68+INT((G68+H68)/8),=MOD((G68+H68)@@8),=IF(OR(EXACT(C69@@"uint8_t")@@EXACT(C69@@"int8_t"))@@8@@IF(OR(EXACT(C69@@"uint16_t")@@EXACT(C69@@"int16_t"))@@16@@IF(OR(EXACT(C69@@"uint32_t")@@EXACT(C69@@"int32_t")@@EXACT(C69@@"float"))@@32@@IF(EXACT(C69@@"double")@@64)))),NONE,,,,,,,,TL0R}hID,ϐw肪ςȂƂɁc +,TL1_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[1]),PACKET,=F69+INT((G69+H69)/8),=MOD((G69+H69)@@8),=IF(OR(EXACT(C70@@"uint8_t")@@EXACT(C70@@"int8_t"))@@8@@IF(OR(EXACT(C70@@"uint16_t")@@EXACT(C70@@"int16_t"))@@16@@IF(OR(EXACT(C70@@"uint32_t")@@EXACT(C70@@"int32_t")@@EXACT(C70@@"float"))@@32@@IF(EXACT(C70@@"double")@@64)))),NONE,,,,,,,,TL1R}hJE^, +,TL1_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[1])),PACKET,=F70+INT((G70+H70)/8),=MOD((G70+H70)@@8),=IF(OR(EXACT(C71@@"uint8_t")@@EXACT(C71@@"int8_t"))@@8@@IF(OR(EXACT(C71@@"uint16_t")@@EXACT(C71@@"int16_t"))@@16@@IF(OR(EXACT(C71@@"uint32_t")@@EXACT(C71@@"int32_t")@@EXACT(C71@@"float"))@@32@@IF(EXACT(C71@@"double")@@64)))),NONE,,,,,,,,TL1o^R}h, +,TL1_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[1].prev.time.total_cycle),PACKET,=F71+INT((G71+H71)/8),=MOD((G71+H71)@@8),=IF(OR(EXACT(C72@@"uint8_t")@@EXACT(C72@@"int8_t"))@@8@@IF(OR(EXACT(C72@@"uint16_t")@@EXACT(C72@@"int16_t"))@@16@@IF(OR(EXACT(C72@@"uint32_t")@@EXACT(C72@@"int32_t")@@EXACT(C72@@"float"))@@32@@IF(EXACT(C72@@"double")@@64)))),NONE,,,,,,,,ŐVTL1R}hs, +,TL1_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[1].prev.code),PACKET,=F72+INT((G72+H72)/8),=MOD((G72+H72)@@8),=IF(OR(EXACT(C73@@"uint8_t")@@EXACT(C73@@"int8_t"))@@8@@IF(OR(EXACT(C73@@"uint16_t")@@EXACT(C73@@"int16_t"))@@16@@IF(OR(EXACT(C73@@"uint32_t")@@EXACT(C73@@"int32_t")@@EXACT(C73@@"float"))@@32@@IF(EXACT(C73@@"double")@@64)))),NONE,,,,,,,,ŐVTL1R}hID, +,TL1_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[1].prev.sts),PACKET,=F73+INT((G73+H73)/8),=MOD((G73+H73)@@8),=IF(OR(EXACT(C74@@"uint8_t")@@EXACT(C74@@"int8_t"))@@8@@IF(OR(EXACT(C74@@"uint16_t")@@EXACT(C74@@"int16_t"))@@16@@IF(OR(EXACT(C74@@"uint32_t")@@EXACT(C74@@"int32_t")@@EXACT(C74@@"float"))@@32@@IF(EXACT(C74@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL1R}hs, +,TL1_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[1].prev_err.time.total_cycle),PACKET,=F74+INT((G74+H74)/8),=MOD((G74+H74)@@8),=IF(OR(EXACT(C75@@"uint8_t")@@EXACT(C75@@"int8_t"))@@8@@IF(OR(EXACT(C75@@"uint16_t")@@EXACT(C75@@"int16_t"))@@16@@IF(OR(EXACT(C75@@"uint32_t")@@EXACT(C75@@"int32_t")@@EXACT(C75@@"float"))@@32@@IF(EXACT(C75@@"double")@@64)))),NONE,,,,,,,,ŐVTL1R}hs, +,TL1_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[1].prev_err.code),PACKET,=F75+INT((G75+H75)/8),=MOD((G75+H75)@@8),=IF(OR(EXACT(C76@@"uint8_t")@@EXACT(C76@@"int8_t"))@@8@@IF(OR(EXACT(C76@@"uint16_t")@@EXACT(C76@@"int16_t"))@@16@@IF(OR(EXACT(C76@@"uint32_t")@@EXACT(C76@@"int32_t")@@EXACT(C76@@"float"))@@32@@IF(EXACT(C76@@"double")@@64)))),NONE,,,,,,,,ŐVTL1R}hID, +,TL1_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[1].prev_err.sts),PACKET,=F76+INT((G76+H76)/8),=MOD((G76+H76)@@8),=IF(OR(EXACT(C77@@"uint8_t")@@EXACT(C77@@"int8_t"))@@8@@IF(OR(EXACT(C77@@"uint16_t")@@EXACT(C77@@"int16_t"))@@16@@IF(OR(EXACT(C77@@"uint32_t")@@EXACT(C77@@"int32_t")@@EXACT(C77@@"float"))@@32@@IF(EXACT(C77@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL1R}hs, +,TL1_CMD_ERR_COUNTER,uint32_t,(uint32_t)(timeline_command_dispatcher[1].error_counter),PACKET,=F77+INT((G77+H77)/8),=MOD((G77+H77)@@8),=IF(OR(EXACT(C78@@"uint8_t")@@EXACT(C78@@"int8_t"))@@8@@IF(OR(EXACT(C78@@"uint16_t")@@EXACT(C78@@"int16_t"))@@16@@IF(OR(EXACT(C78@@"uint32_t")@@EXACT(C78@@"int32_t")@@EXACT(C78@@"float"))@@32@@IF(EXACT(C78@@"double")@@64)))),NONE,,,,,,,,nǃR}hsُJE^, +,TL1_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[1].stop_on_error),PACKET,=F78+INT((G78+H78)/8),=MOD((G78+H78)@@8),=IF(OR(EXACT(C79@@"uint8_t")@@EXACT(C79@@"int8_t"))@@8@@IF(OR(EXACT(C79@@"uint16_t")@@EXACT(C79@@"int16_t"))@@16@@IF(OR(EXACT(C79@@"uint32_t")@@EXACT(C79@@"int32_t")@@EXACT(C79@@"float"))@@32@@IF(EXACT(C79@@"double")@@64)))),STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL1_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[1].lockout),PACKET,=F79+INT((G79+H79)/8),=MOD((G79+H79)@@8),=IF(OR(EXACT(C80@@"uint8_t")@@EXACT(C80@@"int8_t"))@@8@@IF(OR(EXACT(C80@@"uint16_t")@@EXACT(C80@@"int16_t"))@@16@@IF(OR(EXACT(C80@@"uint32_t")@@EXACT(C80@@"int32_t")@@EXACT(C80@@"float"))@@32@@IF(EXACT(C80@@"double")@@64)))),STATUS,,,,,,,0=FALSE:G@@ 1=TRUE:R,, +,TL1_NEXT_TIME,uint32_t,(PL_is_empty(&(PH_tl_cmd_list[1])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[1]))->packet))),PACKET,=F80+INT((G80+H80)/8),=MOD((G80+H80)@@8),=IF(OR(EXACT(C81@@"uint8_t")@@EXACT(C81@@"int8_t"))@@8@@IF(OR(EXACT(C81@@"uint16_t")@@EXACT(C81@@"int16_t"))@@16@@IF(OR(EXACT(C81@@"uint32_t")@@EXACT(C81@@"int32_t")@@EXACT(C81@@"float"))@@32@@IF(EXACT(C81@@"double")@@64)))),NONE,,,,,,,,TL1R}hs,ϐw肪ςȂƂɁc +,TL1_NEXT_ID,uint16_t,(uint16_t)(PL_is_empty(&(PH_tl_cmd_list[1])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[1]))->packet))),PACKET,=F81+INT((G81+H81)/8),=MOD((G81+H81)@@8),=IF(OR(EXACT(C82@@"uint8_t")@@EXACT(C82@@"int8_t"))@@8@@IF(OR(EXACT(C82@@"uint16_t")@@EXACT(C82@@"int16_t"))@@16@@IF(OR(EXACT(C82@@"uint32_t")@@EXACT(C82@@"int32_t")@@EXACT(C82@@"float"))@@32@@IF(EXACT(C82@@"double")@@64)))),NONE,,,,,,,,TL1R}hID,ϐw肪ςȂƂɁc +,TL2_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[2]),PACKET,=F82+INT((G82+H82)/8),=MOD((G82+H82)@@8),=IF(OR(EXACT(C83@@"uint8_t")@@EXACT(C83@@"int8_t"))@@8@@IF(OR(EXACT(C83@@"uint16_t")@@EXACT(C83@@"int16_t"))@@16@@IF(OR(EXACT(C83@@"uint32_t")@@EXACT(C83@@"int32_t")@@EXACT(C83@@"float"))@@32@@IF(EXACT(C83@@"double")@@64)))),NONE,,,,,,,,TL1R}hJE^, +,TL2_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[2])),PACKET,=F83+INT((G83+H83)/8),=MOD((G83+H83)@@8),=IF(OR(EXACT(C84@@"uint8_t")@@EXACT(C84@@"int8_t"))@@8@@IF(OR(EXACT(C84@@"uint16_t")@@EXACT(C84@@"int16_t"))@@16@@IF(OR(EXACT(C84@@"uint32_t")@@EXACT(C84@@"int32_t")@@EXACT(C84@@"float"))@@32@@IF(EXACT(C84@@"double")@@64)))),NONE,,,,,,,,TL1o^R}h, +,TL2_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[2].prev.time.total_cycle),PACKET,=F84+INT((G84+H84)/8),=MOD((G84+H84)@@8),=IF(OR(EXACT(C85@@"uint8_t")@@EXACT(C85@@"int8_t"))@@8@@IF(OR(EXACT(C85@@"uint16_t")@@EXACT(C85@@"int16_t"))@@16@@IF(OR(EXACT(C85@@"uint32_t")@@EXACT(C85@@"int32_t")@@EXACT(C85@@"float"))@@32@@IF(EXACT(C85@@"double")@@64)))),NONE,,,,,,,,ŐVTL1R}hs, +,TL2_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[2].prev.code),PACKET,=F85+INT((G85+H85)/8),=MOD((G85+H85)@@8),=IF(OR(EXACT(C86@@"uint8_t")@@EXACT(C86@@"int8_t"))@@8@@IF(OR(EXACT(C86@@"uint16_t")@@EXACT(C86@@"int16_t"))@@16@@IF(OR(EXACT(C86@@"uint32_t")@@EXACT(C86@@"int32_t")@@EXACT(C86@@"float"))@@32@@IF(EXACT(C86@@"double")@@64)))),NONE,,,,,,,,ŐVTL1R}hID, +,TL2_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[2].prev.sts),PACKET,=F86+INT((G86+H86)/8),=MOD((G86+H86)@@8),=IF(OR(EXACT(C87@@"uint8_t")@@EXACT(C87@@"int8_t"))@@8@@IF(OR(EXACT(C87@@"uint16_t")@@EXACT(C87@@"int16_t"))@@16@@IF(OR(EXACT(C87@@"uint32_t")@@EXACT(C87@@"int32_t")@@EXACT(C87@@"float"))@@32@@IF(EXACT(C87@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL1R}hs, +,TL2_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[2].prev_err.time.total_cycle),PACKET,=F87+INT((G87+H87)/8),=MOD((G87+H87)@@8),=IF(OR(EXACT(C88@@"uint8_t")@@EXACT(C88@@"int8_t"))@@8@@IF(OR(EXACT(C88@@"uint16_t")@@EXACT(C88@@"int16_t"))@@16@@IF(OR(EXACT(C88@@"uint32_t")@@EXACT(C88@@"int32_t")@@EXACT(C88@@"float"))@@32@@IF(EXACT(C88@@"double")@@64)))),NONE,,,,,,,,ŐVTL1R}hs, +,TL2_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[2].prev_err.code),PACKET,=F88+INT((G88+H88)/8),=MOD((G88+H88)@@8),=IF(OR(EXACT(C89@@"uint8_t")@@EXACT(C89@@"int8_t"))@@8@@IF(OR(EXACT(C89@@"uint16_t")@@EXACT(C89@@"int16_t"))@@16@@IF(OR(EXACT(C89@@"uint32_t")@@EXACT(C89@@"int32_t")@@EXACT(C89@@"float"))@@32@@IF(EXACT(C89@@"double")@@64)))),NONE,,,,,,,,ŐVTL1R}hID, +,TL2_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[2].prev_err.sts),PACKET,=F89+INT((G89+H89)/8),=MOD((G89+H89)@@8),=IF(OR(EXACT(C90@@"uint8_t")@@EXACT(C90@@"int8_t"))@@8@@IF(OR(EXACT(C90@@"uint16_t")@@EXACT(C90@@"int16_t"))@@16@@IF(OR(EXACT(C90@@"uint32_t")@@EXACT(C90@@"int32_t")@@EXACT(C90@@"float"))@@32@@IF(EXACT(C90@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL1R}hs, +,TL2_CMD_ERR_COUNTER,uint32_t,(uint32_t)(timeline_command_dispatcher[2].error_counter),PACKET,=F90+INT((G90+H90)/8),=MOD((G90+H90)@@8),=IF(OR(EXACT(C91@@"uint8_t")@@EXACT(C91@@"int8_t"))@@8@@IF(OR(EXACT(C91@@"uint16_t")@@EXACT(C91@@"int16_t"))@@16@@IF(OR(EXACT(C91@@"uint32_t")@@EXACT(C91@@"int32_t")@@EXACT(C91@@"float"))@@32@@IF(EXACT(C91@@"double")@@64)))),NONE,,,,,,,,nǃR}hsُJE^, +,TL2_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[2].stop_on_error),PACKET,=F91+INT((G91+H91)/8),=MOD((G91+H91)@@8),=IF(OR(EXACT(C92@@"uint8_t")@@EXACT(C92@@"int8_t"))@@8@@IF(OR(EXACT(C92@@"uint16_t")@@EXACT(C92@@"int16_t"))@@16@@IF(OR(EXACT(C92@@"uint32_t")@@EXACT(C92@@"int32_t")@@EXACT(C92@@"float"))@@32@@IF(EXACT(C92@@"double")@@64)))),STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL2_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[2].lockout),PACKET,=F92+INT((G92+H92)/8),=MOD((G92+H92)@@8),=IF(OR(EXACT(C93@@"uint8_t")@@EXACT(C93@@"int8_t"))@@8@@IF(OR(EXACT(C93@@"uint16_t")@@EXACT(C93@@"int16_t"))@@16@@IF(OR(EXACT(C93@@"uint32_t")@@EXACT(C93@@"int32_t")@@EXACT(C93@@"float"))@@32@@IF(EXACT(C93@@"double")@@64)))),STATUS,,,,,,,0=FALSE:G@@ 1=TRUE:R,, +,TL2_NEXT_TIME,uint32_t,(PL_is_empty(&(PH_tl_cmd_list[2])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[2]))->packet))),PACKET,=F93+INT((G93+H93)/8),=MOD((G93+H93)@@8),=IF(OR(EXACT(C94@@"uint8_t")@@EXACT(C94@@"int8_t"))@@8@@IF(OR(EXACT(C94@@"uint16_t")@@EXACT(C94@@"int16_t"))@@16@@IF(OR(EXACT(C94@@"uint32_t")@@EXACT(C94@@"int32_t")@@EXACT(C94@@"float"))@@32@@IF(EXACT(C94@@"double")@@64)))),NONE,,,,,,,,TL1R}hs,ϐw肪ςȂƂɁc +,TL2_NEXT_ID,uint16_t,(uint16_t)(PL_is_empty(&(PH_tl_cmd_list[2])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[2]))->packet))),PACKET,=F94+INT((G94+H94)/8),=MOD((G94+H94)@@8),=IF(OR(EXACT(C95@@"uint8_t")@@EXACT(C95@@"int8_t"))@@8@@IF(OR(EXACT(C95@@"uint16_t")@@EXACT(C95@@"int16_t"))@@16@@IF(OR(EXACT(C95@@"uint32_t")@@EXACT(C95@@"int32_t")@@EXACT(C95@@"float"))@@32@@IF(EXACT(C95@@"double")@@64)))),NONE,,,,,,,,TL1R}hID,ϐw肪ςȂƂɁc +,BCT_BLK_PTR,uint8_t,(uint8_t)(block_command_table->pos.block),PACKET,=F95+INT((G95+H95)/8),=MOD((G95+H95)@@8),=IF(OR(EXACT(C96@@"uint8_t")@@EXACT(C96@@"int8_t"))@@8@@IF(OR(EXACT(C96@@"uint16_t")@@EXACT(C96@@"int16_t"))@@16@@IF(OR(EXACT(C96@@"uint32_t")@@EXACT(C96@@"int32_t")@@EXACT(C96@@"float"))@@32@@IF(EXACT(C96@@"double")@@64)))),NONE,,,,,,,,BCT ubN|C^, +,BCT_CMD_PTR,uint8_t,(uint8_t)(block_command_table->pos.cmd),PACKET,=F96+INT((G96+H96)/8),=MOD((G96+H96)@@8),=IF(OR(EXACT(C97@@"uint8_t")@@EXACT(C97@@"int8_t"))@@8@@IF(OR(EXACT(C97@@"uint16_t")@@EXACT(C97@@"int16_t"))@@16@@IF(OR(EXACT(C97@@"uint32_t")@@EXACT(C97@@"int32_t")@@EXACT(C97@@"float"))@@32@@IF(EXACT(C97@@"double")@@64)))),NONE,,,,,,,,BCT R}h|C^, +,BCT_REGD_TIME,uint32_t,((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,=F97+INT((G97+H97)/8),=MOD((G97+H97)@@8),=IF(OR(EXACT(C98@@"uint8_t")@@EXACT(C98@@"int8_t"))@@8@@IF(OR(EXACT(C98@@"uint16_t")@@EXACT(C98@@"int16_t"))@@16@@IF(OR(EXACT(C98@@"uint32_t")@@EXACT(C98@@"int32_t")@@EXACT(C98@@"float"))@@32@@IF(EXACT(C98@@"double")@@64)))),NONE,,,,,,,,BCT o^R}h,ϐw肪ςȂƂɁc +,BCT_REGD_ID,uint16_t,(uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,=F98+INT((G98+H98)/8),=MOD((G98+H98)@@8),=IF(OR(EXACT(C99@@"uint8_t")@@EXACT(C99@@"int8_t"))@@8@@IF(OR(EXACT(C99@@"uint16_t")@@EXACT(C99@@"int16_t"))@@16@@IF(OR(EXACT(C99@@"uint32_t")@@EXACT(C99@@"int32_t")@@EXACT(C99@@"float"))@@32@@IF(EXACT(C99@@"double")@@64)))),NONE,,,,,,,,BCT o^R}hID,ϐw肪ςȂƂɁc +,MS_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,=F99+INT((G99+H99)/8),=MOD((G99+H99)@@8),=IF(OR(EXACT(C100@@"uint8_t")@@EXACT(C100@@"int8_t"))@@8@@IF(OR(EXACT(C100@@"uint16_t")@@EXACT(C100@@"int16_t"))@@16@@IF(OR(EXACT(C100@@"uint32_t")@@EXACT(C100@@"int32_t")@@EXACT(C100@@"float"))@@32@@IF(EXACT(C100@@"double")@@64)))),NONE,,,,,,,,CCSDS MS VCDU gp, +,MS_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval),PACKET,=F100+INT((G100+H100)/8),=MOD((G100+H100)@@8),=IF(OR(EXACT(C101@@"uint8_t")@@EXACT(C101@@"int8_t"))@@8@@IF(OR(EXACT(C101@@"uint16_t")@@EXACT(C101@@"int16_t"))@@16@@IF(OR(EXACT(C101@@"uint32_t")@@EXACT(C101@@"int32_t")@@EXACT(C101@@"float"))@@32@@IF(EXACT(C101@@"double")@@64)))),NONE,,,,,,,,TL0R}hJE^, +,RP_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval),PACKET,=F101+INT((G101+H101)/8),=MOD((G101+H101)@@8),=IF(OR(EXACT(C102@@"uint8_t")@@EXACT(C102@@"int8_t"))@@8@@IF(OR(EXACT(C102@@"uint16_t")@@EXACT(C102@@"int16_t"))@@16@@IF(OR(EXACT(C102@@"uint32_t")@@EXACT(C102@@"int32_t")@@EXACT(C102@@"float"))@@32@@IF(EXACT(C102@@"double")@@64)))),NONE,,,,,,,,TL0R}hJE^, +,MS_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_ms_tlm_list),PACKET,=F102+INT((G102+H102)/8),=MOD((G102+H102)@@8),=IF(OR(EXACT(C103@@"uint8_t")@@EXACT(C103@@"int8_t"))@@8@@IF(OR(EXACT(C103@@"uint16_t")@@EXACT(C103@@"int16_t"))@@16@@IF(OR(EXACT(C103@@"uint32_t")@@EXACT(C103@@"int32_t")@@EXACT(C103@@"float"))@@32@@IF(EXACT(C103@@"double")@@64)))),NONE,,,,,,,,TL0R}hJE^, +,MS_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list)),PACKET,=F103+INT((G103+H103)/8),=MOD((G103+H103)@@8),=IF(OR(EXACT(C104@@"uint8_t")@@EXACT(C104@@"int8_t"))@@8@@IF(OR(EXACT(C104@@"uint16_t")@@EXACT(C104@@"int16_t"))@@16@@IF(OR(EXACT(C104@@"uint32_t")@@EXACT(C104@@"int32_t")@@EXACT(C104@@"float"))@@32@@IF(EXACT(C104@@"double")@@64)))),NONE,,,,,,,,TL0o^R}h, +,ST_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_st_tlm_list),PACKET,=F104+INT((G104+H104)/8),=MOD((G104+H104)@@8),=IF(OR(EXACT(C105@@"uint8_t")@@EXACT(C105@@"int8_t"))@@8@@IF(OR(EXACT(C105@@"uint16_t")@@EXACT(C105@@"int16_t"))@@16@@IF(OR(EXACT(C105@@"uint32_t")@@EXACT(C105@@"int32_t")@@EXACT(C105@@"float"))@@32@@IF(EXACT(C105@@"double")@@64)))),NONE,,,,,,,,TL0R}hJE^, +,ST_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_st_tlm_list)),PACKET,=F105+INT((G105+H105)/8),=MOD((G105+H105)@@8),=IF(OR(EXACT(C106@@"uint8_t")@@EXACT(C106@@"int8_t"))@@8@@IF(OR(EXACT(C106@@"uint16_t")@@EXACT(C106@@"int16_t"))@@16@@IF(OR(EXACT(C106@@"uint32_t")@@EXACT(C106@@"int32_t")@@EXACT(C106@@"float"))@@32@@IF(EXACT(C106@@"double")@@64)))),NONE,,,,,,,,TL0o^R}h, +,RP_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rp_tlm_list),PACKET,=F106+INT((G106+H106)/8),=MOD((G106+H106)@@8),=IF(OR(EXACT(C107@@"uint8_t")@@EXACT(C107@@"int8_t"))@@8@@IF(OR(EXACT(C107@@"uint16_t")@@EXACT(C107@@"int16_t"))@@16@@IF(OR(EXACT(C107@@"uint32_t")@@EXACT(C107@@"int32_t")@@EXACT(C107@@"float"))@@32@@IF(EXACT(C107@@"double")@@64)))),NONE,,,,,,,,TL0R}hJE^, +,RP_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_rp_tlm_list)),PACKET,=F107+INT((G107+H107)/8),=MOD((G107+H107)@@8),=IF(OR(EXACT(C108@@"uint8_t")@@EXACT(C108@@"int8_t"))@@8@@IF(OR(EXACT(C108@@"uint16_t")@@EXACT(C108@@"int16_t"))@@16@@IF(OR(EXACT(C108@@"uint32_t")@@EXACT(C108@@"int32_t")@@EXACT(C108@@"float"))@@32@@IF(EXACT(C108@@"double")@@64)))),NONE,,,,,,,,TL0o^R}h, +,TCI_TX_CYCLE,uint32_t,(uint32_t)gs_driver->latest_info->send_cycle,PACKET,=F108+INT((G108+H108)/8),=MOD((G108+H108)@@8),=IF(OR(EXACT(C109@@"uint8_t")@@EXACT(C109@@"int8_t"))@@8@@IF(OR(EXACT(C109@@"uint16_t")@@EXACT(C109@@"int16_t"))@@16@@IF(OR(EXACT(C109@@"uint32_t")@@EXACT(C109@@"int32_t")@@EXACT(C109@@"float"))@@32@@IF(EXACT(C109@@"double")@@64)))),NONE,,,,,,,,Z::oTCN, +,TCI_TX_BITRATE,uint32_t,gs_driver->driver_ccsds.ccsds_config.bitrate,PACKET,=F109+INT((G109+H109)/8),=MOD((G109+H109)@@8),=IF(OR(EXACT(C110@@"uint8_t")@@EXACT(C110@@"int8_t"))@@8@@IF(OR(EXACT(C110@@"uint16_t")@@EXACT(C110@@"int16_t"))@@16@@IF(OR(EXACT(C110@@"uint32_t")@@EXACT(C110@@"int32_t")@@EXACT(C110@@"float"))@@32@@IF(EXACT(C110@@"double")@@64)))),NONE,,,,,,,,Z::orbg[g, +,TCI_VCID,uint8_t,(uint8_t)(gs_driver->info[2].vcid),PACKET,=F110+INT((G110+H110)/8),=MOD((G110+H110)@@8),=IF(OR(EXACT(C111@@"uint8_t")@@EXACT(C111@@"int8_t"))@@8@@IF(OR(EXACT(C111@@"uint16_t")@@EXACT(C111@@"int16_t"))@@16@@IF(OR(EXACT(C111@@"uint32_t")@@EXACT(C111@@"int32_t")@@EXACT(C111@@"float"))@@32@@IF(EXACT(C111@@"double")@@64)))),NONE,,,,,,,,\::oVCID, +,TCI_VCDU_COUNTER,uint32_t,gs_driver->latest_info->vcdu_counter,PACKET,=F111+INT((G111+H111)/8),=MOD((G111+H111)@@8),=IF(OR(EXACT(C112@@"uint8_t")@@EXACT(C112@@"int8_t"))@@8@@IF(OR(EXACT(C112@@"uint16_t")@@EXACT(C112@@"int16_t"))@@16@@IF(OR(EXACT(C112@@"uint32_t")@@EXACT(C112@@"int32_t")@@EXACT(C112@@"float"))@@32@@IF(EXACT(C112@@"double")@@64)))),NONE,,,,,,,,Z::oVCDUJE^, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_HK.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_HK.csv new file mode 100644 index 000000000..f9cda8e82 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_HK.csv @@ -0,0 +1,500 @@ +,Target,OBC,Local Var,,,,,,,,,,,,,, +,PacketID,0x91,,,,,,,,,,,,,,, +,Enable/Disable,ENABLE,,,,,,,,,,,,,,, +,IsRestricted,FALSE,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,,,,,,,,Description,Note +,Name,Var.%%##Type,Variable or Function Name,Ext.%%##Type,Pos. Desiginator,,,Conv.%%##Type,Poly (a_i * x^i),,,,,,Status,, +,,,,,Octet%%##Pos.,bit%%##Pos.,bit%%##Len.,,a0,a1,a2,a3,a4,a5,,, +,PH.VER,uint16_t,,PACKET,0,0,3,NONE,,,,,,,,, +,PH.TYPE,||,,PACKET,=F9+INT((G9+H9)/8),=MOD((G9+H9)@@8),1,NONE,,,,,,,,, +,PH.SH_FLAG,||,,PACKET,=F10+INT((G10+H10)/8),=MOD((G10+H10)@@8),1,NONE,,,,,,,,, +,PH.APID,||,,PACKET,=F11+INT((G11+H11)/8),=MOD((G11+H11)@@8),11,NONE,,,,,,,,, +,PH.SEQ_FLAG,uint16_t,,PACKET,=F12+INT((G12+H12)/8),=MOD((G12+H12)@@8),2,NONE,,,,,,,,, +,PH.SEQ_COUNT,||,,PACKET,=F13+INT((G13+H13)/8),=MOD((G13+H13)@@8),14,NONE,,,,,,,,, +,PH.PACKET_LEN,uint16_t,,PACKET,=F14+INT((G14+H14)/8),=MOD((G14+H14)@@8),=IF(OR(EXACT(C15@@"uint8_t")@@EXACT(C15@@"int8_t"))@@8@@IF(OR(EXACT(C15@@"uint16_t")@@EXACT(C15@@"int16_t"))@@16@@IF(OR(EXACT(C15@@"uint32_t")@@EXACT(C15@@"int32_t")@@EXACT(C15@@"float"))@@32@@IF(EXACT(C15@@"double")@@64)))),NONE,,,,,,,,, +,SH.VER,uint8_t,,PACKET,=F15+INT((G15+H15)/8),=MOD((G15+H15)@@8),=IF(OR(EXACT(C16@@"uint8_t")@@EXACT(C16@@"int8_t"))@@8@@IF(OR(EXACT(C16@@"uint16_t")@@EXACT(C16@@"int16_t"))@@16@@IF(OR(EXACT(C16@@"uint32_t")@@EXACT(C16@@"int32_t")@@EXACT(C16@@"float"))@@32@@IF(EXACT(C16@@"double")@@64)))),NONE,,,,,,,,, +,SH.TI,uint32_t,,PACKET,=F16+INT((G16+H16)/8),=MOD((G16+H16)@@8),=IF(OR(EXACT(C17@@"uint8_t")@@EXACT(C17@@"int8_t"))@@8@@IF(OR(EXACT(C17@@"uint16_t")@@EXACT(C17@@"int16_t"))@@16@@IF(OR(EXACT(C17@@"uint32_t")@@EXACT(C17@@"int32_t")@@EXACT(C17@@"float"))@@32@@IF(EXACT(C17@@"double")@@64)))),NONE,,,,,,,,, +,SH.TLM_ID,uint8_t,,PACKET,=F17+INT((G17+H17)/8),=MOD((G17+H17)@@8),=IF(OR(EXACT(C18@@"uint8_t")@@EXACT(C18@@"int8_t"))@@8@@IF(OR(EXACT(C18@@"uint16_t")@@EXACT(C18@@"int16_t"))@@16@@IF(OR(EXACT(C18@@"uint32_t")@@EXACT(C18@@"int32_t")@@EXACT(C18@@"float"))@@32@@IF(EXACT(C18@@"double")@@64)))),HEX,,,,,,,,, +,SH.GLOBAL_TIME,double,,PACKET,=F18+INT((G18+H18)/8),=MOD((G18+H18)@@8),=IF(OR(EXACT(C19@@"uint8_t")@@EXACT(C19@@"int8_t"))@@8@@IF(OR(EXACT(C19@@"uint16_t")@@EXACT(C19@@"int16_t"))@@16@@IF(OR(EXACT(C19@@"uint32_t")@@EXACT(C19@@"int32_t")@@EXACT(C19@@"float"))@@32@@IF(EXACT(C19@@"double")@@64)))),NONE,,,,,,,,, +,SH.ON_BOARD_SUBNET_TIME,uint32_t,,PACKET,=F19+INT((G19+H19)/8),=MOD((G19+H19)@@8),=IF(OR(EXACT(C20@@"uint8_t")@@EXACT(C20@@"int8_t"))@@8@@IF(OR(EXACT(C20@@"uint16_t")@@EXACT(C20@@"int16_t"))@@16@@IF(OR(EXACT(C20@@"uint32_t")@@EXACT(C20@@"int32_t")@@EXACT(C20@@"float"))@@32@@IF(EXACT(C20@@"double")@@64)))),NONE,,,,,,,,, +,SH.DEST_FLAGS,uint8_t,,PACKET,=F20+INT((G20+H20)/8),=MOD((G20+H20)@@8),=IF(OR(EXACT(C21@@"uint8_t")@@EXACT(C21@@"int8_t"))@@8@@IF(OR(EXACT(C21@@"uint16_t")@@EXACT(C21@@"int16_t"))@@16@@IF(OR(EXACT(C21@@"uint32_t")@@EXACT(C21@@"int32_t")@@EXACT(C21@@"float"))@@32@@IF(EXACT(C21@@"double")@@64)))),HEX,,,,,,,,, +,SH.DR_PARTITION,uint8_t,,PACKET,=F21+INT((G21+H21)/8),=MOD((G21+H21)@@8),=IF(OR(EXACT(C22@@"uint8_t")@@EXACT(C22@@"int8_t"))@@8@@IF(OR(EXACT(C22@@"uint16_t")@@EXACT(C22@@"int16_t"))@@16@@IF(OR(EXACT(C22@@"uint32_t")@@EXACT(C22@@"int32_t")@@EXACT(C22@@"float"))@@32@@IF(EXACT(C22@@"double")@@64)))),NONE,,,,,,,,, +,OBC_TM_MODE_TIME,uint32_t,TMGR_get_master_clock().mode_cycle,PACKET,=F22+INT((G22+H22)/8),=MOD((G22+H22)@@8),=IF(OR(EXACT(C23@@"uint8_t")@@EXACT(C23@@"int8_t"))@@8@@IF(OR(EXACT(C23@@"uint16_t")@@EXACT(C23@@"int16_t"))@@16@@IF(OR(EXACT(C23@@"uint32_t")@@EXACT(C23@@"int32_t")@@EXACT(C23@@"float"))@@32@@IF(EXACT(C23@@"double")@@64)))),NONE,,,,,,,,, +,OBC_TM_UNIXTIME_AT_TI0,double,TMGR_get_unixtime_at_ti0(),PACKET,=F23+INT((G23+H23)/8),=MOD((G23+H23)@@8),=IF(OR(EXACT(C24@@"uint8_t")@@EXACT(C24@@"int8_t"))@@8@@IF(OR(EXACT(C24@@"uint16_t")@@EXACT(C24@@"int16_t"))@@16@@IF(OR(EXACT(C24@@"uint32_t")@@EXACT(C24@@"int32_t")@@EXACT(C24@@"float"))@@32@@IF(EXACT(C24@@"double")@@64)))),NONE,,,,,,,,, +,OBC_MM_OPSMODE,uint8_t,(uint8_t)(mode_manager->current_id),PACKET,=F24+INT((G24+H24)/8),=MOD((G24+H24)@@8),=IF(OR(EXACT(C25@@"uint8_t")@@EXACT(C25@@"int8_t"))@@8@@IF(OR(EXACT(C25@@"uint16_t")@@EXACT(C25@@"int16_t"))@@16@@IF(OR(EXACT(C25@@"uint32_t")@@EXACT(C25@@"int32_t")@@EXACT(C25@@"float"))@@32@@IF(EXACT(C25@@"double")@@64)))),STATUS,,,,,,,0=START_UP@@1=INITIAL@@2=GND_TEST@@3=WDFAR@@4=RTC_HIGH_RATE@@5=5@@6=6@@7=7@@8=8@@9=9@@10=10@@11=11@@12=12@@13=13@@14=14@@15=15@@16=MAX@@*=N/A,, +,OBC_MM_STS,uint8_t,(uint8_t)( ((uint8_t)(mode_manager->stat) << 7 & 0x80) | ((uint8_t)(mode_manager->previous_id) & 0x7F) ),PACKET,=F25+INT((G25+H25)/8),=MOD((G25+H25)@@8),1,STATUS,,,,,,,0=FINISHED@@1=PROGRESS@@*=N/A,, +,OBC_MM_OPSMODE_PREV,||,||,PACKET,=F26+INT((G26+H26)/8),=MOD((G26+H26)@@8),7,STATUS,,,,,,,0=START_UP@@1=INITIAL@@2=GND_TEST@@3=WDFAR@@4=RTC_HIGH_RATE@@5=5@@6=6@@7=7@@8=8@@9=9@@10=10@@11=11@@12=12@@13=13@@14=14@@15=15@@16=MAX@@*=N/A,, +,OBC_TDSP_CURRENT_ID,uint16_t,TDSP_info->task_list_id,PACKET,=F27+INT((G27+H27)/8),=MOD((G27+H27)@@8),=IF(OR(EXACT(C28@@"uint8_t")@@EXACT(C28@@"int8_t"))@@8@@IF(OR(EXACT(C28@@"uint16_t")@@EXACT(C28@@"int16_t"))@@16@@IF(OR(EXACT(C28@@"uint32_t")@@EXACT(C28@@"int32_t")@@EXACT(C28@@"float"))@@32@@IF(EXACT(C28@@"double")@@64)))),NONE,,,,,,,,, +,OBC_TCF_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rec_status,PACKET,=F28+INT((G28+H28)/8),=MOD((G28+H28)@@8),=IF(OR(EXACT(C29@@"uint8_t")@@EXACT(C29@@"int8_t"))@@8@@IF(OR(EXACT(C29@@"uint16_t")@@EXACT(C29@@"int16_t"))@@16@@IF(OR(EXACT(C29@@"uint32_t")@@EXACT(C29@@"int32_t")@@EXACT(C29@@"float"))@@32@@IF(EXACT(C29@@"double")@@64)))),STATUS,,,,,,,0=SUCCESS@@ 1=ERROR,TCFrame M, +,OBC_TCF_LAST_RECV_TIME,uint32_t,(uint32_t)gs_driver->latest_info->last_rec_time,PACKET,=F29+INT((G29+H29)/8),=MOD((G29+H29)@@8),=IF(OR(EXACT(C30@@"uint8_t")@@EXACT(C30@@"int8_t"))@@8@@IF(OR(EXACT(C30@@"uint16_t")@@EXACT(C30@@"int16_t"))@@16@@IF(OR(EXACT(C30@@"uint32_t")@@EXACT(C30@@"int32_t")@@EXACT(C30@@"float"))@@32@@IF(EXACT(C30@@"double")@@64)))),NONE,,,,,,,,ŐVTCFrameM, +,OBC_TCP_LAST_RECV_ACK,uint8_t,(uint8_t)(gs_driver->latest_info->cmd_ack),PACKET,=F30+INT((G30+H30)/8),=MOD((G30+H30)@@8),=IF(OR(EXACT(C31@@"uint8_t")@@EXACT(C31@@"int8_t"))@@8@@IF(OR(EXACT(C31@@"uint16_t")@@EXACT(C31@@"int16_t"))@@16@@IF(OR(EXACT(C31@@"uint32_t")@@EXACT(C31@@"int32_t")@@EXACT(C31@@"float"))@@32@@IF(EXACT(C31@@"double")@@64)))),STATUS,,,,,,,0=SUCCESS@@ 1=RT_ACPT@@ 2=RT_FWD@@ 3=LENGTH@@ 4=CRC@@ 5=TO_ID@@ 6=TC_DISC@@ 7=CM_TYPE@@ 8=LST_FUL@@ 9=TL_ACPT@@ 10=TL_PAST@@ 11=TL_EXST@@ 12=TL_NEXE@@ 13=TL_NFND@@ 14=BL_ACPT@@ 15=BL_BLK#@@ 16=BL_CMD#@@ 17=BL_ISOR@@ 18=BL_INAC@@ 19=BL_COMB@@ 20=TLM_DST@@ 21=UNKNOWN,ŐVTCPacketM, +,OBC_GS_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_gs_cmd_list),PACKET,=F31+INT((G31+H31)/8),=MOD((G31+H31)@@8),=IF(OR(EXACT(C32@@"uint8_t")@@EXACT(C32@@"int8_t"))@@8@@IF(OR(EXACT(C32@@"uint16_t")@@EXACT(C32@@"int16_t"))@@16@@IF(OR(EXACT(C32@@"uint32_t")@@EXACT(C32@@"int32_t")@@EXACT(C32@@"float"))@@32@@IF(EXACT(C32@@"double")@@64)))),NONE,,,,,,,,nǃR}hJE^, +,OBC_GS_CMD_LAST_EXEC_TIME,uint32_t,gs_command_dispatcher->prev.time.total_cycle,PACKET,=F32+INT((G32+H32)/8),=MOD((G32+H32)@@8),=IF(OR(EXACT(C33@@"uint8_t")@@EXACT(C33@@"int8_t"))@@8@@IF(OR(EXACT(C33@@"uint16_t")@@EXACT(C33@@"int16_t"))@@16@@IF(OR(EXACT(C33@@"uint32_t")@@EXACT(C33@@"int32_t")@@EXACT(C33@@"float"))@@32@@IF(EXACT(C33@@"double")@@64)))),NONE,,,,,,,,ŐVnǃR}hs, +,OBC_GS_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(gs_command_dispatcher->prev.code),PACKET,=F33+INT((G33+H33)/8),=MOD((G33+H33)@@8),=IF(OR(EXACT(C34@@"uint8_t")@@EXACT(C34@@"int8_t"))@@8@@IF(OR(EXACT(C34@@"uint16_t")@@EXACT(C34@@"int16_t"))@@16@@IF(OR(EXACT(C34@@"uint32_t")@@EXACT(C34@@"int32_t")@@EXACT(C34@@"float"))@@32@@IF(EXACT(C34@@"double")@@64)))),NONE,,,,,,,,ŐVnǃR}hID, +,OBC_GS_CMD_LAST_EXEC_STS,int8_t,(int8_t)(gs_command_dispatcher->prev.sts),PACKET,=F34+INT((G34+H34)/8),=MOD((G34+H34)@@8),=IF(OR(EXACT(C35@@"uint8_t")@@EXACT(C35@@"int8_t"))@@8@@IF(OR(EXACT(C35@@"uint16_t")@@EXACT(C35@@"int16_t"))@@16@@IF(OR(EXACT(C35@@"uint32_t")@@EXACT(C35@@"int32_t")@@EXACT(C35@@"float"))@@32@@IF(EXACT(C35@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVnǃR}hs, +,OBC_GS_CMD_LAST_ERR_TIME,uint32_t,gs_command_dispatcher->prev_err.time.total_cycle,PACKET,=F35+INT((G35+H35)/8),=MOD((G35+H35)@@8),=IF(OR(EXACT(C36@@"uint8_t")@@EXACT(C36@@"int8_t"))@@8@@IF(OR(EXACT(C36@@"uint16_t")@@EXACT(C36@@"int16_t"))@@16@@IF(OR(EXACT(C36@@"uint32_t")@@EXACT(C36@@"int32_t")@@EXACT(C36@@"float"))@@32@@IF(EXACT(C36@@"double")@@64)))),NONE,,,,,,,,nLjُR}hs, +,OBC_GS_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(gs_command_dispatcher->prev_err.code),PACKET,=F36+INT((G36+H36)/8),=MOD((G36+H36)@@8),=IF(OR(EXACT(C37@@"uint8_t")@@EXACT(C37@@"int8_t"))@@8@@IF(OR(EXACT(C37@@"uint16_t")@@EXACT(C37@@"int16_t"))@@16@@IF(OR(EXACT(C37@@"uint32_t")@@EXACT(C37@@"int32_t")@@EXACT(C37@@"float"))@@32@@IF(EXACT(C37@@"double")@@64)))),NONE,,,,,,,,nLjُR}hID, +,OBC_GS_CMD_LAST_ERR_STS,int8_t,(int8_t)(gs_command_dispatcher->prev_err.sts),PACKET,=F37+INT((G37+H37)/8),=MOD((G37+H37)@@8),=IF(OR(EXACT(C38@@"uint8_t")@@EXACT(C38@@"int8_t"))@@8@@IF(OR(EXACT(C38@@"uint16_t")@@EXACT(C38@@"int16_t"))@@16@@IF(OR(EXACT(C38@@"uint32_t")@@EXACT(C38@@"int32_t")@@EXACT(C38@@"float"))@@32@@IF(EXACT(C38@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,nLjُR}hs, +,OBC_TL0_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[0]),PACKET,=F38+INT((G38+H38)/8),=MOD((G38+H38)@@8),=IF(OR(EXACT(C39@@"uint8_t")@@EXACT(C39@@"int8_t"))@@8@@IF(OR(EXACT(C39@@"uint16_t")@@EXACT(C39@@"int16_t"))@@16@@IF(OR(EXACT(C39@@"uint32_t")@@EXACT(C39@@"int32_t")@@EXACT(C39@@"float"))@@32@@IF(EXACT(C39@@"double")@@64)))),NONE,,,,,,,,TL0R}hJE^, +,OBC_TL0_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[0])),PACKET,=F39+INT((G39+H39)/8),=MOD((G39+H39)@@8),=IF(OR(EXACT(C40@@"uint8_t")@@EXACT(C40@@"int8_t"))@@8@@IF(OR(EXACT(C40@@"uint16_t")@@EXACT(C40@@"int16_t"))@@16@@IF(OR(EXACT(C40@@"uint32_t")@@EXACT(C40@@"int32_t")@@EXACT(C40@@"float"))@@32@@IF(EXACT(C40@@"double")@@64)))),NONE,,,,,,,,TL0o^R}h, +,OBC_TL0_CMD_LAST_EXEC_TIME,uint32_t,timeline_command_dispatcher[0].prev.time.total_cycle,PACKET,=F40+INT((G40+H40)/8),=MOD((G40+H40)@@8),=IF(OR(EXACT(C41@@"uint8_t")@@EXACT(C41@@"int8_t"))@@8@@IF(OR(EXACT(C41@@"uint16_t")@@EXACT(C41@@"int16_t"))@@16@@IF(OR(EXACT(C41@@"uint32_t")@@EXACT(C41@@"int32_t")@@EXACT(C41@@"float"))@@32@@IF(EXACT(C41@@"double")@@64)))),NONE,,,,,,,,ŐVTL0R}hs, +,OBC_TL0_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev.code),PACKET,=F41+INT((G41+H41)/8),=MOD((G41+H41)@@8),=IF(OR(EXACT(C42@@"uint8_t")@@EXACT(C42@@"int8_t"))@@8@@IF(OR(EXACT(C42@@"uint16_t")@@EXACT(C42@@"int16_t"))@@16@@IF(OR(EXACT(C42@@"uint32_t")@@EXACT(C42@@"int32_t")@@EXACT(C42@@"float"))@@32@@IF(EXACT(C42@@"double")@@64)))),NONE,,,,,,,,ŐVTL0R}hID, +,OBC_TL0_CMD_LAST_EXEC_STS,int8_t,(int8_t)(timeline_command_dispatcher[0].prev.sts),PACKET,=F42+INT((G42+H42)/8),=MOD((G42+H42)@@8),=IF(OR(EXACT(C43@@"uint8_t")@@EXACT(C43@@"int8_t"))@@8@@IF(OR(EXACT(C43@@"uint16_t")@@EXACT(C43@@"int16_t"))@@16@@IF(OR(EXACT(C43@@"uint32_t")@@EXACT(C43@@"int32_t")@@EXACT(C43@@"float"))@@32@@IF(EXACT(C43@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL0R}hs, +,OBC_TL0_CMD_LAST_ERR_TIME,uint32_t,timeline_command_dispatcher[0].prev_err.time.total_cycle,PACKET,=F43+INT((G43+H43)/8),=MOD((G43+H43)@@8),=IF(OR(EXACT(C44@@"uint8_t")@@EXACT(C44@@"int8_t"))@@8@@IF(OR(EXACT(C44@@"uint16_t")@@EXACT(C44@@"int16_t"))@@16@@IF(OR(EXACT(C44@@"uint32_t")@@EXACT(C44@@"int32_t")@@EXACT(C44@@"float"))@@32@@IF(EXACT(C44@@"double")@@64)))),NONE,,,,,,,,TL0ُR}hs, +,OBC_TL0_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev_err.code),PACKET,=F44+INT((G44+H44)/8),=MOD((G44+H44)@@8),=IF(OR(EXACT(C45@@"uint8_t")@@EXACT(C45@@"int8_t"))@@8@@IF(OR(EXACT(C45@@"uint16_t")@@EXACT(C45@@"int16_t"))@@16@@IF(OR(EXACT(C45@@"uint32_t")@@EXACT(C45@@"int32_t")@@EXACT(C45@@"float"))@@32@@IF(EXACT(C45@@"double")@@64)))),NONE,,,,,,,,TL0ُR}hID, +,OBC_TL0_CMD_LAST_ERR_STS,int8_t,(int8_t)(timeline_command_dispatcher[0].prev_err.sts),PACKET,=F45+INT((G45+H45)/8),=MOD((G45+H45)@@8),=IF(OR(EXACT(C46@@"uint8_t")@@EXACT(C46@@"int8_t"))@@8@@IF(OR(EXACT(C46@@"uint16_t")@@EXACT(C46@@"int16_t"))@@16@@IF(OR(EXACT(C46@@"uint32_t")@@EXACT(C46@@"int32_t")@@EXACT(C46@@"float"))@@32@@IF(EXACT(C46@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,TL0ُR}hs, +,OBC_TL0_NEXT_TIME,uint32_t,(PL_is_empty(&(PH_tl_cmd_list[0])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[0]))->packet))),PACKET,=F46+INT((G46+H46)/8),=MOD((G46+H46)@@8),=IF(OR(EXACT(C47@@"uint8_t")@@EXACT(C47@@"int8_t"))@@8@@IF(OR(EXACT(C47@@"uint16_t")@@EXACT(C47@@"int16_t"))@@16@@IF(OR(EXACT(C47@@"uint32_t")@@EXACT(C47@@"int32_t")@@EXACT(C47@@"float"))@@32@@IF(EXACT(C47@@"double")@@64)))),NONE,,,,,,,,TL0R}hs,ϐw肪ςȂƂɁc +,OBC_TL0_NEXT_ID,uint16_t,(uint16_t)(PL_is_empty(&(PH_tl_cmd_list[0])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[0]))->packet))),PACKET,=F47+INT((G47+H47)/8),=MOD((G47+H47)@@8),=IF(OR(EXACT(C48@@"uint8_t")@@EXACT(C48@@"int8_t"))@@8@@IF(OR(EXACT(C48@@"uint16_t")@@EXACT(C48@@"int16_t"))@@16@@IF(OR(EXACT(C48@@"uint32_t")@@EXACT(C48@@"int32_t")@@EXACT(C48@@"float"))@@32@@IF(EXACT(C48@@"double")@@64)))),NONE,,,,,,,,TL0R}hID,ϐw肪ςȂƂɁc +,OBC_TL0_CMD_SOE_FLAG,uint8_t,(uint8_t)(((uint8_t)timeline_command_dispatcher[0].stop_on_error << 7 & 0x80) | ((uint8_t)timeline_command_dispatcher[0].lockout << 6 & 0x40) | ((uint8_t)timeline_command_dispatcher[1].stop_on_error << 5 & 0x20) | ((uint8_t)timeline_command_dispatcher[1].lockout << 4 & 0x10) | ((uint8_t)timeline_command_dispatcher[2].stop_on_error << 3 & 0x08) | ((uint8_t)timeline_command_dispatcher[2].lockout << 2 & 0x04) | (wdt_config->is_wdt_enable << 1 & 0x02) | (wdt_config->is_clear_enable & 0x01) ),PACKET,=F48+INT((G48+H48)/8),=MOD((G48+H48)@@8),1,STATUS,,,,,,,0=DIS@@ 1=ENA,, +,OBC_TL0_CMD_LOCKOUT_FLAG,||,||,PACKET,=F49+INT((G49+H49)/8),=MOD((G49+H49)@@8),1,STATUS,,,,,,,0=NO@@ 1=YES,, +,OBC_TL1_CMD_SOE_FLAG,||,||,PACKET,=F50+INT((G50+H50)/8),=MOD((G50+H50)@@8),1,STATUS,,,,,,,0=DIS@@ 1=ENA,, +,OBC_TL1_CMD_LOCKOUT_FLAG,||,||,PACKET,=F51+INT((G51+H51)/8),=MOD((G51+H51)@@8),1,STATUS,,,,,,,0=NO@@ 1=YES,, +,OBC_TL2_CMD_SOE_FLAG,||,||,PACKET,=F52+INT((G52+H52)/8),=MOD((G52+H52)@@8),1,STATUS,,,,,,,0=DIS@@ 1=ENA,, +,OBC_TL2_CMD_LOCKOUT_FLAG,||,||,PACKET,=F53+INT((G53+H53)/8),=MOD((G53+H53)@@8),1,STATUS,,,,,,,0=NO@@ 1=YES,, +,WDT.IS_ENABLE,||,||,PACKET,=F54+INT((G54+H54)/8),=MOD((G54+H54)@@8),1,STATUS,,,,,,,0=DIS@@ 1=ENA,, +,WDT.IS_CLEAR_ENABLE,||,||,PACKET,=F55+INT((G55+H55)/8),=MOD((G55+H55)@@8),1,STATUS,,,,,,,0=DIS@@ 1=ENA,, +,OBC_BCT_BLK_PTR,uint16_t,block_command_table->pos.block,PACKET,=F56+INT((G56+H56)/8),=MOD((G56+H56)@@8),=IF(OR(EXACT(C57@@"uint8_t")@@EXACT(C57@@"int8_t"))@@8@@IF(OR(EXACT(C57@@"uint16_t")@@EXACT(C57@@"int16_t"))@@16@@IF(OR(EXACT(C57@@"uint32_t")@@EXACT(C57@@"int32_t")@@EXACT(C57@@"float"))@@32@@IF(EXACT(C57@@"double")@@64)))),NONE,,,,,,,,BCT ubN|C^, +,OBC_BCT_CMD_PTR,uint8_t,(uint8_t)(block_command_table->pos.cmd),PACKET,=F57+INT((G57+H57)/8),=MOD((G57+H57)@@8),=IF(OR(EXACT(C58@@"uint8_t")@@EXACT(C58@@"int8_t"))@@8@@IF(OR(EXACT(C58@@"uint16_t")@@EXACT(C58@@"int16_t"))@@16@@IF(OR(EXACT(C58@@"uint32_t")@@EXACT(C58@@"int32_t")@@EXACT(C58@@"float"))@@32@@IF(EXACT(C58@@"double")@@64)))),NONE,,,,,,,,BCT R}h|C^, +,OBC_BCT_REGD_TIME,uint32_t,((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,=F58+INT((G58+H58)/8),=MOD((G58+H58)@@8),=IF(OR(EXACT(C59@@"uint8_t")@@EXACT(C59@@"int8_t"))@@8@@IF(OR(EXACT(C59@@"uint16_t")@@EXACT(C59@@"int16_t"))@@16@@IF(OR(EXACT(C59@@"uint32_t")@@EXACT(C59@@"int32_t")@@EXACT(C59@@"float"))@@32@@IF(EXACT(C59@@"double")@@64)))),NONE,,,,,,,,BCT o^R}h,ϐw肪ςȂƂɁc +,OBC_BCT_REGD_ID,uint16_t,(uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,=F59+INT((G59+H59)/8),=MOD((G59+H59)@@8),=IF(OR(EXACT(C60@@"uint8_t")@@EXACT(C60@@"int8_t"))@@8@@IF(OR(EXACT(C60@@"uint16_t")@@EXACT(C60@@"int16_t"))@@16@@IF(OR(EXACT(C60@@"uint32_t")@@EXACT(C60@@"int32_t")@@EXACT(C60@@"float"))@@32@@IF(EXACT(C60@@"double")@@64)))),NONE,,,,,,,,BCT o^R}hID,ϐw肪ςȂƂɁc +,EL.STATISTICS.RECORD_COUNTER_TOTAL,uint32_t,event_logger->statistics.record_counter_total,PACKET,=F60+INT((G60+H60)/8),=MOD((G60+H60)@@8),=IF(OR(EXACT(C61@@"uint8_t")@@EXACT(C61@@"int8_t"))@@8@@IF(OR(EXACT(C61@@"uint16_t")@@EXACT(C61@@"int16_t"))@@16@@IF(OR(EXACT(C61@@"uint32_t")@@EXACT(C61@@"int32_t")@@EXACT(C61@@"float"))@@32@@IF(EXACT(C61@@"double")@@64)))),NONE,,,,,,,,, +,EL.STATISTICS.RECORD_COUNTERS_HIGH,uint16_t,(uint16_t)event_logger->statistics.record_counters[EL_ERROR_LEVEL_HIGH],PACKET,=F61+INT((G61+H61)/8),=MOD((G61+H61)@@8),=IF(OR(EXACT(C62@@"uint8_t")@@EXACT(C62@@"int8_t"))@@8@@IF(OR(EXACT(C62@@"uint16_t")@@EXACT(C62@@"int16_t"))@@16@@IF(OR(EXACT(C62@@"uint32_t")@@EXACT(C62@@"int32_t")@@EXACT(C62@@"float"))@@32@@IF(EXACT(C62@@"double")@@64)))),NONE,,,,,,,,,f[^TCY炷߂u16 +,EL.STATISTICS.RECORD_COUNTERS_MIDDLE,uint16_t,(uint16_t)event_logger->statistics.record_counters[EL_ERROR_LEVEL_MIDDLE],PACKET,=F62+INT((G62+H62)/8),=MOD((G62+H62)@@8),=IF(OR(EXACT(C63@@"uint8_t")@@EXACT(C63@@"int8_t"))@@8@@IF(OR(EXACT(C63@@"uint16_t")@@EXACT(C63@@"int16_t"))@@16@@IF(OR(EXACT(C63@@"uint32_t")@@EXACT(C63@@"int32_t")@@EXACT(C63@@"float"))@@32@@IF(EXACT(C63@@"double")@@64)))),NONE,,,,,,,,,f[^TCY炷߂u16 +,EL.STATISTICS.RECORD_COUNTERS_LOW,uint16_t,(uint16_t)event_logger->statistics.record_counters[EL_ERROR_LEVEL_LOW],PACKET,=F63+INT((G63+H63)/8),=MOD((G63+H63)@@8),=IF(OR(EXACT(C64@@"uint8_t")@@EXACT(C64@@"int8_t"))@@8@@IF(OR(EXACT(C64@@"uint16_t")@@EXACT(C64@@"int16_t"))@@16@@IF(OR(EXACT(C64@@"uint32_t")@@EXACT(C64@@"int32_t")@@EXACT(C64@@"float"))@@32@@IF(EXACT(C64@@"double")@@64)))),NONE,,,,,,,,,f[^TCY炷߂u16 +,EL.STATISTICS.RECORD_COUNTERS_EL,uint16_t,(uint16_t)event_logger->statistics.record_counters[EL_ERROR_LEVEL_EL],PACKET,=F64+INT((G64+H64)/8),=MOD((G64+H64)@@8),=IF(OR(EXACT(C65@@"uint8_t")@@EXACT(C65@@"int8_t"))@@8@@IF(OR(EXACT(C65@@"uint16_t")@@EXACT(C65@@"int16_t"))@@16@@IF(OR(EXACT(C65@@"uint32_t")@@EXACT(C65@@"int32_t")@@EXACT(C65@@"float"))@@32@@IF(EXACT(C65@@"double")@@64)))),NONE,,,,,,,,,f[^TCY炷߂u16 +,EL.STATISTICS.RECORD_COUNTERS_EH,uint16_t,(uint16_t)event_logger->statistics.record_counters[EL_ERROR_LEVEL_EH],PACKET,=F65+INT((G65+H65)/8),=MOD((G65+H65)@@8),=IF(OR(EXACT(C66@@"uint8_t")@@EXACT(C66@@"int8_t"))@@8@@IF(OR(EXACT(C66@@"uint16_t")@@EXACT(C66@@"int16_t"))@@16@@IF(OR(EXACT(C66@@"uint32_t")@@EXACT(C66@@"int32_t")@@EXACT(C66@@"float"))@@32@@IF(EXACT(C66@@"double")@@64)))),NONE,,,,,,,,,f[^TCY炷߂u16 +,EL.LATEST_EVENT.GROUP,uint8_t,(uint8_t)event_logger->latest_event.group,PACKET,=F66+INT((G66+H66)/8),=MOD((G66+H66)@@8),=IF(OR(EXACT(C67@@"uint8_t")@@EXACT(C67@@"int8_t"))@@8@@IF(OR(EXACT(C67@@"uint16_t")@@EXACT(C67@@"int16_t"))@@16@@IF(OR(EXACT(C67@@"uint32_t")@@EXACT(C67@@"int32_t")@@EXACT(C67@@"float"))@@32@@IF(EXACT(C67@@"double")@@64)))),NONE,,,,,,,,, +,EL.LATEST_EVENT.LOCAL,uint32_t,event_logger->latest_event.local,PACKET,=F67+INT((G67+H67)/8),=MOD((G67+H67)@@8),=IF(OR(EXACT(C68@@"uint8_t")@@EXACT(C68@@"int8_t"))@@8@@IF(OR(EXACT(C68@@"uint16_t")@@EXACT(C68@@"int16_t"))@@16@@IF(OR(EXACT(C68@@"uint32_t")@@EXACT(C68@@"int32_t")@@EXACT(C68@@"float"))@@32@@IF(EXACT(C68@@"double")@@64)))),NONE,,,,,,,,, +,EL.LATEST_EVENT.ERR_LEVEL,uint8_t,(uint8_t)event_logger->latest_event.err_level,PACKET,=F68+INT((G68+H68)/8),=MOD((G68+H68)@@8),=IF(OR(EXACT(C69@@"uint8_t")@@EXACT(C69@@"int8_t"))@@8@@IF(OR(EXACT(C69@@"uint16_t")@@EXACT(C69@@"int16_t"))@@16@@IF(OR(EXACT(C69@@"uint32_t")@@EXACT(C69@@"int32_t")@@EXACT(C69@@"float"))@@32@@IF(EXACT(C69@@"double")@@64)))),STATUS,,,,,,,0=HIGH@@ 1=MIDDLE@@ 2=LOW@@ 3=EL@@ 4=EH@@ *=N/A,, +,EL.LATEST_EVENT.TIME.TOTAL_CYCLE,uint32_t,event_logger->latest_event.time.total_cycle,PACKET,=F69+INT((G69+H69)/8),=MOD((G69+H69)@@8),=IF(OR(EXACT(C70@@"uint8_t")@@EXACT(C70@@"int8_t"))@@8@@IF(OR(EXACT(C70@@"uint16_t")@@EXACT(C70@@"int16_t"))@@16@@IF(OR(EXACT(C70@@"uint32_t")@@EXACT(C70@@"int32_t")@@EXACT(C70@@"float"))@@32@@IF(EXACT(C70@@"double")@@64)))),NONE,,,,,,,,, +,EL.LATEST_EVENT.TIME.STEP,uint8_t,(uint8_t)event_logger->latest_event.time.step,PACKET,=F70+INT((G70+H70)/8),=MOD((G70+H70)@@8),=IF(OR(EXACT(C71@@"uint8_t")@@EXACT(C71@@"int8_t"))@@8@@IF(OR(EXACT(C71@@"uint16_t")@@EXACT(C71@@"int16_t"))@@16@@IF(OR(EXACT(C71@@"uint32_t")@@EXACT(C71@@"int32_t")@@EXACT(C71@@"float"))@@32@@IF(EXACT(C71@@"double")@@64)))),NONE,,,,,,,,, +,EL.LATEST_EVENT.NOTE,uint16_t,(uint16_t)event_logger->latest_event.note,PACKET,=F71+INT((G71+H71)/8),=MOD((G71+H71)@@8),=IF(OR(EXACT(C72@@"uint8_t")@@EXACT(C72@@"int8_t"))@@8@@IF(OR(EXACT(C72@@"uint16_t")@@EXACT(C72@@"int16_t"))@@16@@IF(OR(EXACT(C72@@"uint32_t")@@EXACT(C72@@"int32_t")@@EXACT(C72@@"float"))@@32@@IF(EXACT(C72@@"double")@@64)))),NONE,,,,,,,,,u8ɂĂ悢 +,EL.LATEST_HIGH_EVENT.GROUP,uint8_t,(uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH@@ 0)->group,PACKET,=F72+INT((G72+H72)/8),=MOD((G72+H72)@@8),=IF(OR(EXACT(C73@@"uint8_t")@@EXACT(C73@@"int8_t"))@@8@@IF(OR(EXACT(C73@@"uint16_t")@@EXACT(C73@@"int16_t"))@@16@@IF(OR(EXACT(C73@@"uint32_t")@@EXACT(C73@@"int32_t")@@EXACT(C73@@"float"))@@32@@IF(EXACT(C73@@"double")@@64)))),NONE,,,,,,,,, +,EL.LATEST_HIGH_EVENT.LOCAL,uint32_t,EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH@@ 0)->local,PACKET,=F73+INT((G73+H73)/8),=MOD((G73+H73)@@8),=IF(OR(EXACT(C74@@"uint8_t")@@EXACT(C74@@"int8_t"))@@8@@IF(OR(EXACT(C74@@"uint16_t")@@EXACT(C74@@"int16_t"))@@16@@IF(OR(EXACT(C74@@"uint32_t")@@EXACT(C74@@"int32_t")@@EXACT(C74@@"float"))@@32@@IF(EXACT(C74@@"double")@@64)))),NONE,,,,,,,,, +,EL.LATEST_HIGH_EVENT.TIME.TOTAL_CYCLE,uint32_t,EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH@@ 0)->time.total_cycle,PACKET,=F74+INT((G74+H74)/8),=MOD((G74+H74)@@8),=IF(OR(EXACT(C75@@"uint8_t")@@EXACT(C75@@"int8_t"))@@8@@IF(OR(EXACT(C75@@"uint16_t")@@EXACT(C75@@"int16_t"))@@16@@IF(OR(EXACT(C75@@"uint32_t")@@EXACT(C75@@"int32_t")@@EXACT(C75@@"float"))@@32@@IF(EXACT(C75@@"double")@@64)))),NONE,,,,,,,,, +,EL.LATEST_HIGH_EVENT.TIME.STEP,uint8_t,(uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH@@ 0)->time.step,PACKET,=F75+INT((G75+H75)/8),=MOD((G75+H75)@@8),=IF(OR(EXACT(C76@@"uint8_t")@@EXACT(C76@@"int8_t"))@@8@@IF(OR(EXACT(C76@@"uint16_t")@@EXACT(C76@@"int16_t"))@@16@@IF(OR(EXACT(C76@@"uint32_t")@@EXACT(C76@@"int32_t")@@EXACT(C76@@"float"))@@32@@IF(EXACT(C76@@"double")@@64)))),NONE,,,,,,,,, +,EL.LATEST_HIGH_EVENT.NOTE,uint16_t,(uint16_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH@@ 0)->note,PACKET,=F76+INT((G76+H76)/8),=MOD((G76+H76)@@8),=IF(OR(EXACT(C77@@"uint8_t")@@EXACT(C77@@"int8_t"))@@8@@IF(OR(EXACT(C77@@"uint16_t")@@EXACT(C77@@"int16_t"))@@16@@IF(OR(EXACT(C77@@"uint32_t")@@EXACT(C77@@"int32_t")@@EXACT(C77@@"float"))@@32@@IF(EXACT(C77@@"double")@@64)))),NONE,,,,,,,,,u8ɂĂ悢 +,EH.LOG_TABLE.RESPOND_COUNTER,uint32_t,event_handler->log_table.respond_counter,PACKET,=F77+INT((G77+H77)/8),=MOD((G77+H77)@@8),=IF(OR(EXACT(C78@@"uint8_t")@@EXACT(C78@@"int8_t"))@@8@@IF(OR(EXACT(C78@@"uint16_t")@@EXACT(C78@@"int16_t"))@@16@@IF(OR(EXACT(C78@@"uint32_t")@@EXACT(C78@@"int32_t")@@EXACT(C78@@"float"))@@32@@IF(EXACT(C78@@"double")@@64)))),NONE,,,,,,,,, +,ANOMALY_MOBC_AL_COUNTER,uint32_t,(uint32_t)anomaly_logger->counter,PACKET,=F78+INT((G78+H78)/8),=MOD((G78+H78)@@8),=IF(OR(EXACT(C79@@"uint8_t")@@EXACT(C79@@"int8_t"))@@8@@IF(OR(EXACT(C79@@"uint16_t")@@EXACT(C79@@"int16_t"))@@16@@IF(OR(EXACT(C79@@"uint32_t")@@EXACT(C79@@"int32_t")@@EXACT(C79@@"float"))@@32@@IF(EXACT(C79@@"double")@@64)))),NONE,,,,,,,,, +,ANOMALY_MOBC_AL_LATEST_TIME_MASTER,uint32_t,(uint32_t)anomaly_logger->records[(anomaly_logger->header == 0) ? 0 : anomaly_logger->header - 1].time.total_cycle,PACKET,=F79+INT((G79+H79)/8),=MOD((G79+H79)@@8),=IF(OR(EXACT(C80@@"uint8_t")@@EXACT(C80@@"int8_t"))@@8@@IF(OR(EXACT(C80@@"uint16_t")@@EXACT(C80@@"int16_t"))@@16@@IF(OR(EXACT(C80@@"uint32_t")@@EXACT(C80@@"int32_t")@@EXACT(C80@@"float"))@@32@@IF(EXACT(C80@@"double")@@64)))),NONE,,,,,,,,, +,ANOMALY_MOBC_AL_LATEST_TIME_STEP,uint8_t,(uint8_t)(anomaly_logger->records[(anomaly_logger->header == 0) ? 0 : anomaly_logger->header - 1].time.step & 0x000000ff),PACKET,=F80+INT((G80+H80)/8),=MOD((G80+H80)@@8),=IF(OR(EXACT(C81@@"uint8_t")@@EXACT(C81@@"int8_t"))@@8@@IF(OR(EXACT(C81@@"uint16_t")@@EXACT(C81@@"int16_t"))@@16@@IF(OR(EXACT(C81@@"uint32_t")@@EXACT(C81@@"int32_t")@@EXACT(C81@@"float"))@@32@@IF(EXACT(C81@@"double")@@64)))),NONE,,,,,,,,, +,ANOMALY_MOBC_AL_LATEST_CODE_GROUP,uint8_t,(uint8_t)(anomaly_logger->records[(anomaly_logger->header == 0) ? 0 : anomaly_logger->header - 1].code.group & 0x000000ff),PACKET,=F81+INT((G81+H81)/8),=MOD((G81+H81)@@8),=IF(OR(EXACT(C82@@"uint8_t")@@EXACT(C82@@"int8_t"))@@8@@IF(OR(EXACT(C82@@"uint16_t")@@EXACT(C82@@"int16_t"))@@16@@IF(OR(EXACT(C82@@"uint32_t")@@EXACT(C82@@"int32_t")@@EXACT(C82@@"float"))@@32@@IF(EXACT(C82@@"double")@@64)))),NONE,,,,,,,,, +,ANOMALY_MOBC_AL_LATEST_CODE_LOCAL,uint32_t,anomaly_logger->records[(anomaly_logger->header == 0) ? 0 : anomaly_logger->header - 1].code.local,PACKET,=F82+INT((G82+H82)/8),=MOD((G82+H82)@@8),=IF(OR(EXACT(C83@@"uint8_t")@@EXACT(C83@@"int8_t"))@@8@@IF(OR(EXACT(C83@@"uint16_t")@@EXACT(C83@@"int16_t"))@@16@@IF(OR(EXACT(C83@@"uint32_t")@@EXACT(C83@@"int32_t")@@EXACT(C83@@"float"))@@32@@IF(EXACT(C83@@"double")@@64)))),NONE,,,,,,,,, +,ANOMALY_MOBC_AL_LATEST_RUN_LENGTH,uint8_t,(uint8_t)(anomaly_logger->records[(anomaly_logger->header == 0) ? 0 : anomaly_logger->header - 1].run_length & 0x000000ff),PACKET,=F83+INT((G83+H83)/8),=MOD((G83+H83)@@8),=IF(OR(EXACT(C84@@"uint8_t")@@EXACT(C84@@"int8_t"))@@8@@IF(OR(EXACT(C84@@"uint16_t")@@EXACT(C84@@"int16_t"))@@16@@IF(OR(EXACT(C84@@"uint32_t")@@EXACT(C84@@"int32_t")@@EXACT(C84@@"float"))@@32@@IF(EXACT(C84@@"double")@@64)))),NONE,,,,,,,,, +,ANOMALY_MOBC_AL_HEADER,uint8_t,(uint8_t)(anomaly_logger->header),PACKET,=F84+INT((G84+H84)/8),=MOD((G84+H84)@@8),=IF(OR(EXACT(C85@@"uint8_t")@@EXACT(C85@@"int8_t"))@@8@@IF(OR(EXACT(C85@@"uint16_t")@@EXACT(C85@@"int16_t"))@@16@@IF(OR(EXACT(C85@@"uint32_t")@@EXACT(C85@@"int32_t")@@EXACT(C85@@"float"))@@32@@IF(EXACT(C85@@"double")@@64)))),NONE,,,,,,,,, +,OBC_TL1_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[1]),PACKET,=F85+INT((G85+H85)/8),=MOD((G85+H85)@@8),=IF(OR(EXACT(C86@@"uint8_t")@@EXACT(C86@@"int8_t"))@@8@@IF(OR(EXACT(C86@@"uint16_t")@@EXACT(C86@@"int16_t"))@@16@@IF(OR(EXACT(C86@@"uint32_t")@@EXACT(C86@@"int32_t")@@EXACT(C86@@"float"))@@32@@IF(EXACT(C86@@"double")@@64)))),NONE,,,,,,,,TL1R}hJE^, +,OBC_TL2_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[2]),PACKET,=F86+INT((G86+H86)/8),=MOD((G86+H86)@@8),=IF(OR(EXACT(C87@@"uint8_t")@@EXACT(C87@@"int8_t"))@@8@@IF(OR(EXACT(C87@@"uint16_t")@@EXACT(C87@@"int16_t"))@@16@@IF(OR(EXACT(C87@@"uint32_t")@@EXACT(C87@@"int32_t")@@EXACT(C87@@"float"))@@32@@IF(EXACT(C87@@"double")@@64)))),NONE,,,,,,,,TL1R}hJE^, +,OBC_TL1_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[1])),PACKET,=F87+INT((G87+H87)/8),=MOD((G87+H87)@@8),=IF(OR(EXACT(C88@@"uint8_t")@@EXACT(C88@@"int8_t"))@@8@@IF(OR(EXACT(C88@@"uint16_t")@@EXACT(C88@@"int16_t"))@@16@@IF(OR(EXACT(C88@@"uint32_t")@@EXACT(C88@@"int32_t")@@EXACT(C88@@"float"))@@32@@IF(EXACT(C88@@"double")@@64)))),NONE,,,,,,,,, +,OBC_TL2_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[2])),PACKET,=F88+INT((G88+H88)/8),=MOD((G88+H88)@@8),=IF(OR(EXACT(C89@@"uint8_t")@@EXACT(C89@@"int8_t"))@@8@@IF(OR(EXACT(C89@@"uint16_t")@@EXACT(C89@@"int16_t"))@@16@@IF(OR(EXACT(C89@@"uint32_t")@@EXACT(C89@@"int32_t")@@EXACT(C89@@"float"))@@32@@IF(EXACT(C89@@"double")@@64)))),NONE,,,,,,,,, +,OBC_AH_ACTION_COUNTER,uint8_t,(uint8_t)(anomaly_handler->action_counter),PACKET,=F89+INT((G89+H89)/8),=MOD((G89+H89)@@8),=IF(OR(EXACT(C90@@"uint8_t")@@EXACT(C90@@"int8_t"))@@8@@IF(OR(EXACT(C90@@"uint16_t")@@EXACT(C90@@"int16_t"))@@16@@IF(OR(EXACT(C90@@"uint32_t")@@EXACT(C90@@"int32_t")@@EXACT(C90@@"float"))@@32@@IF(EXACT(C90@@"double")@@64)))),NONE,,,,,,,,Am}Ή, +,OBC_AH_LATEST_ID,uint8_t,(uint8_t)(anomaly_handler->latest_id),PACKET,=F90+INT((G90+H90)/8),=MOD((G90+H90)@@8),=IF(OR(EXACT(C91@@"uint8_t")@@EXACT(C91@@"int8_t"))@@8@@IF(OR(EXACT(C91@@"uint16_t")@@EXACT(C91@@"int16_t"))@@16@@IF(OR(EXACT(C91@@"uint32_t")@@EXACT(C91@@"int32_t")@@EXACT(C91@@"float"))@@32@@IF(EXACT(C91@@"double")@@64)))),NONE,,,,,,,,Am}ΉID, +,OBC_AH_RESPOND_AT,uint32_t,(uint32_t)(anomaly_handler->respond_at.total_cycle),PACKET,=F91+INT((G91+H91)/8),=MOD((G91+H91)@@8),=IF(OR(EXACT(C92@@"uint8_t")@@EXACT(C92@@"int8_t"))@@8@@IF(OR(EXACT(C92@@"uint16_t")@@EXACT(C92@@"int16_t"))@@16@@IF(OR(EXACT(C92@@"uint32_t")@@EXACT(C92@@"int32_t")@@EXACT(C92@@"float"))@@32@@IF(EXACT(C92@@"double")@@64)))),NONE,,,,,,,,Am}Ή{, +,OBC_GS_CMD_ERR_COUNTER,uint8_t,(uint8_t)(gs_command_dispatcher->error_counter),PACKET,=F92+INT((G92+H92)/8),=MOD((G92+H92)@@8),=IF(OR(EXACT(C93@@"uint8_t")@@EXACT(C93@@"int8_t"))@@8@@IF(OR(EXACT(C93@@"uint16_t")@@EXACT(C93@@"int16_t"))@@16@@IF(OR(EXACT(C93@@"uint32_t")@@EXACT(C93@@"int32_t")@@EXACT(C93@@"float"))@@32@@IF(EXACT(C93@@"double")@@64)))),NONE,,,,,,,,Am}Ή, +,DCU.EXEC_LOGS0.CMD_CODE,uint16_t,(uint16_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[0]].cmd_code),PACKET,=F93+INT((G93+H93)/8),=MOD((G93+H93)@@8),=IF(OR(EXACT(C94@@"uint8_t")@@EXACT(C94@@"int8_t"))@@8@@IF(OR(EXACT(C94@@"uint16_t")@@EXACT(C94@@"int16_t"))@@16@@IF(OR(EXACT(C94@@"uint32_t")@@EXACT(C94@@"int32_t")@@EXACT(C94@@"float"))@@32@@IF(EXACT(C94@@"double")@@64)))),HEX,,,,,,,,, +,DCU.EXEC_LOGS0.STATUS,uint8_t,(uint8_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[0]].status),PACKET,=F94+INT((G94+H94)/8),=MOD((G94+H94)@@8),=IF(OR(EXACT(C95@@"uint8_t")@@EXACT(C95@@"int8_t"))@@8@@IF(OR(EXACT(C95@@"uint16_t")@@EXACT(C95@@"int16_t"))@@16@@IF(OR(EXACT(C95@@"uint32_t")@@EXACT(C95@@"int32_t")@@EXACT(C95@@"float"))@@32@@IF(EXACT(C95@@"double")@@64)))),STATUS,,,,,,,0=FINISHED@@ 1=PROGRESS@@ 2=ABORTED_BY_ERR@@ 3=ABORTED_BY_CMD@@ *=N/A,, +,DCU.EXEC_LOGS0.EXEC_COUNTER,uint16_t,(uint16_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[0]].exec_counter),PACKET,=F95+INT((G95+H95)/8),=MOD((G95+H95)@@8),=IF(OR(EXACT(C96@@"uint8_t")@@EXACT(C96@@"int8_t"))@@8@@IF(OR(EXACT(C96@@"uint16_t")@@EXACT(C96@@"int16_t"))@@16@@IF(OR(EXACT(C96@@"uint32_t")@@EXACT(C96@@"int32_t")@@EXACT(C96@@"float"))@@32@@IF(EXACT(C96@@"double")@@64)))),NONE,,,,,,,,, +,DCU.EXEC_LOGS0.LAST_EXEC_STS,int8_t,(int8_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[0]].last_exec_sts),PACKET,=F96+INT((G96+H96)/8),=MOD((G96+H96)@@8),=IF(OR(EXACT(C97@@"uint8_t")@@EXACT(C97@@"int8_t"))@@8@@IF(OR(EXACT(C97@@"uint16_t")@@EXACT(C97@@"int16_t"))@@16@@IF(OR(EXACT(C97@@"uint32_t")@@EXACT(C97@@"int32_t")@@EXACT(C97@@"float"))@@32@@IF(EXACT(C97@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,, +,DCU.EXEC_LOGS0.LAST_EXEC_TIME.TOTAL_CYCLE,uint32_t,divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[0]].last_exec_time.total_cycle,PACKET,=F97+INT((G97+H97)/8),=MOD((G97+H97)@@8),=IF(OR(EXACT(C98@@"uint8_t")@@EXACT(C98@@"int8_t"))@@8@@IF(OR(EXACT(C98@@"uint16_t")@@EXACT(C98@@"int16_t"))@@16@@IF(OR(EXACT(C98@@"uint32_t")@@EXACT(C98@@"int32_t")@@EXACT(C98@@"float"))@@32@@IF(EXACT(C98@@"double")@@64)))),NONE,,,,,,,,, +,DCU.EXEC_LOGS1.CMD_CODE,uint16_t,(uint16_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[1]].cmd_code),PACKET,=F98+INT((G98+H98)/8),=MOD((G98+H98)@@8),=IF(OR(EXACT(C99@@"uint8_t")@@EXACT(C99@@"int8_t"))@@8@@IF(OR(EXACT(C99@@"uint16_t")@@EXACT(C99@@"int16_t"))@@16@@IF(OR(EXACT(C99@@"uint32_t")@@EXACT(C99@@"int32_t")@@EXACT(C99@@"float"))@@32@@IF(EXACT(C99@@"double")@@64)))),HEX,,,,,,,,, +,DCU.EXEC_LOGS1.STATUS,uint8_t,(uint8_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[1]].status),PACKET,=F99+INT((G99+H99)/8),=MOD((G99+H99)@@8),=IF(OR(EXACT(C100@@"uint8_t")@@EXACT(C100@@"int8_t"))@@8@@IF(OR(EXACT(C100@@"uint16_t")@@EXACT(C100@@"int16_t"))@@16@@IF(OR(EXACT(C100@@"uint32_t")@@EXACT(C100@@"int32_t")@@EXACT(C100@@"float"))@@32@@IF(EXACT(C100@@"double")@@64)))),STATUS,,,,,,,0=FINISHED@@ 1=PROGRESS@@ 2=ABORTED_BY_ERR@@ 3=ABORTED_BY_CMD@@ *=N/A,, +,DCU.EXEC_LOGS1.EXEC_COUNTER,uint16_t,(uint16_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[1]].exec_counter),PACKET,=F100+INT((G100+H100)/8),=MOD((G100+H100)@@8),=IF(OR(EXACT(C101@@"uint8_t")@@EXACT(C101@@"int8_t"))@@8@@IF(OR(EXACT(C101@@"uint16_t")@@EXACT(C101@@"int16_t"))@@16@@IF(OR(EXACT(C101@@"uint32_t")@@EXACT(C101@@"int32_t")@@EXACT(C101@@"float"))@@32@@IF(EXACT(C101@@"double")@@64)))),NONE,,,,,,,,, +,DCU.EXEC_LOGS1.LAST_EXEC_STS,int8_t,(int8_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[1]].last_exec_sts),PACKET,=F101+INT((G101+H101)/8),=MOD((G101+H101)@@8),=IF(OR(EXACT(C102@@"uint8_t")@@EXACT(C102@@"int8_t"))@@8@@IF(OR(EXACT(C102@@"uint16_t")@@EXACT(C102@@"int16_t"))@@16@@IF(OR(EXACT(C102@@"uint32_t")@@EXACT(C102@@"int32_t")@@EXACT(C102@@"float"))@@32@@IF(EXACT(C102@@"double")@@64)))),STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,, +,DCU.EXEC_LOGS1.LAST_EXEC_TIME.TOTAL_CYCLE,uint32_t,divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[1]].last_exec_time.total_cycle,PACKET,=F102+INT((G102+H102)/8),=MOD((G102+H102)@@8),=IF(OR(EXACT(C103@@"uint8_t")@@EXACT(C103@@"int8_t"))@@8@@IF(OR(EXACT(C103@@"uint16_t")@@EXACT(C103@@"int16_t"))@@16@@IF(OR(EXACT(C103@@"uint32_t")@@EXACT(C103@@"int32_t")@@EXACT(C103@@"float"))@@32@@IF(EXACT(C103@@"double")@@64)))),NONE,,,,,,,,, +,GIT_REV_CORE,uint32_t,GIT_REV_CORE_SHORT,PACKET,=F103+INT((G103+H103)/8),=MOD((G103+H103)@@8),=IF(OR(EXACT(C104@@"uint8_t")@@EXACT(C104@@"int8_t"))@@8@@IF(OR(EXACT(C104@@"uint16_t")@@EXACT(C104@@"int16_t"))@@16@@IF(OR(EXACT(C104@@"uint32_t")@@EXACT(C104@@"int32_t")@@EXACT(C104@@"float"))@@32@@IF(EXACT(C104@@"double")@@64)))),HEX,,,,,,,,, +,GIT_REV_USER,uint32_t,GIT_REV_USER_SHORT,PACKET,=F104+INT((G104+H104)/8),=MOD((G104+H104)@@8),=IF(OR(EXACT(C105@@"uint8_t")@@EXACT(C105@@"int8_t"))@@8@@IF(OR(EXACT(C105@@"uint16_t")@@EXACT(C105@@"int16_t"))@@16@@IF(OR(EXACT(C105@@"uint32_t")@@EXACT(C105@@"int32_t")@@EXACT(C105@@"float"))@@32@@IF(EXACT(C105@@"double")@@64)))),HEX,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/calced_data/.gitkeep b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/calced_data/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/calced_data/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/calced_data/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv new file mode 100644 index 000000000..e86bbf64c --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/calced_data/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv @@ -0,0 +1,500 @@ +,Target,OBC,Local Var,,,,,,,,,,,,,, +,PacketID,0x90,,,,,,,,,,,,,,, +,Enable/Disable,ENABLE,,,,,,,,,,,,,,, +,IsRestricted,FALSE,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,,,,,,,,Description,Note +,Name,Var.%%##Type,Variable or Function Name,Ext.%%##Type,Pos. Desiginator,,,Conv.%%##Type,Poly (a_i * x^i),,,,,,Status,, +,,,,,Octet%%##Pos.,bit%%##Pos.,bit%%##Len.,,a0,a1,a2,a3,a4,a5,,, +,PH.VER,uint16_t,,PACKET,0,0,3,NONE,,,,,,,,, +,PH.TYPE,,,PACKET,0,3,1,NONE,,,,,,,,, +,PH.SH_FLAG,,,PACKET,0,4,1,NONE,,,,,,,,, +,PH.APID,,,PACKET,0,5,11,NONE,,,,,,,,, +,PH.SEQ_FLAG,uint16_t,,PACKET,2,0,2,NONE,,,,,,,,, +,PH.SEQ_COUNT,,,PACKET,2,2,14,NONE,,,,,,,,, +,PH.PACKET_LEN,uint16_t,,PACKET,4,0,16,NONE,,,,,,,,, +,SH.VER,uint8_t,,PACKET,6,0,8,NONE,,,,,,,,, +,SH.TI,uint32_t,,PACKET,7,0,32,NONE,,,,,,,,, +,SH.TLM_ID,uint8_t,,PACKET,11,0,8,HEX,,,,,,,,, +,SH.GLOBAL_TIME,double,,PACKET,12,0,64,NONE,,,,,,,,, +,SH.ON_BOARD_SUBNET_TIME,uint32_t,,PACKET,20,0,32,NONE,,,,,,,,, +,SH.DEST_FLAGS,uint8_t,,PACKET,24,0,8,HEX,,,,,,,,, +,SH.DR_PARTITION,uint8_t,,PACKET,25,0,8,NONE,,,,,,,,, +,TM_MODE_TIME,uint32_t,(uint32_t)(TMGR_get_master_clock().mode_cycle),PACKET,26,0,32,NONE,,,,,,,,[hJڌoߎ, +,TM_UTL_UNIXTIME_EPOCH,double,TMGR_get_utl_unixtime_epoch(),PACKET,30,0,64,NONE,,,,,,,,UTL_cmdŗpunixtime̋I, +,TM_CYCLES_PER_SEC_FIX_RATIO,double,(double)(time_manager->unixtime_info_.cycle_correction),PACKET,38,0,64,NONE,,,,,,,,CYCLES_PER_SEC̕␳{. l1.0, +,MM_STS,uint8_t,(uint8_t)(mode_manager->stat),PACKET,46,0,8,NONE,,,,,,,,[hJڎs, +,MM_OPSMODE,uint8_t,(uint8_t)(mode_manager->current_id),PACKET,47,0,8,NONE,,,,,,,,󃂁[hԍ, +,MM_OPSMODE_PREV,uint8_t,(uint8_t)(mode_manager->previous_id),PACKET,48,0,8,NONE,,,,,,,,O[hԍ, +,TDSP_CURRENT_ID,uint8_t,(uint8_t)(TDSP_info->task_list_id),PACKET,49,0,8,NONE,,,,,,,, TaskList ID, +,TDSP_CMD_LAST_ERR_TIME_MASTER,uint32_t,(uint32_t)(TDSP_info->tskd.prev_err.time.total_cycle),PACKET,50,0,32,NONE,,,,,,,,ŐVR}hs, +,TDSP_CMD_LAST_ERR_TIME_STEP,uint8_t,(uint8_t)(TDSP_info->tskd.prev_err.time.step),PACKET,54,0,8,NONE,,,,,,,,, +,TDSP_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(TDSP_info->tskd.prev_err.code),PACKET,55,0,16,NONE,,,,,,,,ŐVR}hID, +,TDSP_CMD_LAST_ERR_STS,int32_t,(int32_t)(TDSP_info->tskd.prev_err.sts),PACKET,57,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVR}hs, +,GS_RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->latest_info->ret_from_if_rx,PACKET,61,0,32,NONE,,,,,,,,, +,TCF_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rec_status,PACKET,65,0,8,STATUS,,,,,,,0=SUCCESS:G@@ 1=ERROR:R,TCFrame DS, +,TCF_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->tc_frame_validate_status,PACKET,66,0,8,STATUS,,,,,,,0=SUCCESS:G@@ 1=TCF_VER:R@@ 2=TCF_SCID:R@@ 3=TCF_VCID:R@@ 4=TCF_TYPE:R@@ 5=LOCKOUT:R@@ 6=TCF_SEQ_FLAG:R@@ 7=TCP_VER:R@@ 8=TCP_2ND_HDR_FLAG:R@@ 9=APID:R@@ 10=TCP_TYPE_IS_NOT_CMD:R@@ 11=TCP_SEQ_IS_NOTE_SINGLE:R@@ 12=FECW_MISSMATCH:R@@ 13=FARM1_PWA:R@@ 14=FARM1_NWA:R@@ 15=FARM1_LOCKOUT_AREA:R@@ 16=FARM1_SAME_NUMBER:R@@ 17=INVALID_BC_CMD:R,TCFrame ،, +,TCF_LAST_RECV_TIME,uint32_t,(uint32_t)gs_driver->latest_info->last_rec_time,PACKET,67,0,32,NONE,,,,,,,,ŐVTCFrameM, +,TCF_FARM_PW,uint8_t,(uint8_t)gs_validate_info->positive_window_width,PACKET,71,0,8,NONE,,,,,,,,FARM-1 Positive Window Width, +,TCP_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->cmd_ack,PACKET,72,0,8,STATUS,,,,,,,0=SUCCESS:G@@ 1=RT_ACPT:G@@ 2=RT_FWD:G@@ 3=LENGTH:R@@ 4=CRC:R@@ 5=TO_ID:R@@ 6=TC_DISC:R@@ 7=CM_TYPE:R@@ 8=LST_FUL:R@@ 9=TL_ACPT:G@@ 10=TL_PAST:R@@ 11=TL_EXST:R@@ 12=TL_NEXE:R@@ 13=TL_NFND:R@@ 14=BL_ACPT:G@@ 15=BL_BLK#:R@@ 16=BL_CMD#:R@@ 17=BL_ISOR:R@@ 18=BL_INAC:R@@ 19=BL_COMB:R@@ 20=TLM_DST:R@@ 21=UNKNOWN:R,ŐVTCPacketM, +,TLM_TX_PORT_TYPE,uint8_t,(uint8_t)gs_driver->tlm_tx_port_type,PACKET,73,0,8,STATUS,,,,,,,0=CCSDS@@ 1=UART,TLM ̑MUART̂̂GŜ̂, +,GS_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_gs_cmd_list),PACKET,74,0,32,NONE,,,,,,,,nǃR}hJE^, +,GS_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(gs_command_dispatcher->prev.time.total_cycle),PACKET,78,0,32,NONE,,,,,,,,ŐVnǃR}hs, +,GS_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(gs_command_dispatcher->prev.code),PACKET,82,0,16,NONE,,,,,,,,ŐVnǃR}hID, +,GS_CMD_LAST_EXEC_STS,int32_t,(int32_t)(gs_command_dispatcher->prev.sts),PACKET,84,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVnǃR}hs, +,GS_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(gs_command_dispatcher->prev_err.time.total_cycle),PACKET,88,0,32,NONE,,,,,,,,ŐVnǃR}hs, +,GS_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(gs_command_dispatcher->prev_err.code),PACKET,92,0,16,NONE,,,,,,,,ŐVnǃR}hID, +,GS_CMD_LAST_ERR_STS,int32_t,(int32_t)(gs_command_dispatcher->prev_err.sts),PACKET,94,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVnǃR}hs, +,GS_CMD_ERR_COUNTER,uint32_t,(uint32_t)(gs_command_dispatcher->error_counter),PACKET,98,0,32,NONE,,,,,,,,nǃR}hsُJE^, +,RT_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rt_cmd_list),PACKET,102,0,32,NONE,,,,,,,,R}hJE^, +,RT_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(realtime_command_dispatcher->prev.time.total_cycle),PACKET,106,0,32,NONE,,,,,,,,ŐVR}hs, +,RT_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(realtime_command_dispatcher->prev.code),PACKET,110,0,16,NONE,,,,,,,,ŐVR}hID, +,RT_CMD_LAST_EXEC_STS,int32_t,(int32_t)(realtime_command_dispatcher->prev.sts),PACKET,112,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVR}hs, +,RT_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(realtime_command_dispatcher->prev_err.time.total_cycle),PACKET,116,0,32,NONE,,,,,,,,ŐVR}hs, +,RT_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(realtime_command_dispatcher->prev_err.code),PACKET,120,0,16,NONE,,,,,,,,ŐVR}hID, +,RT_CMD_LAST_ERR_STS,int32_t,(int32_t)(realtime_command_dispatcher->prev_err.sts),PACKET,122,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVR}hs, +,RT_CMD_ERR_COUNTER,uint32_t,(uint32_t)(realtime_command_dispatcher->error_counter),PACKET,126,0,32,NONE,,,,,,,,nǃR}hsُJE^, +,TL0_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[0]),PACKET,130,0,32,NONE,,,,,,,,TL0R}hJE^, +,TL0_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[0])),PACKET,134,0,8,NONE,,,,,,,,TL0o^R}h, +,TL0_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[0].prev.time.total_cycle),PACKET,135,0,32,NONE,,,,,,,,ŐVTL0R}hs, +,TL0_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev.code),PACKET,139,0,16,NONE,,,,,,,,ŐVTL0R}hID, +,TL0_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[0].prev.sts),PACKET,141,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL0R}hs, +,TL0_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[0].prev_err.time.total_cycle),PACKET,145,0,32,NONE,,,,,,,,ŐVTL0R}hs, +,TL0_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev_err.code),PACKET,149,0,16,NONE,,,,,,,,ŐVTL0R}hID, +,TL0_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[0].prev_err.sts),PACKET,151,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL0R}hs, +,TL0_CMD_ERR_COUNTER,uint32_t,(uint32_t)(timeline_command_dispatcher[0].error_counter),PACKET,155,0,32,NONE,,,,,,,,nǃR}hsُJE^, +,TL0_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[0].stop_on_error),PACKET,159,0,8,STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL0_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[0].lockout),PACKET,160,0,8,STATUS,,,,,,,0=FALSE:G@@ 1=TRUE:R,, +,TL0_NEXT_TIME,uint32_t,(PL_is_empty(&(PH_tl_cmd_list[0])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[0]))->packet))),PACKET,161,0,32,NONE,,,,,,,,TL0R}hs,ϐw肪ςȂƂɁc +,TL0_NEXT_ID,uint16_t,(uint16_t)(PL_is_empty(&(PH_tl_cmd_list[0])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[0]))->packet))),PACKET,165,0,16,NONE,,,,,,,,TL0R}hID,ϐw肪ςȂƂɁc +,TL1_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[1]),PACKET,167,0,32,NONE,,,,,,,,TL1R}hJE^, +,TL1_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[1])),PACKET,171,0,8,NONE,,,,,,,,TL1o^R}h, +,TL1_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[1].prev.time.total_cycle),PACKET,172,0,32,NONE,,,,,,,,ŐVTL1R}hs, +,TL1_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[1].prev.code),PACKET,176,0,16,NONE,,,,,,,,ŐVTL1R}hID, +,TL1_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[1].prev.sts),PACKET,178,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL1R}hs, +,TL1_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[1].prev_err.time.total_cycle),PACKET,182,0,32,NONE,,,,,,,,ŐVTL1R}hs, +,TL1_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[1].prev_err.code),PACKET,186,0,16,NONE,,,,,,,,ŐVTL1R}hID, +,TL1_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[1].prev_err.sts),PACKET,188,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL1R}hs, +,TL1_CMD_ERR_COUNTER,uint32_t,(uint32_t)(timeline_command_dispatcher[1].error_counter),PACKET,192,0,32,NONE,,,,,,,,nǃR}hsُJE^, +,TL1_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[1].stop_on_error),PACKET,196,0,8,STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL1_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[1].lockout),PACKET,197,0,8,STATUS,,,,,,,0=FALSE:G@@ 1=TRUE:R,, +,TL1_NEXT_TIME,uint32_t,(PL_is_empty(&(PH_tl_cmd_list[1])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[1]))->packet))),PACKET,198,0,32,NONE,,,,,,,,TL1R}hs,ϐw肪ςȂƂɁc +,TL1_NEXT_ID,uint16_t,(uint16_t)(PL_is_empty(&(PH_tl_cmd_list[1])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[1]))->packet))),PACKET,202,0,16,NONE,,,,,,,,TL1R}hID,ϐw肪ςȂƂɁc +,TL2_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[2]),PACKET,204,0,32,NONE,,,,,,,,TL1R}hJE^, +,TL2_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[2])),PACKET,208,0,8,NONE,,,,,,,,TL1o^R}h, +,TL2_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[2].prev.time.total_cycle),PACKET,209,0,32,NONE,,,,,,,,ŐVTL1R}hs, +,TL2_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[2].prev.code),PACKET,213,0,16,NONE,,,,,,,,ŐVTL1R}hID, +,TL2_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[2].prev.sts),PACKET,215,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL1R}hs, +,TL2_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[2].prev_err.time.total_cycle),PACKET,219,0,32,NONE,,,,,,,,ŐVTL1R}hs, +,TL2_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[2].prev_err.code),PACKET,223,0,16,NONE,,,,,,,,ŐVTL1R}hID, +,TL2_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[2].prev_err.sts),PACKET,225,0,32,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL1R}hs, +,TL2_CMD_ERR_COUNTER,uint32_t,(uint32_t)(timeline_command_dispatcher[2].error_counter),PACKET,229,0,32,NONE,,,,,,,,nǃR}hsُJE^, +,TL2_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[2].stop_on_error),PACKET,233,0,8,STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL2_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[2].lockout),PACKET,234,0,8,STATUS,,,,,,,0=FALSE:G@@ 1=TRUE:R,, +,TL2_NEXT_TIME,uint32_t,(PL_is_empty(&(PH_tl_cmd_list[2])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[2]))->packet))),PACKET,235,0,32,NONE,,,,,,,,TL1R}hs,ϐw肪ςȂƂɁc +,TL2_NEXT_ID,uint16_t,(uint16_t)(PL_is_empty(&(PH_tl_cmd_list[2])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[2]))->packet))),PACKET,239,0,16,NONE,,,,,,,,TL1R}hID,ϐw肪ςȂƂɁc +,BCT_BLK_PTR,uint8_t,(uint8_t)(block_command_table->pos.block),PACKET,241,0,8,NONE,,,,,,,,BCT ubN|C^, +,BCT_CMD_PTR,uint8_t,(uint8_t)(block_command_table->pos.cmd),PACKET,242,0,8,NONE,,,,,,,,BCT R}h|C^, +,BCT_REGD_TIME,uint32_t,((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,243,0,32,NONE,,,,,,,,BCT o^R}h,ϐw肪ςȂƂɁc +,BCT_REGD_ID,uint16_t,(uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,247,0,16,NONE,,,,,,,,BCT o^R}hID,ϐw肪ςȂƂɁc +,MS_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,249,0,8,NONE,,,,,,,,CCSDS MS VCDU gp, +,MS_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval),PACKET,250,0,32,NONE,,,,,,,,TL0R}hJE^, +,RP_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval),PACKET,254,0,32,NONE,,,,,,,,TL0R}hJE^, +,MS_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_ms_tlm_list),PACKET,258,0,32,NONE,,,,,,,,TL0R}hJE^, +,MS_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list)),PACKET,262,0,8,NONE,,,,,,,,TL0o^R}h, +,ST_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_st_tlm_list),PACKET,263,0,32,NONE,,,,,,,,TL0R}hJE^, +,ST_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_st_tlm_list)),PACKET,267,0,8,NONE,,,,,,,,TL0o^R}h, +,RP_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rp_tlm_list),PACKET,268,0,32,NONE,,,,,,,,TL0R}hJE^, +,RP_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_rp_tlm_list)),PACKET,272,0,8,NONE,,,,,,,,TL0o^R}h, +,TCI_TX_CYCLE,uint32_t,(uint32_t)gs_driver->latest_info->send_cycle,PACKET,273,0,32,NONE,,,,,,,,Z::oTCN, +,TCI_TX_BITRATE,uint32_t,gs_driver->driver_ccsds.ccsds_config.bitrate,PACKET,277,0,32,NONE,,,,,,,,Z::orbg[g, +,TCI_VCID,uint8_t,(uint8_t)(gs_driver->info[2].vcid),PACKET,281,0,8,NONE,,,,,,,,\::oVCID, +,TCI_VCDU_COUNTER,uint32_t,gs_driver->latest_info->vcdu_counter,PACKET,282,0,32,NONE,,,,,,,,Z::oVCDUJE^, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/calced_data/SAMPLE_AOBC_TLM_DB_AOBC_HK.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/calced_data/SAMPLE_AOBC_TLM_DB_AOBC_HK.csv new file mode 100644 index 000000000..926f9921b --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBaseAobc/TLM_DB/calced_data/SAMPLE_AOBC_TLM_DB_AOBC_HK.csv @@ -0,0 +1,500 @@ +,Target,OBC,Local Var,,,,,,,,,,,,,, +,PacketID,0x91,,,,,,,,,,,,,,, +,Enable/Disable,ENABLE,,,,,,,,,,,,,,, +,IsRestricted,FALSE,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,,,,,,,,Description,Note +,Name,Var.%%##Type,Variable or Function Name,Ext.%%##Type,Pos. Desiginator,,,Conv.%%##Type,Poly (a_i * x^i),,,,,,Status,, +,,,,,Octet%%##Pos.,bit%%##Pos.,bit%%##Len.,,a0,a1,a2,a3,a4,a5,,, +,PH.VER,uint16_t,,PACKET,0,0,3,NONE,,,,,,,,, +,PH.TYPE,,,PACKET,0,3,1,NONE,,,,,,,,, +,PH.SH_FLAG,,,PACKET,0,4,1,NONE,,,,,,,,, +,PH.APID,,,PACKET,0,5,11,NONE,,,,,,,,, +,PH.SEQ_FLAG,uint16_t,,PACKET,2,0,2,NONE,,,,,,,,, +,PH.SEQ_COUNT,,,PACKET,2,2,14,NONE,,,,,,,,, +,PH.PACKET_LEN,uint16_t,,PACKET,4,0,16,NONE,,,,,,,,, +,SH.VER,uint8_t,,PACKET,6,0,8,NONE,,,,,,,,, +,SH.TI,uint32_t,,PACKET,7,0,32,NONE,,,,,,,,, +,SH.TLM_ID,uint8_t,,PACKET,11,0,8,HEX,,,,,,,,, +,SH.GLOBAL_TIME,double,,PACKET,12,0,64,NONE,,,,,,,,, +,SH.ON_BOARD_SUBNET_TIME,uint32_t,,PACKET,20,0,32,NONE,,,,,,,,, +,SH.DEST_FLAGS,uint8_t,,PACKET,24,0,8,HEX,,,,,,,,, +,SH.DR_PARTITION,uint8_t,,PACKET,25,0,8,NONE,,,,,,,,, +,OBC_TM_MODE_TIME,uint32_t,TMGR_get_master_clock().mode_cycle,PACKET,26,0,32,NONE,,,,,,,,, +,OBC_TM_UNIXTIME_AT_TI0,double,TMGR_get_unixtime_at_ti0(),PACKET,30,0,64,NONE,,,,,,,,, +,OBC_MM_OPSMODE,uint8_t,(uint8_t)(mode_manager->current_id),PACKET,38,0,8,STATUS,,,,,,,0=START_UP@@1=INITIAL@@2=GND_TEST@@3=WDFAR@@4=RTC_HIGH_RATE@@5=5@@6=6@@7=7@@8=8@@9=9@@10=10@@11=11@@12=12@@13=13@@14=14@@15=15@@16=MAX@@*=N/A,, +,OBC_MM_STS,uint8_t,(uint8_t)( ((uint8_t)(mode_manager->stat) << 7 & 0x80) | ((uint8_t)(mode_manager->previous_id) & 0x7F) ),PACKET,39,0,1,STATUS,,,,,,,0=FINISHED@@1=PROGRESS@@*=N/A,, +,OBC_MM_OPSMODE_PREV,,,PACKET,39,1,7,STATUS,,,,,,,0=START_UP@@1=INITIAL@@2=GND_TEST@@3=WDFAR@@4=RTC_HIGH_RATE@@5=5@@6=6@@7=7@@8=8@@9=9@@10=10@@11=11@@12=12@@13=13@@14=14@@15=15@@16=MAX@@*=N/A,, +,OBC_TDSP_CURRENT_ID,uint16_t,TDSP_info->task_list_id,PACKET,40,0,16,NONE,,,,,,,,, +,OBC_TCF_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rec_status,PACKET,42,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=ERROR,TCFrame M, +,OBC_TCF_LAST_RECV_TIME,uint32_t,(uint32_t)gs_driver->latest_info->last_rec_time,PACKET,43,0,32,NONE,,,,,,,,ŐVTCFrameM, +,OBC_TCP_LAST_RECV_ACK,uint8_t,(uint8_t)(gs_driver->latest_info->cmd_ack),PACKET,47,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=RT_ACPT@@ 2=RT_FWD@@ 3=LENGTH@@ 4=CRC@@ 5=TO_ID@@ 6=TC_DISC@@ 7=CM_TYPE@@ 8=LST_FUL@@ 9=TL_ACPT@@ 10=TL_PAST@@ 11=TL_EXST@@ 12=TL_NEXE@@ 13=TL_NFND@@ 14=BL_ACPT@@ 15=BL_BLK#@@ 16=BL_CMD#@@ 17=BL_ISOR@@ 18=BL_INAC@@ 19=BL_COMB@@ 20=TLM_DST@@ 21=UNKNOWN,ŐVTCPacketM, +,OBC_GS_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_gs_cmd_list),PACKET,48,0,32,NONE,,,,,,,,nǃR}hJE^, +,OBC_GS_CMD_LAST_EXEC_TIME,uint32_t,gs_command_dispatcher->prev.time.total_cycle,PACKET,52,0,32,NONE,,,,,,,,ŐVnǃR}hs, +,OBC_GS_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(gs_command_dispatcher->prev.code),PACKET,56,0,16,NONE,,,,,,,,ŐVnǃR}hID, +,OBC_GS_CMD_LAST_EXEC_STS,int8_t,(int8_t)(gs_command_dispatcher->prev.sts),PACKET,58,0,8,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVnǃR}hs, +,OBC_GS_CMD_LAST_ERR_TIME,uint32_t,gs_command_dispatcher->prev_err.time.total_cycle,PACKET,59,0,32,NONE,,,,,,,,nLjُR}hs, +,OBC_GS_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(gs_command_dispatcher->prev_err.code),PACKET,63,0,16,NONE,,,,,,,,nLjُR}hID, +,OBC_GS_CMD_LAST_ERR_STS,int8_t,(int8_t)(gs_command_dispatcher->prev_err.sts),PACKET,65,0,8,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,nLjُR}hs, +,OBC_TL0_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[0]),PACKET,66,0,32,NONE,,,,,,,,TL0R}hJE^, +,OBC_TL0_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[0])),PACKET,70,0,8,NONE,,,,,,,,TL0o^R}h, +,OBC_TL0_CMD_LAST_EXEC_TIME,uint32_t,timeline_command_dispatcher[0].prev.time.total_cycle,PACKET,71,0,32,NONE,,,,,,,,ŐVTL0R}hs, +,OBC_TL0_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev.code),PACKET,75,0,16,NONE,,,,,,,,ŐVTL0R}hID, +,OBC_TL0_CMD_LAST_EXEC_STS,int8_t,(int8_t)(timeline_command_dispatcher[0].prev.sts),PACKET,77,0,8,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,ŐVTL0R}hs, +,OBC_TL0_CMD_LAST_ERR_TIME,uint32_t,timeline_command_dispatcher[0].prev_err.time.total_cycle,PACKET,78,0,32,NONE,,,,,,,,TL0ُR}hs, +,OBC_TL0_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev_err.code),PACKET,82,0,16,NONE,,,,,,,,TL0ُR}hID, +,OBC_TL0_CMD_LAST_ERR_STS,int8_t,(int8_t)(timeline_command_dispatcher[0].prev_err.sts),PACKET,84,0,8,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,TL0ُR}hs, +,OBC_TL0_NEXT_TIME,uint32_t,(PL_is_empty(&(PH_tl_cmd_list[0])) ? 0 : (uint32_t)CCP_get_ti((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[0]))->packet))),PACKET,85,0,32,NONE,,,,,,,,TL0R}hs,ϐw肪ςȂƂɁc +,OBC_TL0_NEXT_ID,uint16_t,(uint16_t)(PL_is_empty(&(PH_tl_cmd_list[0])) ? 0 : CCP_get_id((const CommonCmdPacket*)(PL_get_head(&(PH_tl_cmd_list[0]))->packet))),PACKET,89,0,16,NONE,,,,,,,,TL0R}hID,ϐw肪ςȂƂɁc +,OBC_TL0_CMD_SOE_FLAG,uint8_t,(uint8_t)(((uint8_t)timeline_command_dispatcher[0].stop_on_error << 7 & 0x80) | ((uint8_t)timeline_command_dispatcher[0].lockout << 6 & 0x40) | ((uint8_t)timeline_command_dispatcher[1].stop_on_error << 5 & 0x20) | ((uint8_t)timeline_command_dispatcher[1].lockout << 4 & 0x10) | ((uint8_t)timeline_command_dispatcher[2].stop_on_error << 3 & 0x08) | ((uint8_t)timeline_command_dispatcher[2].lockout << 2 & 0x04) | (wdt_config->is_wdt_enable << 1 & 0x02) | (wdt_config->is_clear_enable & 0x01) ),PACKET,91,0,1,STATUS,,,,,,,0=DIS@@ 1=ENA,, +,OBC_TL0_CMD_LOCKOUT_FLAG,,,PACKET,91,1,1,STATUS,,,,,,,0=NO@@ 1=YES,, +,OBC_TL1_CMD_SOE_FLAG,,,PACKET,91,2,1,STATUS,,,,,,,0=DIS@@ 1=ENA,, +,OBC_TL1_CMD_LOCKOUT_FLAG,,,PACKET,91,3,1,STATUS,,,,,,,0=NO@@ 1=YES,, +,OBC_TL2_CMD_SOE_FLAG,,,PACKET,91,4,1,STATUS,,,,,,,0=DIS@@ 1=ENA,, +,OBC_TL2_CMD_LOCKOUT_FLAG,,,PACKET,91,5,1,STATUS,,,,,,,0=NO@@ 1=YES,, +,WDT.IS_ENABLE,,,PACKET,91,6,1,STATUS,,,,,,,0=DIS@@ 1=ENA,, +,WDT.IS_CLEAR_ENABLE,,,PACKET,91,7,1,STATUS,,,,,,,0=DIS@@ 1=ENA,, +,OBC_BCT_BLK_PTR,uint16_t,block_command_table->pos.block,PACKET,92,0,16,NONE,,,,,,,,BCT ubN|C^, +,OBC_BCT_CMD_PTR,uint8_t,(uint8_t)(block_command_table->pos.cmd),PACKET,94,0,8,NONE,,,,,,,,BCT R}h|C^, +,OBC_BCT_REGD_TIME,uint32_t,((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,95,0,32,NONE,,,,,,,,BCT o^R}h,ϐw肪ςȂƂɁc +,OBC_BCT_REGD_ID,uint16_t,(uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,99,0,16,NONE,,,,,,,,BCT o^R}hID,ϐw肪ςȂƂɁc +,EL.STATISTICS.RECORD_COUNTER_TOTAL,uint32_t,event_logger->statistics.record_counter_total,PACKET,101,0,32,NONE,,,,,,,,, +,EL.STATISTICS.RECORD_COUNTERS_HIGH,uint16_t,(uint16_t)event_logger->statistics.record_counters[EL_ERROR_LEVEL_HIGH],PACKET,105,0,16,NONE,,,,,,,,,f[^TCY炷߂u16 +,EL.STATISTICS.RECORD_COUNTERS_MIDDLE,uint16_t,(uint16_t)event_logger->statistics.record_counters[EL_ERROR_LEVEL_MIDDLE],PACKET,107,0,16,NONE,,,,,,,,,f[^TCY炷߂u16 +,EL.STATISTICS.RECORD_COUNTERS_LOW,uint16_t,(uint16_t)event_logger->statistics.record_counters[EL_ERROR_LEVEL_LOW],PACKET,109,0,16,NONE,,,,,,,,,f[^TCY炷߂u16 +,EL.STATISTICS.RECORD_COUNTERS_EL,uint16_t,(uint16_t)event_logger->statistics.record_counters[EL_ERROR_LEVEL_EL],PACKET,111,0,16,NONE,,,,,,,,,f[^TCY炷߂u16 +,EL.STATISTICS.RECORD_COUNTERS_EH,uint16_t,(uint16_t)event_logger->statistics.record_counters[EL_ERROR_LEVEL_EH],PACKET,113,0,16,NONE,,,,,,,,,f[^TCY炷߂u16 +,EL.LATEST_EVENT.GROUP,uint8_t,(uint8_t)event_logger->latest_event.group,PACKET,115,0,8,NONE,,,,,,,,, +,EL.LATEST_EVENT.LOCAL,uint32_t,event_logger->latest_event.local,PACKET,116,0,32,NONE,,,,,,,,, +,EL.LATEST_EVENT.ERR_LEVEL,uint8_t,(uint8_t)event_logger->latest_event.err_level,PACKET,120,0,8,STATUS,,,,,,,0=HIGH@@ 1=MIDDLE@@ 2=LOW@@ 3=EL@@ 4=EH@@ *=N/A,, +,EL.LATEST_EVENT.TIME.TOTAL_CYCLE,uint32_t,event_logger->latest_event.time.total_cycle,PACKET,121,0,32,NONE,,,,,,,,, +,EL.LATEST_EVENT.TIME.STEP,uint8_t,(uint8_t)event_logger->latest_event.time.step,PACKET,125,0,8,NONE,,,,,,,,, +,EL.LATEST_EVENT.NOTE,uint16_t,(uint16_t)event_logger->latest_event.note,PACKET,126,0,16,NONE,,,,,,,,,u8ɂĂ悢 +,EL.LATEST_HIGH_EVENT.GROUP,uint8_t,(uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH@@ 0)->group,PACKET,128,0,8,NONE,,,,,,,,, +,EL.LATEST_HIGH_EVENT.LOCAL,uint32_t,EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH@@ 0)->local,PACKET,129,0,32,NONE,,,,,,,,, +,EL.LATEST_HIGH_EVENT.TIME.TOTAL_CYCLE,uint32_t,EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH@@ 0)->time.total_cycle,PACKET,133,0,32,NONE,,,,,,,,, +,EL.LATEST_HIGH_EVENT.TIME.STEP,uint8_t,(uint8_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH@@ 0)->time.step,PACKET,137,0,8,NONE,,,,,,,,, +,EL.LATEST_HIGH_EVENT.NOTE,uint16_t,(uint16_t)EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL_HIGH@@ 0)->note,PACKET,138,0,16,NONE,,,,,,,,,u8ɂĂ悢 +,EH.LOG_TABLE.RESPOND_COUNTER,uint32_t,event_handler->log_table.respond_counter,PACKET,140,0,32,NONE,,,,,,,,, +,ANOMALY_MOBC_AL_COUNTER,uint32_t,(uint32_t)anomaly_logger->counter,PACKET,144,0,32,NONE,,,,,,,,, +,ANOMALY_MOBC_AL_LATEST_TIME_MASTER,uint32_t,(uint32_t)anomaly_logger->records[(anomaly_logger->header == 0) ? 0 : anomaly_logger->header - 1].time.total_cycle,PACKET,148,0,32,NONE,,,,,,,,, +,ANOMALY_MOBC_AL_LATEST_TIME_STEP,uint8_t,(uint8_t)(anomaly_logger->records[(anomaly_logger->header == 0) ? 0 : anomaly_logger->header - 1].time.step & 0x000000ff),PACKET,152,0,8,NONE,,,,,,,,, +,ANOMALY_MOBC_AL_LATEST_CODE_GROUP,uint8_t,(uint8_t)(anomaly_logger->records[(anomaly_logger->header == 0) ? 0 : anomaly_logger->header - 1].code.group & 0x000000ff),PACKET,153,0,8,NONE,,,,,,,,, +,ANOMALY_MOBC_AL_LATEST_CODE_LOCAL,uint32_t,anomaly_logger->records[(anomaly_logger->header == 0) ? 0 : anomaly_logger->header - 1].code.local,PACKET,154,0,32,NONE,,,,,,,,, +,ANOMALY_MOBC_AL_LATEST_RUN_LENGTH,uint8_t,(uint8_t)(anomaly_logger->records[(anomaly_logger->header == 0) ? 0 : anomaly_logger->header - 1].run_length & 0x000000ff),PACKET,158,0,8,NONE,,,,,,,,, +,ANOMALY_MOBC_AL_HEADER,uint8_t,(uint8_t)(anomaly_logger->header),PACKET,159,0,8,NONE,,,,,,,,, +,OBC_TL1_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[1]),PACKET,160,0,32,NONE,,,,,,,,TL1R}hJE^, +,OBC_TL2_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[2]),PACKET,164,0,32,NONE,,,,,,,,TL1R}hJE^, +,OBC_TL1_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[1])),PACKET,168,0,8,NONE,,,,,,,,, +,OBC_TL2_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[2])),PACKET,169,0,8,NONE,,,,,,,,, +,OBC_AH_ACTION_COUNTER,uint8_t,(uint8_t)(anomaly_handler->action_counter),PACKET,170,0,8,NONE,,,,,,,,Am}Ή, +,OBC_AH_LATEST_ID,uint8_t,(uint8_t)(anomaly_handler->latest_id),PACKET,171,0,8,NONE,,,,,,,,Am}ΉID, +,OBC_AH_RESPOND_AT,uint32_t,(uint32_t)(anomaly_handler->respond_at.total_cycle),PACKET,172,0,32,NONE,,,,,,,,Am}Ή{, +,OBC_GS_CMD_ERR_COUNTER,uint8_t,(uint8_t)(gs_command_dispatcher->error_counter),PACKET,176,0,8,NONE,,,,,,,,Am}Ή, +,DCU.EXEC_LOGS0.CMD_CODE,uint16_t,(uint16_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[0]].cmd_code),PACKET,177,0,16,HEX,,,,,,,,, +,DCU.EXEC_LOGS0.STATUS,uint8_t,(uint8_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[0]].status),PACKET,179,0,8,STATUS,,,,,,,0=FINISHED@@ 1=PROGRESS@@ 2=ABORTED_BY_ERR@@ 3=ABORTED_BY_CMD@@ *=N/A,, +,DCU.EXEC_LOGS0.EXEC_COUNTER,uint16_t,(uint16_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[0]].exec_counter),PACKET,180,0,16,NONE,,,,,,,,, +,DCU.EXEC_LOGS0.LAST_EXEC_STS,int8_t,(int8_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[0]].last_exec_sts),PACKET,182,0,8,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,, +,DCU.EXEC_LOGS0.LAST_EXEC_TIME.TOTAL_CYCLE,uint32_t,divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[0]].last_exec_time.total_cycle,PACKET,183,0,32,NONE,,,,,,,,, +,DCU.EXEC_LOGS1.CMD_CODE,uint16_t,(uint16_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[1]].cmd_code),PACKET,187,0,16,HEX,,,,,,,,, +,DCU.EXEC_LOGS1.STATUS,uint8_t,(uint8_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[1]].status),PACKET,189,0,8,STATUS,,,,,,,0=FINISHED@@ 1=PROGRESS@@ 2=ABORTED_BY_ERR@@ 3=ABORTED_BY_CMD@@ *=N/A,, +,DCU.EXEC_LOGS1.EXEC_COUNTER,uint16_t,(uint16_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[1]].exec_counter),PACKET,190,0,16,NONE,,,,,,,,, +,DCU.EXEC_LOGS1.LAST_EXEC_STS,int8_t,(int8_t)(divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[1]].last_exec_sts),PACKET,192,0,8,STATUS,,,,,,,0=SUC@@ 1=LEN@@ 2=PRM@@ 3=CNT@@ 4=NDF@@ 5=RUT@@ 6=FMT@@ *=ERR,, +,DCU.EXEC_LOGS1.LAST_EXEC_TIME.TOTAL_CYCLE,uint32_t,divided_cmd_utility->exec_logs[divided_cmd_utility->exec_log_order[1]].last_exec_time.total_cycle,PACKET,193,0,32,NONE,,,,,,,,, +,GIT_REV_CORE,uint32_t,GIT_REV_CORE_SHORT,PACKET,197,0,32,HEX,,,,,,,,, +,GIT_REV_USER,uint32_t,GIT_REV_USER_SHORT,PACKET,201,0,32,HEX,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/port_config.h b/Examples/minimum_user_for_s2e/src/src_user/Settings/port_config.h index 2edff218c..9739f8e94 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Settings/port_config.h +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/port_config.h @@ -4,8 +4,8 @@ // ============================================== // // = UART関連のポート設定 = // // ============================================== // -#define PORT_CH_RS422_MOBC_EXT (0) //!< RS-422 UART ch2 -#define PORT_CH_RS422_SAMPLE1 (1) //!< RS-422 UART ch2 +#define PORT_CH_RS422_MOBC_EXT (0) //!< RS-422 UART ch1 +#define PORT_CH_RS422_AOBC (1) //!< RS-422 UART ch2 #define PORT_CH_RS422_SAMPLE2 (2) //!< RS-422 UART ch3 #define PORT_CH_RS422_SAMPLE3 (3) //!< RS-422 UART ch4 #define PORT_CH_RS422_SAMPLE4 (4) //!< RS-422 UART ch5 diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_definitions.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_definitions.c index b268a5ba0..bd54c94a2 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_definitions.c +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_definitions.c @@ -31,6 +31,10 @@ static int Tlm_HK_(unsigned char* contents, int max_len); static int Tlm_GIT_REV_(unsigned char* contents, int max_len); static int Tlm_UART_TEST_(unsigned char* contents, int max_len); +// AOBC TLM +static int Tlm_AOBC_AOBC_(unsigned char* contents, int max_len); +static int Tlm_AOBC_HK_(unsigned char* contents, int max_len); + void TF_load_tlm_table(TF_TlmInfo tlm_table[TF_MAX_TLMS]) { tlm_table[Tlm_CODE_MOBC].tlm_func = Tlm_MOBC_; @@ -55,6 +59,10 @@ void TF_load_tlm_table(TF_TlmInfo tlm_table[TF_MAX_TLMS]) tlm_table[Tlm_CODE_HK].tlm_func = Tlm_HK_; tlm_table[Tlm_CODE_GIT_REV].tlm_func = Tlm_GIT_REV_; tlm_table[Tlm_CODE_UART_TEST].tlm_func = Tlm_UART_TEST_; + + // AOBC TLM + tlm_table[Tlm_CODE_AOBC_AOBC].tlm_func = Tlm_AOBC_AOBC_; + tlm_table[Tlm_CODE_AOBC_HK].tlm_func = Tlm_AOBC_HK_; } static int Tlm_MOBC_(unsigned char* contents, int max_len) @@ -3421,4 +3429,26 @@ static int Tlm_UART_TEST_(unsigned char* contents, int max_len) return 25; } +static int Tlm_AOBC_AOBC_(unsigned char* contents, int max_len) +{ + int buffer_size = aobc_buffer->aobc_aobc.size; + + if (buffer_size > max_len) { return TF_TOO_SHORT_LEN; } + + memcpy(contents, aobc_buffer->aobc_aobc.buffer, (size_t)buffer_size); + + return buffer_size; +} + +static int Tlm_AOBC_HK_(unsigned char* contents, int max_len) +{ + int buffer_size = aobc_buffer->aobc_hk.size; + + if (buffer_size > max_len) { return TF_TOO_SHORT_LEN; } + + memcpy(contents, aobc_buffer->aobc_hk.buffer, (size_t)buffer_size); + + return buffer_size; +} + #pragma section diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_definitions.h b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_definitions.h index 2693d6673..7b63decc7 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_definitions.h +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_definitions.h @@ -31,6 +31,14 @@ typedef enum Tlm_CODE_GIT_REV = 0xf1, Tlm_CODE_UART_TEST = 0xf8, + // AOBC TLM + Tlm_CODE_AOBC_AOBC = 0x90, + Tlm_CODE_AOBC_HK = 0x91, + + // FIXME: + // 他OBCのTLMをまとめたため,IDが昇順となっていない + // TLM_CODE_MAX が意味をなさなくなってしまうが,他で使われていないため,一旦このままにする(今後解決する実装) + TLM_CODE_MAX } TLM_CODE; diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_source.h b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_source.h index 4d380599b..0d50aabd7 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_source.h +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_source.h @@ -16,6 +16,7 @@ #include #include "../Applications/app_headers.h" #include "../Library/git_revision.h" +#include "../Drivers/Aocs/aobc_telemetry_buffer.h" #include "../Drivers/Com/gs_validate.h" #include "../Settings/build_settings.h" diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/user_packet_handler.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/user_packet_handler.c index aec84aaf0..f2536f8fb 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/user_packet_handler.c +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/user_packet_handler.c @@ -5,8 +5,8 @@ */ #include "user_packet_handler.h" #include +#include "../Applications/DriverInstances/di_aobc.h" // #include "../Applications/DriverInstances/di_tobc.h" -// #include "../Applications/DriverInstances/di_aobc.h" #define PH_AOBC_CMD_LIST_MAX (16) //!< AOBC CMD QUEUEサイズ #define PH_TOBC_CMD_LIST_MAX (16) //!< TOBC CMD QUEUEサイズ @@ -54,7 +54,7 @@ CCP_EXEC_STS PH_user_cmd_router(const CommonCmdPacket* packet) { case APID_AOBC_CMD: // AOBCに配送 - // return DI_AOBC_dispatch_command(packet); + return DI_AOBC_dispatch_command(packet); case APID_TOBC_CMD: // TOBCに配送 // return DI_TOBC_dispatch_command(packet); @@ -67,12 +67,9 @@ CCP_EXEC_STS PH_user_cmd_router(const CommonCmdPacket* packet) static PH_ACK PH_add_aobc_cmd_(const CommonCmdPacket* packet) { - (void)packet; -#if 0 PL_ACK ack = PL_push_back(&PH_aobc_cmd_list, packet); if (ack != PL_SUCCESS) return PH_PL_LIST_FULL; -#endif return PH_SUCCESS; }