diff --git a/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_gs.c b/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_gs.c index 9551ceb8f..5508dcca7 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_gs.c +++ b/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_gs.c @@ -57,15 +57,7 @@ static void DI_GS_cmd_packet_handler_init_(void) static void DI_GS_cmd_packet_handler_(void) { - uint8_t select; - - GS_rec_tcf(&gs_driver_); - - // Tlm更新 - for (select = 0; select < CCSDS_SELECT_NUM; ++select) - { - CCSDS_read_sequence((uint32_t)select, &gs_driver_.ccsds_info.uip_stat[select]); - } + GS_rec_tctf(&gs_driver_); // TODO: エラー処理 } @@ -201,18 +193,6 @@ CCP_EXEC_STS Cmd_DI_GS_SET_INFO(const CommonCmdPacket* packet) return CCP_EXEC_SUCCESS; } -CCP_EXEC_STS Cmd_DI_GS_CCSDS_READ_SEQUENCE(const CommonCmdPacket* packet) -{ - uint32_t select; - (void)packet; - for (select = 0; select < CCSDS_SELECT_NUM; ++select) - { - CCSDS_read_sequence(select, &gs_driver_.ccsds_info.uip_stat[select]); - } - - return CCP_EXEC_SUCCESS; -} - CCP_EXEC_STS Cmd_DI_GS_CCSDS_GET_BUFFER(const CommonCmdPacket* packet) { (void)packet; diff --git a/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_gs.h b/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_gs.h index 50b1c26aa..483dcf391 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_gs.h +++ b/Examples/minimum_user_for_s2e/src/src_user/Applications/DriverInstances/di_gs.h @@ -40,7 +40,6 @@ CCP_EXEC_STS Cmd_DI_GS_SET_RP_FLUSH_INTERVAL(const CommonCmdPacket* packet); CCP_EXEC_STS Cmd_DI_GS_SET_FARM_PW(const CommonCmdPacket* packet); CCP_EXEC_STS Cmd_DI_GS_SET_INFO(const CommonCmdPacket* packet); -CCP_EXEC_STS Cmd_DI_GS_CCSDS_READ_SEQUENCE(const CommonCmdPacket* packet); CCP_EXEC_STS Cmd_DI_GS_CCSDS_GET_BUFFER(const CommonCmdPacket* packet); CCP_EXEC_STS Cmd_DI_GS_CCSDS_SET_RATE(const CommonCmdPacket* packet); diff --git a/Examples/minimum_user_for_s2e/src/src_user/Applications/UserDefined/debug_apps.c b/Examples/minimum_user_for_s2e/src/src_user/Applications/UserDefined/debug_apps.c index 393ff8cc3..d442eb03c 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Applications/UserDefined/debug_apps.c +++ b/Examples/minimum_user_for_s2e/src/src_user/Applications/UserDefined/debug_apps.c @@ -85,7 +85,7 @@ void APP_DBG_print_cmd_status_(void) Printf("CMD: GS %3d, RT %3d, Ack %3d, Code 0x%02x, Sts %3d\n", (PL_count_executed_nodes(&PH_gs_cmd_list) & 0xff), (PL_count_executed_nodes(&PH_rt_cmd_list) & 0xff), - gs_driver->info[gs_driver->tlm_tx_port_type].cmd_ack, gs_command_dispatcher->prev.code, gs_command_dispatcher->prev.sts); + gs_driver->info[gs_driver->tlm_tx_port_type].rx.cmd_ack, gs_command_dispatcher->prev.code, gs_command_dispatcher->prev.sts); } void APP_DBG_print_event_logger0_(void) 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 index d653829a1..845d8ce0d 100644 --- 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 @@ -108,10 +108,10 @@ static DS_ERR_CODE AOBC_analyze_tlm_aobc_aobc_(const CommonTlmPacket* packet, AO 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.tctf_last_recv_ack), &(f[65]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tctf_validate_status), &(f[66]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tctf_last_recv_time), &(f[67]), 4); + endian_memcpy(&(aobc_driver->tlm_data.aobc_aobc.tctf_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); @@ -263,8 +263,8 @@ static DS_ERR_CODE AOBC_analyze_tlm_aobc_hk_(const CommonTlmPacket* packet, AOBC 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_tctf_last_recv_ack), &(f[42]), 1); + endian_memcpy(&(aobc_driver->tlm_data.aobc_hk.obc_tctf_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); 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 index 1196edd7e..fba504559 100644 --- 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 @@ -42,10 +42,10 @@ typedef struct 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 tctf_last_recv_ack; + uint8_t tctf_validate_status; + uint32_t tctf_last_recv_time; + uint8_t tctf_farm_pw; uint8_t tcp_last_recv_ack; uint8_t tlm_tx_port_type; uint32_t gs_cmd_counter; @@ -149,8 +149,8 @@ typedef struct 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_tctf_last_recv_ack; + uint32_t obc_tctf_last_recv_time; uint8_t obc_tcp_last_recv_ack; uint32_t obc_gs_cmd_counter; uint32_t obc_gs_cmd_last_exec_time; diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.c b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.c index 7b5993c55..19eefac9b 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.c +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.c @@ -8,24 +8,24 @@ #include #include "../../IfWrapper/ccsds_user.h" -#include "../../TlmCmd/Ccsds/TCFrame.h" +#include "../../TlmCmd/Ccsds/tc_transfer_frame.h" #include #include +#include #include "../../Library/stdint.h" #define GS_RX_HEADER_SIZE (2) -#define GS_RX_FRAME_SIZE (-1) // 可変長 #define GS_RX_FRAMELENGTH_TYPE_SIZE (2) #define GS_TX_stream (0) // どれでも良いがとりあえず 0 で #define GS_RX_HEADER_NUM (3) #if GS_RX_HEADER_NUM > DS_STREAM_MAX - #error GS RX HEADER NUM TOO MANY +#error GS RX HEADER NUM TOO MANY #endif -// header -static const uint8_t GS_rx_header_[GS_RX_HEADER_NUM][GS_RX_HEADER_SIZE] = {{0x03, 0x5C}, {0x23, 0x5C}, {0x33, 0x5C} }; // FIXME: 直す +// それぞれ AD, BD, BC +static uint8_t GS_rx_header_[GS_RX_HEADER_NUM][GS_RX_HEADER_SIZE]; static uint8_t GS_tx_frame_[VCDU_LEN]; /** @@ -74,6 +74,16 @@ int GS_init(GS_Driver* gs_driver, uint8_t uart_ch) gs_driver->driver_uart.uart_config.data_length = UART_DATA_LENGTH_8BIT; gs_driver->driver_uart.uart_config.stop_bit = UART_STOP_BIT_1BIT; + memset(GS_rx_header_, 0x00, sizeof(GS_rx_header_)); + GS_rx_header_[0][0] |= (uint8_t)((TCTF_TYPE_AD & 0x0f) << 4); + GS_rx_header_[1][0] |= (uint8_t)((TCTF_TYPE_BD & 0x0f) << 4); + GS_rx_header_[2][0] |= (uint8_t)((TCTF_TYPE_BC & 0x0f) << 4); + for (i = 0; i < GS_RX_HEADER_NUM; ++i) + { + GS_rx_header_[i][0] |= (uint8_t)((TCTF_SCID_SAMPLE_SATELLITE & 0x3ff) >> 8); + GS_rx_header_[i][1] |= (uint8_t)(TCTF_SCID_SAMPLE_SATELLITE & 0xff); + } + ret_ccsds = DS_init(&gs_driver->driver_ccsds.super, &gs_driver->driver_ccsds.ccsds_config, GS_load_ccsds_driver_super_init_settings_); ret_uart = DS_init(&gs_driver->driver_uart.super, &gs_driver->driver_uart.uart_config, GS_load_uart_driver_super_init_settings_); if (ret_ccsds != DS_ERR_CODE_OK || ret_uart != DS_ERR_CODE_OK) return 1; @@ -87,25 +97,22 @@ int GS_init(GS_Driver* gs_driver, uint8_t uart_ch) for (i = 0; i < GS_PORT_TYPE_NUM; ++i) { - gs_driver->info[i].rec_status = DS_ERR_CODE_OK; - gs_driver->info[i].last_rec_tcf_type = GS_TCF_TYPE_ENUM_UNKNOWN; - gs_driver->info[i].ad_rec_status = DS_ERR_CODE_OK; - gs_driver->info[i].bd_rec_status = DS_ERR_CODE_OK; - gs_driver->info[i].bd_rec_status = DS_ERR_CODE_OK; - gs_driver->info[i].tc_frame_validate_status = GS_VALIDATE_ERR_OK; - gs_driver->info[i].ret_from_if_rx = 0; - gs_driver->info[i].last_rec_time = 0; - gs_driver->info[i].cmd_ack = PH_ACK_SUCCESS; - - gs_driver->info[i].send_cycle = 0; - gs_driver->info[i].vcid = VCDU_VCID_UNKNOWN; - gs_driver->info[i].vcdu_counter = 0; + gs_driver->info[i].rx.rec_status = DS_ERR_CODE_OK; + gs_driver->info[i].rx.ret_from_if_rx = 0; + gs_driver->info[i].rx.last_dest_type = CCP_DEST_TYPE_TO_UNKOWN; + gs_driver->info[i].rx.last_rec_time = 0; + gs_driver->info[i].rx.cmd_ack = PH_ACK_SUCCESS; + + gs_driver->info[i].rx.tctf.last_rec_tctf_type = TCTF_TYPE_UNKNOWN; + gs_driver->info[i].rx.tctf.ad_rec_status = GS_VALIDATE_ERR_OK; + gs_driver->info[i].rx.tctf.bd_rec_status = GS_VALIDATE_ERR_OK; + gs_driver->info[i].rx.tctf.bd_rec_status = GS_VALIDATE_ERR_OK; + + gs_driver->info[i].tx.send_cycle = 0; + gs_driver->info[i].tx.vcid = VCDU_VCID_UNKNOWN; + gs_driver->info[i].tx.vcdu_counter = 0; } - for (i = 0; i < CCSDS_SELECT_NUM; ++i) - { - gs_driver->ccsds_info.uip_stat[i] = 0; - } gs_driver->ccsds_info.buffer_num = 8; return 0; @@ -142,17 +149,17 @@ static void GS_load_default_driver_super_init_settings_(DriverSuper* p_super) DSSC_set_tx_frame_size(p_stream_config, VCDU_LEN); // VCDU を送信 DSSC_set_rx_header(p_stream_config, GS_rx_header_[stream], GS_RX_HEADER_SIZE); - DSSC_set_rx_frame_size(p_stream_config, GS_RX_FRAME_SIZE); // 可変長 + DSSC_set_rx_frame_size(p_stream_config, -1); // 可変長 DSSC_set_rx_framelength_pos(p_stream_config, GS_RX_HEADER_SIZE); DSSC_set_rx_framelength_type_size(p_stream_config, GS_RX_FRAMELENGTH_TYPE_SIZE); - DSSC_set_rx_framelength_offset(p_stream_config, 1); // TCF の framelength は 0 起算 + DSSC_set_rx_framelength_offset(p_stream_config, 1); // TCTF の framelength は 0 起算 DSSC_set_data_analyzer(p_stream_config, GS_analyze_rec_data_); } } -int GS_rec_tcf(GS_Driver* gs_driver) +int GS_rec_tctf(GS_Driver* gs_driver) { - int i, stream; + uint8_t i, stream; for (i = 0; i < GS_PORT_TYPE_NUM; ++i) { @@ -168,10 +175,10 @@ int GS_rec_tcf(GS_Driver* gs_driver) } // TODO: これはエラー情報をきちんと把握したいので,アノマリ発行を入れる - gs_driver->info[i].rec_status = DS_receive(ds); - gs_driver->info[i].ret_from_if_rx = ds->config.rec_status_.ret_from_if_rx; + gs_driver->info[i].rx.rec_status = DS_receive(ds); + gs_driver->info[i].rx.ret_from_if_rx = ds->config.rec_status_.ret_from_if_rx; - if (gs_driver->info[i].rec_status != DS_ERR_CODE_OK) continue; + if (gs_driver->info[i].rx.rec_status != DS_ERR_CODE_OK) continue; for (stream = 0; stream < GS_RX_HEADER_NUM; ++stream) { @@ -180,26 +187,7 @@ int GS_rec_tcf(GS_Driver* gs_driver) p_stream_config = &ds->stream_config[stream]; if (DSSC_get_rec_status(p_stream_config)->status_code != DS_STREAM_REC_STATUS_FIXED_FRAME) continue; - gs_driver->info[i].rec_status = DS_analyze_rec_data(ds, (uint8_t)stream, gs_driver); - - gs_driver->info[i].last_rec_tcf_type = (GS_TCF_TYPE_ENUM)stream; - switch (gs_driver->info[i].last_rec_tcf_type) - { - case GS_TCF_TYPE_ENUM_AD_CMD: - gs_driver->info[i].ad_rec_status = gs_driver->info[i].rec_status; - break; - - case GS_TCF_TYPE_ENUM_BC_CMD: - gs_driver->info[i].bc_rec_status = gs_driver->info[i].rec_status; - break; - - case GS_TCF_TYPE_ENUM_BD_CMD: - gs_driver->info[i].bd_rec_status = gs_driver->info[i].rec_status; - break; - - default: - break; - } + gs_driver->info[i].rx.rec_status = DS_analyze_rec_data(ds, stream, gs_driver); } } @@ -209,9 +197,12 @@ int GS_rec_tcf(GS_Driver* gs_driver) static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* p_driver) { const uint8_t* gs_rx_data = DSSC_get_rx_frame(p_stream_config); - const TCF* tc_frame = (const TCF*)gs_rx_data; // 非自明なcast + const TcTransferFrame* tctf = TCTF_convert_from_bytes_to_tctf(gs_rx_data); GS_Driver* gs_driver = (GS_Driver*)p_driver; GS_PORT_TYPE driver_index; + GS_VALIDATE_ERR tctf_validate_status; + const TcSegment* tcs; + const CmdSpacePacket* csp; // アドレス計算で CCSDS か UART か判別 if ((uint32_t)p_stream_config < (uint32_t)&gs_driver->driver_uart) @@ -223,15 +214,35 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* driver_index = GS_PORT_TYPE_UART; } - gs_driver->info[driver_index].tc_frame_validate_status = GS_validate_tc_frame(tc_frame); - if (gs_driver->info[driver_index].tc_frame_validate_status != GS_VALIDATE_ERR_OK) + tctf_validate_status = GS_validate_tctf(tctf); + + gs_driver->info[driver_index].rx.tctf.last_rec_tctf_type = TCTF_get_type(tctf); + switch (gs_driver->info[driver_index].rx.tctf.last_rec_tctf_type) { - return DS_ERR_CODE_ERR; + case TCTF_TYPE_AD: + gs_driver->info[driver_index].rx.tctf.ad_rec_status = tctf_validate_status; + break; + + case TCTF_TYPE_BC: + gs_driver->info[driver_index].rx.tctf.bc_rec_status = tctf_validate_status; + break; + + case TCTF_TYPE_BD: + gs_driver->info[driver_index].rx.tctf.bd_rec_status = tctf_validate_status; + break; + + default: + // not reached + break; } - gs_driver->info[driver_index].last_dest_type = CSP_get_dest_type(&tc_frame->tcs.tcp); - gs_driver->info[driver_index].cmd_ack = PH_analyze_cmd_packet(&tc_frame->tcs.tcp); // 受信コマンドパケット解析 - gs_driver->info[driver_index].last_rec_time = TMGR_get_master_total_cycle(); + if (tctf_validate_status != GS_VALIDATE_ERR_OK) return DS_ERR_CODE_ERR; + + tcs = TCTF_get_tc_segment(tctf); + csp = TCS_get_command_space_packet(tcs); + gs_driver->info[driver_index].rx.last_dest_type = CSP_get_dest_type(csp); + gs_driver->info[driver_index].rx.last_rec_time = TMGR_get_master_total_cycle(); + gs_driver->info[driver_index].rx.cmd_ack = PH_analyze_cmd_packet(csp); // 受信コマンドパケット解析 return DS_ERR_CODE_OK; } @@ -266,9 +277,9 @@ DS_CMD_ERR_CODE GS_send_vcdu(GS_Driver* gs_driver, const VCDU* vcdu) if (!gs_driver->is_ccsds_tx_valid || !gs_driver->ccsds_info.buffer_num) continue; } - gs_driver->info[i].send_cycle = TMGR_get_master_total_cycle(); - gs_driver->info[i].vcid = VCDU_get_vcid(vcdu); - gs_driver->info[i].vcdu_counter = VCDU_get_vcdu_counter(vcdu); + gs_driver->info[i].tx.send_cycle = TMGR_get_master_total_cycle(); + gs_driver->info[i].tx.vcid = VCDU_get_vcid(vcdu); + gs_driver->info[i].tx.vcdu_counter = VCDU_get_vcdu_counter(vcdu); // DS 側の名称が cmd なだけで送信しているのは TLM if (i == GS_PORT_TYPE_CCSDS) diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.h b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.h index 018b9352f..2b6dc3c7b 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.h +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.h @@ -13,19 +13,6 @@ #include "../../TlmCmd/Ccsds/vcdu.h" #include "gs_validate.h" -/** - * @enum GS_TCF_TYPE_ENUM - * @note rx_header_ <-> stream で 各 CMD との対応の振り分けを行っている. その Index と対応させるため. - * @note uint8_t を想定 - */ -typedef enum -{ - GS_TCF_TYPE_ENUM_AD_CMD, - GS_TCF_TYPE_ENUM_BC_CMD, - GS_TCF_TYPE_ENUM_BD_CMD, - GS_TCF_TYPE_ENUM_UNKNOWN -} GS_TCF_TYPE_ENUM; - /** * @enum GS_PORT_TYPE * @brief GS の通信ポートは CCSDS と UART の 2 つある @@ -44,20 +31,29 @@ typedef enum */ typedef struct { - DS_ERR_CODE rec_status; //!< DriverSuper からの受信結果 - GS_TCF_TYPE_ENUM last_rec_tcf_type; //!< 最後に受信した tcf のタイプ - DS_ERR_CODE ad_rec_status; //!< AD CMD を受信したときの analyze 結果 - DS_ERR_CODE bc_rec_status; //!< BC CMD を受信したときの analyze 結果 - DS_ERR_CODE bd_rec_status; //!< BD CMD を受信したときの analyze 結果 - GS_VALIDATE_ERR tc_frame_validate_status; //!< TC Frame の検証結果 - int ret_from_if_rx; //!< UART or CCSDS からの返り値 - cycle_t last_rec_time; //!< 最後に受信した時刻 - CCP_DEST_TYPE last_dest_type; //!< 最後に受信したパケットの dest type - PH_ACK cmd_ack; //!< 受信した CMD の実行結果 + struct + { + DS_ERR_CODE rec_status; //!< DriverSuper からの受信結果 + int ret_from_if_rx; //!< UART or CCSDS からの返り値 + CCP_DEST_TYPE last_dest_type; //!< 最後に受信したパケットの dest type + cycle_t last_rec_time; //!< 最後に受信した時刻 + PH_ACK cmd_ack; //!< 受信した CMD の実行結果 + + struct + { + TCTF_TYPE last_rec_tctf_type; //!< 最後に受信した TC Transfer Frame のタイプ + GS_VALIDATE_ERR ad_rec_status; //!< AD CMD を受信したときの analyze 結果 + GS_VALIDATE_ERR bc_rec_status; //!< BC CMD を受信したときの analyze 結果 + GS_VALIDATE_ERR bd_rec_status; //!< BD CMD を受信したときの analyze 結果 + } tctf; + } rx; - cycle_t send_cycle; //!< 最後に送信したときの時刻 - VCDU_VCID vcid; //!< 送信した TLM のタイプ - uint32_t vcdu_counter; //!< VCDU counter + struct + { + cycle_t send_cycle; //!< 最後に送信したときの時刻 + VCDU_VCID vcid; //!< 送信した TLM のタイプ + uint32_t vcdu_counter; //!< VCDU counter + } tx; } GS_Info; /** @@ -95,11 +91,11 @@ typedef struct int GS_init(GS_Driver* gs_driver, uint8_t uart_ch); /** - * @brief 地上から CMD を受信する. 形式は TCFrame + * @brief 地上から CMD を受信する. 形式は TC Transer Frame * @param[in] gs_driver: ドライバー * @return int: 0 */ -int GS_rec_tcf(GS_Driver* gs_driver); +int GS_rec_tctf(GS_Driver* gs_driver); /** * @brief 地上に向けて TLM を送信. 形式は VCDU diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.c b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.c index 9ce5834cc..6090ba6bf 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.c +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.c @@ -5,19 +5,36 @@ */ #include "gs_validate.h" +#include "../../TlmCmd/Ccsds/tc_segment.h" +#include +#define GS_RECEIVE_WINDOW (256) #define GS_POSITIVE_WINDOW_WIDTH_DEFAULT (64) // FIXME: 要検討 +#if 2 * GS_POSITIVE_WINDOW_WIDTH_DEFAULT >= GS_RECEIVE_WINDOW +#error POSITIVE WINDOW SETTINGS IS WRONG +#endif // 以下検証関数. 名前通り -static GS_VALIDATE_ERR GS_check_tcf_header_(const TCF* tc_frame); -static GS_VALIDATE_ERR GS_check_tcf_contents_(const TCF* tc_frame); -static GS_VALIDATE_ERR GS_check_tcs_headers_(const TCS* tc_segment); +static GS_VALIDATE_ERR GS_check_tctf_header_(const TcTransferFrame* tctf); + +static GS_VALIDATE_ERR GS_check_tc_segment_(const TcSegment* tc_segment); +static GS_VALIDATE_ERR GS_check_tcs_headers_(const TcSegment* tc_segment); static GS_VALIDATE_ERR GS_check_cmd_space_packet_headers_(const CmdSpacePacket* csp); -static GS_VALIDATE_ERR GS_check_fecw_(const uint8_t* data, size_t len); -static GS_VALIDATE_ERR GS_check_ad_cmd_(const TCF* tc_frame); -static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCF* tc_frame); -static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCF* tc_frame); +/** + * @note AD コマンド: COP-1 制御を使用し伝送順番のチェックを行う + */ +static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf); + +/** + * @note BD コマンド: COP-1 制御を使用しないため伝送順番のチェックは行わない + */ +static GS_VALIDATE_ERR GS_check_bd_cmd_(const TcTransferFrame* tctf); + +/** + * @note BC コマンド: COP-1 制御の制御コマンド, AD, BD と性質が異なる + */ +static GS_VALIDATE_ERR GS_check_bc_cmd_(const TcTransferFrame* tctf); static GS_ValiateInfo gs_validate_info_; const GS_ValiateInfo* const gs_validate_info = &gs_validate_info_; @@ -31,64 +48,65 @@ void GS_validate_init(void) gs_validate_info_.positive_window_width = GS_POSITIVE_WINDOW_WIDTH_DEFAULT; } -GS_VALIDATE_ERR GS_validate_tc_frame(const TCF* tc_frame) +GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ret; + uint8_t is_frame_error; + TCTF_TYPE tctf_type; - size_t frame_length = TCF_get_frame_len(tc_frame); - - // TODO WINGS側がまだ対応してないので一旦コメントアウト - GS_check_fecw_((const uint8_t*)tc_frame, frame_length); - - ret = GS_check_tcf_header_(tc_frame); + ret = GS_check_tctf_header_(tctf); if (ret != GS_VALIDATE_ERR_OK) return ret; + is_frame_error = TCTF_check_fecw(tctf); + if (!is_frame_error) return GS_VALIDATE_ERR_FECW_MISSMATCH; - switch (TCF_get_type(tc_frame)) + tctf_type = TCTF_get_type(tctf); + switch (tctf_type) { - case TCF_TYPE_AD: - ret = GS_check_ad_cmd_(tc_frame); + case TCTF_TYPE_AD: + ret = GS_check_ad_cmd_(tctf); break; - case TCF_TYPE_BC: - ret = GS_check_bc_cmd_(tc_frame); + case TCTF_TYPE_BD: + ret = GS_check_bd_cmd_(tctf); break; - case TCF_TYPE_BD: - ret = GS_check_bd_cmd_(tc_frame); + case TCTF_TYPE_BC: + ret = GS_check_bc_cmd_(tctf); break; default: - return GS_VALIDATE_ERR_TCF_TYPE; + return GS_VALIDATE_ERR_TCTF_TYPE; } return ret; } -static GS_VALIDATE_ERR GS_check_tcf_header_(const TCF* tc_frame) +static GS_VALIDATE_ERR GS_check_tctf_header_(const TcTransferFrame* tctf) { - if (TCF_get_ver(tc_frame) != TCF_VER_1) return GS_VALIDATE_ERR_TCF_VER; - // if (TCF_get_scid(tc_frame) != TCF_SCID_SAMPLE_SATELLITE) return GS_VALIDATE_ERR_TCF_SCID; // FIXME: テスト用に一旦コメントアウト - if (TCF_get_vcid(tc_frame) != TCF_VCID_REALTIME) return GS_VALIDATE_ERR_TCF_VCID; + if (TCTF_get_ver(tctf) != TCTF_VER_1) return GS_VALIDATE_ERR_TCTF_VER; + if (TCTF_get_scid(tctf) != TCTF_SCID_SAMPLE_SATELLITE) return GS_VALIDATE_ERR_TCTF_SCID; + if (TCTF_get_vcid(tctf) != TCTF_VCID_REALTIME) return GS_VALIDATE_ERR_TCTF_VCID; return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_tcf_contents_(const TCF* tc_frame) +static GS_VALIDATE_ERR GS_check_tc_segment_(const TcSegment* tc_segment) { GS_VALIDATE_ERR ack; + const CmdSpacePacket* csp = TCS_get_command_space_packet(tc_segment); - // TCSegment Header の固定値部分が妥当か確認する - ack = GS_check_tcs_headers_(&tc_frame->tcs); + // TcSegment Header の固定値部分が妥当か確認する + ack = GS_check_tcs_headers_(tc_segment); if (ack != GS_VALIDATE_ERR_OK) return ack; // CmdSpacePacket のヘッダのうち共通部分が妥当か確認する - ack = GS_check_cmd_space_packet_headers_(&tc_frame->tcs.tcp); + ack = GS_check_cmd_space_packet_headers_(csp); if (ack != GS_VALIDATE_ERR_OK) return ack; return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_tcs_headers_(const TCS* tc_segment) +static GS_VALIDATE_ERR GS_check_tcs_headers_(const TcSegment* tc_segment) { if (TCS_get_seq_flag(tc_segment) != TCS_SEQ_SINGLE) { @@ -108,22 +126,22 @@ static GS_VALIDATE_ERR GS_check_cmd_space_packet_headers_(const CmdSpacePacket* APID apid; // FIXME: 他の部分のチェックも入れる - if (CSP_get_ver(csp) != SP_VER_1) return GS_VALIDATE_ERR_TCP_VER; + if (CSP_get_ver(csp) != SP_VER_1) return GS_VALIDATE_ERR_CSP_VER; if (CSP_get_2nd_hdr_flag(csp) != SP_2ND_HDR_FLAG_PRESENT) { // ここではSecondary Headerが必須。 - return GS_VALIDATE_ERR_TCP_2ND_HDR_FLAG; + return GS_VALIDATE_ERR_CSP_2ND_HDR_FLAG; } if (CSP_get_type(csp) != SP_TYPE_CMD) { - return GS_VALIDATE_ERR_TCP_TYPE_IS_NOT_CMD; + return GS_VALIDATE_ERR_CSP_TYPE_IS_NOT_CMD; } apid = CSP_get_apid(csp); - if ( !( apid == APID_MOBC_CMD - || apid == APID_AOBC_CMD - || apid == APID_TOBC_CMD ) ) + if ( !( apid == APID_MOBC_CMD || + apid == APID_AOBC_CMD || + apid == APID_TOBC_CMD ) ) { return GS_VALIDATE_ERR_APID; } @@ -131,198 +149,126 @@ static GS_VALIDATE_ERR GS_check_cmd_space_packet_headers_(const CmdSpacePacket* // Sequence Flag が単パケットか確認する if (CSP_get_seq_flag(csp) != SP_SEQ_FLAG_SINGLE) { - return GS_VALIDATE_ERR_TCP_SEQ_IS_NOT_SINGLE; - } - - return GS_VALIDATE_ERR_OK; -} - -static GS_VALIDATE_ERR GS_check_fecw_(const uint8_t* data, size_t len) -{ - int i, j; - uint16_t shift_reg = 0xffff; // 初期値は全bitが1 - uint16_t xor_tap = 0x1021; // LSBは常時0とXORをとっていると考える。 - - // データ長だけループ - for (i = 0; i < len; ++i) - { - // MSB位置をshift_regと揃えるため8bit左シフト - uint16_t tmp = (uint16_t)(data[i] << 8); - - // ビット長だけループ - for (j = 0; j < 8; ++j) - { - // MSB同士のXORを比較 - if ((shift_reg ^ tmp) & 0x8000) - { - // 結果が1の場合はシフト+XOR - shift_reg <<= 1; - shift_reg ^= xor_tap; - } - else - { - // 結果が0の場合はシフトのみ - shift_reg <<= 1; - } - - // 次ビット評価のためシフト - tmp <<= 1; - } + return GS_VALIDATE_ERR_CSP_SEQ_IS_NOT_SINGLE; } - // データ+FECWが正常なら結果は0となる - if (shift_reg != 0) return GS_VALIDATE_ERR_FECW_MISSMATCH; - return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_ad_cmd_(const TCF* tc_frame) +static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ack; - int seq_diff; + const TcSegment* tc_segment = TCTF_get_tc_segment(tctf); + uint8_t seq_diff = (GS_RECEIVE_WINDOW + TCTF_get_frame_seq_num(tctf) - gs_validate_info_.type_a_counter) % GS_RECEIVE_WINDOW; if (gs_validate_info_.lockout_flag) return GS_VALIDATE_ERR_IN_LOCKOUT; - ack = GS_check_tcf_contents_(tc_frame); + ack = GS_check_tc_segment_(tc_segment); if (ack != GS_VALIDATE_ERR_OK) return ack; - seq_diff = TCF_get_frame_seq_num(tc_frame) - gs_validate_info_.type_a_counter; - - if (seq_diff < 0) - { - // Sequence Counterの値はmod-256なのでseq_diffの値が負の場合は - // 256を足して値の範囲を[1, 256]に変換 - seq_diff += 256; - } - + // N(R) == V(R)なら正常受信 if (seq_diff == 0) { - // seq_diffが0、すなわちN(R) == V(R)なら正常受信 - // 再送要求フラグのクリアとシーケンス数のインクリメント gs_validate_info_.retransmit_flag = 0; ++gs_validate_info_.type_a_counter; + return GS_VALIDATE_ERR_OK; + } + // 送信側が行き過ぎているのでパケット破棄して再送要求 + else if (seq_diff <= gs_validate_info_.positive_window_width) + { + gs_validate_info_.retransmit_flag = 1; + return GS_VALIDATE_ERR_FARM1_POSITIVE_WINDOW_AREA; } + // もう既に送られているので破棄 + else if ((256 - gs_validate_info_.positive_window_width) <= seq_diff) + { + return GS_VALIDATE_ERR_FARM1_NEGATIVE_WINDOW_AREA; + } + // 許容 window から外れているので破棄してロックアウト, BC コマンドでロックアウト解除要求を行う + // ロックアウトするので一切のコマンドを受け付けない else { - if (seq_diff < gs_validate_info_.positive_window_width) - { - gs_validate_info_.retransmit_flag = 1; - return GS_VALIDATE_ERR_FARM1_POSITIVE_WINDOW_AREA; - } - else if (seq_diff < (256 - gs_validate_info_.positive_window_width)) - { - gs_validate_info_.retransmit_flag = 1; - return GS_VALIDATE_ERR_FARM1_LOCKOUT_AREA; - } - else - { - if (seq_diff == 255) return GS_VALIDATE_ERR_FARM1_SAME_NUMBER; - else return GS_VALIDATE_ERR_FARM1_NEGATIVE_WINDOW_AREA; - } + gs_validate_info_.lockout_flag = 1; + return GS_VALIDATE_ERR_FARM1_LOCKOUT_AREA; } + // not reaced + return GS_VALIDATE_ERR_UNKNOWN; +} + +static GS_VALIDATE_ERR GS_check_bd_cmd_(const TcTransferFrame* tctf) +{ + GS_VALIDATE_ERR ack; + const TcSegment* tc_segment = TCTF_get_tc_segment(tctf); + + ack = GS_check_tc_segment_(tc_segment); + if (ack != GS_VALIDATE_ERR_OK) return ack; + + ++gs_validate_info_.type_b_counter; + return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCF* tc_frame) +// BCコマンドの種別を判定し、処理する +static GS_VALIDATE_ERR GS_check_bc_cmd_(const TcTransferFrame* tctf) { - // BCコマンドの種別を判定し、処理する。 - // TCFの構成がAD/BDコマンドに特化した形となっているため、 - // TCSやTCPのデータ構造を読み替えて処理を行っている。 - if (tc_frame->tcs.header[0] == TCF_BC_CMD_CODE_UNLOCK) + uint16_t length = TCTF_get_frame_len(tctf); + uint8_t offset = TCTF_HEADER_SIZE + TCTF_FECF_SIZE; + const TcSegment* tc_segment = TCTF_get_tc_segment(tctf); + + // BC コマンドは COP-1 制御の制御用コマンドで特殊なため少し構造が異なる + // Unlock + if (tc_segment->packet[0] == TCTF_BC_CMD_CODE_UNLOCK && length == offset + 1) { - // Unlockコマンドの場合はLockoutとRetransmitフラグをクリア gs_validate_info_.lockout_flag = 0; gs_validate_info_.retransmit_flag = 0; - // Type-B Coutnerの値を更新して処理終了 ++gs_validate_info_.type_b_counter; } - else if ((tc_frame->tcs.header[0] == TCF_BC_CMD_CODE_SET_VR_0) - && (tc_frame->tcs.tcp.packet[0] == TCF_BC_CMD_CODE_SET_VR_1)) + // SET V(R) + else if (tc_segment->packet[0] == TCTF_BC_CMD_CODE_SET_VR_1ST_BYTE && + tc_segment->packet[1] == TCTF_BC_CMD_CODE_SET_VR_2ND_BYTE && + length == offset + 3) { - // SET V(R)コマンドの場合 if (gs_validate_info_.lockout_flag == 0) { - // Lockout状態でない場合はType-Aカウンタの値を指定値に設定し - // Retransmitフラグをクリア - gs_validate_info_.type_a_counter = tc_frame->tcs.tcp.packet[1]; + gs_validate_info_.type_a_counter = tc_segment->packet[2]; gs_validate_info_.retransmit_flag = 0; } - // Type-B Coutnerの値を更新して処理終了 // Lockout状態でもType-B Counterの値は更新する ++gs_validate_info_.type_b_counter; } else { - // 上記以外の場合は不正と判断し異常終了 return GS_VALIDATE_ERR_INVALID_BC_CMD; } return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCF* tc_frame) -{ - GS_VALIDATE_ERR ack; - ack = GS_check_tcf_contents_(tc_frame); - if (ack != GS_VALIDATE_ERR_OK) return ack; - - ++gs_validate_info_.type_b_counter; - - return GS_VALIDATE_ERR_OK; -} - uint32_t GS_form_clcw(void) { // 値が0固定の項目は変数の初期化で代替し明示的には指定しない uint32_t clcw = 0; uint32_t val; - // [FIXME] TRPができたらここも直す.(2021/01/17) - /* - // XTRP-A Carrier Lock Status - if (xtrp1->xtrp_rx_sts.act_monitor.bit.career_lock == 1) - { - // Carrier Lock Onの場合はフラグ設定 - clcw |= 0x08000000; // **** 1*** **** **** **** **** **** **** - } - */ + // FIXME: Status Field + // ***x xx** **** **** **** **** **** **** // COP in Effect -> COP-1 clcw |= 0x01000000; // **** **01 **** **** **** **** **** **** - // [FIXME] TRPができたらここも直す.(2021/01/17) - /* - // Sub-Carrier Lock + Rx Bit Rate - if (xtrp1->xtrp_rx_sts.act_monitor.bit.sub_career_lock == 1) - { - // Sub-carrier Lock Onの場合はビットレート別のフラグ設定 - if (xtrp1->xtrp_rx_sts.rx_bitrate == 0) - { - // Rx Bitrate 15.625bps (Low) - clcw |= 0x00004000; // **** **** **** **** 01** **** **** **** - } - else if (xtrp1->xtrp_rx_sts.rx_bitrate <= 3) - { - // Rx Bitrate 125bps, 62.5bps, 31.25bps (Mid) - clcw |= 0x00008000; // **** **** **** **** 10** **** **** **** - } - else - { - // Rx Bitrate 2kbps, 1kbps, 500bps, 250bps (High) - clcw |= 0x0000c000; // **** **** **** **** 11** **** **** **** - } - } - */ + // FIXME: No RF Available Flag + // **** **** **** **** x*** **** **** **** + // FIXME: NO Bit Lock Flag + // **** **** **** **** *x** **** **** **** - // Lockout + // Lockout flag if (gs_validate_info_.lockout_flag) { clcw |= 0x00002000; // **** **** **** **** **1* **** **** **** } - // Retransmit if (gs_validate_info_.retransmit_flag) { @@ -333,7 +279,7 @@ uint32_t GS_form_clcw(void) val = (gs_validate_info_.type_b_counter & 0x03) << 9; clcw |= val; // **** **** **** **** **** *xx* **** **** - // Report Value + // Type A Counter as Report Value clcw |= gs_validate_info_.type_a_counter; // **** **** **** **** **** **** xxxx xxxx return clcw; diff --git a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.h b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.h index a07ce236d..f3f80c8b2 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.h +++ b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.h @@ -1,40 +1,46 @@ /** * @file - * @brief 受信した TC Frame の検証を行う + * @brief 受信した TC Transfer Frame, TC Segment の検証を行う + * @note AD, BC, BD コマンドの仕様に関しては + * JAXA 設計標準 テレコマンドデータリンクプロトコル設計標準 + * https://sma.jaxa.jp/TechDoc/Docs/JAXA-JERG-2-401.pdf + * 実装に関しては + * Blue Books: Recommended Standards: TC Space Data Link Protocol + * https://public.ccsds.org/Pubs/232x0b4.pdf + * をそれぞれ参照した */ #ifndef GS_VALIDATE_H_ #define GS_VALIDATE_H_ -#include "../../TlmCmd/Ccsds/TCFrame.h" +#include "../../TlmCmd/Ccsds/tc_transfer_frame.h" #include "../../Library/stdint.h" /** * @enum GS_VALIDATE_ERR * @brief gs_validate 関数の返り値 + * @note uint8_t を想定 */ typedef enum { GS_VALIDATE_ERR_OK = 0, - - GS_VALIDATE_ERR_TCF_VER, - GS_VALIDATE_ERR_TCF_SCID, - GS_VALIDATE_ERR_TCF_VCID, - GS_VALIDATE_ERR_TCF_TYPE, + GS_VALIDATE_ERR_TCTF_VER, + GS_VALIDATE_ERR_TCTF_SCID, + GS_VALIDATE_ERR_TCTF_VCID, + GS_VALIDATE_ERR_TCTF_TYPE, GS_VALIDATE_ERR_IN_LOCKOUT, GS_VALIDATE_ERR_TCS_SEQ_FLAG, - GS_VALIDATE_ERR_TCP_VER, - GS_VALIDATE_ERR_TCP_2ND_HDR_FLAG, + GS_VALIDATE_ERR_CSP_VER, + GS_VALIDATE_ERR_CSP_2ND_HDR_FLAG, GS_VALIDATE_ERR_APID, - GS_VALIDATE_ERR_TCP_TYPE_IS_NOT_CMD, - GS_VALIDATE_ERR_TCP_SEQ_IS_NOT_SINGLE, + GS_VALIDATE_ERR_CSP_TYPE_IS_NOT_CMD, + GS_VALIDATE_ERR_CSP_SEQ_IS_NOT_SINGLE, GS_VALIDATE_ERR_FECW_MISSMATCH, GS_VALIDATE_ERR_FARM1_POSITIVE_WINDOW_AREA, GS_VALIDATE_ERR_FARM1_NEGATIVE_WINDOW_AREA, GS_VALIDATE_ERR_FARM1_LOCKOUT_AREA, - GS_VALIDATE_ERR_FARM1_SAME_NUMBER, - GS_VALIDATE_ERR_INVALID_BC_CMD + GS_VALIDATE_ERR_INVALID_BC_CMD, + GS_VALIDATE_ERR_UNKNOWN } GS_VALIDATE_ERR; -// FIXME: TCP → SpacePacket 大工事後に TCP を直す /** * @struct GS_ValidateInfo @@ -42,10 +48,10 @@ typedef enum */ typedef struct { - // FARM-A,B用のカウンタ値 + // FARM-A, B 用のカウンタ値 uint8_t type_a_counter; uint8_t type_b_counter; - // FARM-1用の情報 + // FARM-1 用の情報 uint8_t lockout_flag; uint8_t retransmit_flag; uint8_t positive_window_width; @@ -55,25 +61,26 @@ extern const GS_ValiateInfo* const gs_validate_info; /** * @brief GS_ValiateInfo の初期化 + * @return void */ void GS_validate_init(void); /** - * @brief tc_frame の検証 - * @param[in] tc_frame: 検証する tc frame + * @brief tctf の検証 + * @param[in] tctf: 検証する TC Transfer Frame * @return GS_VALIDATE_ERR */ -GS_VALIDATE_ERR GS_validate_tc_frame(const TCF* tc_frame); +GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf); /** - * @brief テレメ用の clcw の作成 - * @return clcw + * @brief テレメ用の CLCW の作成 + * @return CLCW */ uint32_t GS_form_clcw(void); /** - * @brief positive_window_width の設定 - * @param[in] positive_window_width + * @brief Positive Window Width の設定 + * @param[in] positive_window_width: Positive Window Width * @return GS_VALIDATE_ERR */ GS_VALIDATE_ERR GS_set_farm_pw(uint8_t positive_window_width); diff --git a/Examples/minimum_user_for_s2e/src/src_user/IfWrapper/Sils/ccsds_sils.cpp b/Examples/minimum_user_for_s2e/src/src_user/IfWrapper/Sils/ccsds_sils.cpp index 24e82cf39..046063e72 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/IfWrapper/Sils/ccsds_sils.cpp +++ b/Examples/minimum_user_for_s2e/src/src_user/IfWrapper/Sils/ccsds_sils.cpp @@ -65,14 +65,6 @@ int CCSDS_reopen(void* my_ccsds_v, int reason) return 0; } -CCSDS_ERR_CODE CCSDS_read_sequence(uint32_t select, uint32_t* uip_stat) -{ - (void)select; - (void)uip_stat; - - return CCSDS_ERR_OK; -} - uint8_t CCSDS_get_buffer_num(void) { return 8; diff --git a/Examples/minimum_user_for_s2e/src/src_user/IfWrapper/ccsds_user.h b/Examples/minimum_user_for_s2e/src/src_user/IfWrapper/ccsds_user.h index 3ec70e5ab..bc637f647 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/IfWrapper/ccsds_user.h +++ b/Examples/minimum_user_for_s2e/src/src_user/IfWrapper/ccsds_user.h @@ -9,7 +9,6 @@ #include "../Library/stdint.h" #define CCSDS_FIFO_SIZE (8) // 現在使っている CCSDS API の設計上決まっている -#define CCSDS_SELECT_NUM (6) /** * @enum CCSDS_ERR_CODE @@ -32,18 +31,9 @@ typedef enum */ typedef struct { - uint32_t uip_stat[CCSDS_SELECT_NUM]; //!< FPGA が保持する CCSDS sequence counter uint8_t buffer_num; //!< 送信バッファの残り数. 最大 CCSDS_FIFO_SIZE } CCSDS_Info; -/** - * @brief FPGA が保持する CCSDS sequence counter を読む API を呼び出す - * @param[in] select レジスタ読み出しを選択 - * @param[out] uip_stat: 状態 - * @return CCSDS_ERR_CODE - */ -CCSDS_ERR_CODE CCSDS_read_sequence(uint32_t select, uint32_t* uip_stat); - /** * @brief CCSDS TX の残り buffer をカウントするAPI を呼びだす * @return 残り buffer 数 diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_CMD_DB.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_CMD_DB.csv index dfa9b6cd4..553719ea3 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_CMD_DB.csv +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_CMD_DB.csv @@ -155,19 +155,18 @@ Comment,,,,,Type,Description,Type,Description,Type,Description,Type,Description, ,Cmd_DI_GS_SET_RP_FLUSH_INTERVAL,OBC,0x0104,1,uint32_t,roԊu,,,,,,,,,,,,,RP VCDU̔roԊuݒ, ,Cmd_DI_GS_SET_FARM_PW,OBC,0x0105,1,uint8_t,positive_window_width,,,,,,,,,,,,,FARM-1Positive Window Widthݒ, ,Cmd_DI_GS_SET_INFO,OBC,0x0106,1,uint8_t,TLMI,,,,,,,,,,,,,GSMTLM0ȂCCSDS@@ 1ȂUART̏񂪏oĂ, -,Cmd_DI_GS_CCSDS_READ_SEQUENCE,OBC,0x0107,0,,,,,,,,,,,,,,,, -,Cmd_DI_GS_CCSDS_GET_BUFFER,OBC,0x0108,0,,,,,,,,,,,,,,,, -,Cmd_DI_GS_CCSDS_SET_RATE,OBC,0x0109,1,uint8_t,bps Zbgp[^,,,,,,,,,,,danger,,40M/p[^ bps ɂȂDl 0xAD 230.4 Kbps (ɑΉĂȂ), +,Cmd_DI_GS_CCSDS_GET_BUFFER,OBC,0x0107,0,,,,,,,,,,,,,,,, +,Cmd_DI_GS_CCSDS_SET_RATE,OBC,0x0108,1,uint8_t,bps Zbgp[^,,,,,,,,,,,danger,,40M/p[^ bps ɂȂDl 0xAD 230.4 Kbps (ɑΉĂȂ), **,WDTpR}h,,,,,,,,,,,,,,,,,,, -,Cmd_WDT_INIT,OBC,0x010A,0,,,,,,,,,,,,,,,WDTDWDTAvCjVCUȂȂ̂Œlj, -,Cmd_WDT_ENABLE,OBC,0x010B,0,,,,,,,,,,,,,,,WDTL, -,Cmd_WDT_DISABLE,OBC,0x010C,0,,,,,,,,,,,,,,,WDT, -,Cmd_WDT_STOP_CLEAR,OBC,0x010D,0,,,,,,,,,,,,,danger,,WDT̃JE^NA~߂遁Zbgs, -,Cmd_WDT_START_CLEAR,OBC,0x010E,0,,,,,,,,,,,,,,,WDT̃JE^NAJn, +,Cmd_WDT_INIT,OBC,0x0109,0,,,,,,,,,,,,,,,WDTDWDTAvCjVCUȂȂ̂Œlj, +,Cmd_WDT_ENABLE,OBC,0x010A,0,,,,,,,,,,,,,,,WDTL, +,Cmd_WDT_DISABLE,OBC,0x010B,0,,,,,,,,,,,,,,,WDT, +,Cmd_WDT_STOP_CLEAR,OBC,0x010C,0,,,,,,,,,,,,,danger,,WDT̃JE^NA~߂遁Zbgs, +,Cmd_WDT_START_CLEAR,OBC,0x010D,0,,,,,,,,,,,,,,,WDT̃JE^NAJn, **,UART TESTR}h,,,,,,,,,,,,,,,,,,, -,Cmd_UART_TEST_INIT_DI,OBC,0x010F,0,,,,,,,,,,,,,,,DI, -,Cmd_UART_TEST_UPDATE,OBC,0x0110,0,,,,,,,,,,,,,,,DI update, -,Cmd_UART_TEST_SEND_TEST,OBC,0x0111,1,uint8_t,id,,,,,,,,,,,,,DI send test, +,Cmd_UART_TEST_INIT_DI,OBC,0x010E,0,,,,,,,,,,,,,,,DI, +,Cmd_UART_TEST_UPDATE,OBC,0x010F,0,,,,,,,,,,,,,,,DI update, +,Cmd_UART_TEST_SEND_TEST,OBC,0x0110,1,uint8_t,id,,,,,,,,,,,,,DI send test, **,,,,,,,,,,,,,,,,,,,, * POWER,,,,,,,,,,,,,,,,,,,, **,,,,,,,,,,,,,,,,,,,, @@ -998,3 +997,4 @@ Comment,,,,,Type,Description,Type,Description,Type,Description,Type,Description, ,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv index 9e542dbed..21c0837a4 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv @@ -20,56 +20,56 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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,,,,,,,,, -,UART_CH,uint8_t,gs_driver->driver_uart.uart_config.ch,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,,,,,,,,, -,UART_BAUDRATE,uint32_t,gs_driver->driver_uart.uart_config.baudrate,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,,,,,,,,, -,UART_PARITY,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.parity_settings,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=NONE@@ 1=ODD@@ 2=EVEN@@ 3=MARK@@ 4 =SPACE,, -,UART_DATA_LENGTH,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.data_length,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)))),STATUS,,,,,,,0=7bit@@ 1 =8bit,, -,UART_STOP_BIT,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.stop_bit,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)))),STATUS,,,,,,,0=1bit@@ 1=1.5bit@@ 2=2bit,, -,CCSDS_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rec_status,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)))),STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,CCSDS_LAST_REC_TCF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tcf_type,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=AD:G@@1=BC:G@@2=BD:G@@3=UNKNOWN:R,, -,CCSDS_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].ad_rec_status,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)))),STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,CCSDS_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bc_rec_status,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=OK:G@@1=ERROR:R,, -,CCSDS_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bd_rec_status,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)))),STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,CCSDS_TCFRAME_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tc_frame_validate_status),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=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,, -,CCSDS_RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->info[0].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,,,,,,,,, -,CCSDS_LAST_REC_TIME,uint32_t,(uint32_t)gs_driver->info[0].last_rec_time,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)))),NONE,,,,,,,,, -,CCSDS_LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_dest_type,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=ME@@ 1=MOBC@@ 2=AOBC@@ 3=TOBC@@ 4=UNKNOWN,, -,CCSDS_CMD_ACK,uint8_t,(uint8_t)gs_driver->info[0].cmd_ack,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)))),STATUS,,,,,,,0=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,, -,CCSDS_SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].send_cycle,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,,,,,,,,, -,CCSDS_VCID,uint8_t,(uint8_t)gs_driver->info[0].vcid,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,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, -,CCSDS_VCDU_COUNTER,uint32_t,gs_driver->info[0].vcdu_counter,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,,,,,,,,, -,CCSDS_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,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)))),STATUS,,,,,,,,, -,UART_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rec_status,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)))),STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,UART_LAST_REC_TCF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tcf_type,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=AD:G@@1=BC:G@@2=BD:G@@3=UNKNOWN:R,, -,UART_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].ad_rec_status,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=OK:G@@1=ERROR:R,, -,UART_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bc_rec_status,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)))),STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,UART_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bd_rec_status,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=OK:G@@1=ERROR:R,, -,UART_TCFRAME_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tc_frame_validate_status),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=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,, -,UART_RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->info[1].ret_from_if_rx,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,,,,,,,,, -,UART_LAST_REC_TIME,uint32_t,(uint32_t)gs_driver->info[1].last_rec_time,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)))),STATUS,,,,,,,,, -,UART_LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_dest_type,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)))),STATUS,,,,,,,0=ME@@ 1=MOBC@@ 2=AOBC@@ 3=TOBC@@ 4=UNKNOWN,, -,UART_CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].cmd_ack,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,,,,,,,0=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,, -,UART_SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[1].send_cycle,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)))),NONE,,,,,,,,, -,UART_VCID,uint8_t,(uint8_t)gs_driver->info[1].vcid,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)))),STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, -,UART_VCDU_COUNTER,uint32_t,gs_driver->info[1].vcdu_counter,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,,,,,,,,, -,CCSDS_TX_VALID,uint8_t,gs_driver->is_ccsds_tx_valid,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=INVALID@@ 1=VALID,, -,MS_TLM_VCDU_FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,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,,,,,,,,, -,MS_TLM_VCDU_LAST_UPDATED,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,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,,,,,,,,, -,MS_TLM_VCDU_COUNTER,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter,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,,,,,,,,, -,RP_TLM_VCDU_FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,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,,,,,,,,, -,RP_TLM_VCDU_LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,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,,,,,,,,, -,RP_TLM_VCDU_COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,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,,,,,,,,, -,TYPE_A_COUNTER,uint8_t,gs_validate_info->type_a_counter,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,,,,,,,,, -,TYPE_B_COUNTER,uint8_t,gs_validate_info->type_b_counter,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,,,,,,,,, -,LOCKOUT_FLAG,uint8_t,gs_validate_info->lockout_flag,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,,,,,,,,, -,RETRANSMIT_FLAG,uint8_t,gs_validate_info->retransmit_flag,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,,,,,,,,, -,POSITIVE_WINDOW_WIDTH,uint8_t,gs_validate_info->positive_window_width,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,,,,,,,,, -,START_SEQUENCE_1KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[0],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,,,,,,,,, -,START_SEQUENCE_4KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[1],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,,,,,,,,, -,TALE_SEQUENCE_1KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[2],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,,,,,,,,, -,TALE_SEQUENCE_4KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[3],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,,,,,,,,, -,BCH_2BITERR_COUNTER_1KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[4],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,,,,,,,,, -,BCH_2BITERR_COUNTER_4KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[5],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,,,,,,,,, +,CCSDS.RX.REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.rec_status,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)))),STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS.RX.RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->info[0].rx.ret_from_if_rx,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,,,,,,,,, +,CCSDS.RX.LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[0].rx.last_dest_type,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=ME@@ 1=MOBC@@ 2=AOBC@@ 3=TOBC@@ 4=UNKNOWN,, +,CCSDS.RX.LAST_REC_TIME,uint32_t,(uint32_t)gs_driver->info[0].rx.last_rec_time,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,,,,,,,,, +,CCSDS.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[0].rx.cmd_ack,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)))),STATUS,,,,,,,0=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,, +,CCSDS.TCTF.LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.last_rec_tctf_type,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)))),STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, +,CCSDS.TCTF.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.ad_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=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,CCSDS.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bc_rec_status,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)))),STATUS,,,,,,,0=SUCCESS@@ 1=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,CCSDS.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bd_rec_status,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=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,CCSDS.TX.IS_VALID,uint8_t,gs_driver->is_ccsds_tx_valid,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)))),STATUS,,,,,,,0=INVALID@@ 1=VALID,, +,CCSDS.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].tx.send_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,,,,,,,,, +,CCSDS.TX.VCID,uint8_t,(uint8_t)gs_driver->info[0].tx.vcid,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)))),STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, +,CCSDS.TX.VCDU_COUNTER,uint32_t,gs_driver->info[0].tx.vcdu_counter,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)))),NONE,,,,,,,,, +,CCSDS.TX.BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,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,,,,,,,,, +,UART.CH,uint8_t,gs_driver->driver_uart.uart_config.ch,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,,,,,,,,, +,UART.BAUDRATE,uint32_t,gs_driver->driver_uart.uart_config.baudrate,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,,,,,,,,, +,UART.PARITY,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.parity_settings,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=NONE@@ 1=ODD@@ 2=EVEN@@ 3=MARK@@ 4 =SPACE,, +,UART.DATA_LENGTH,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.data_length,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=7bit@@ 1 =8bit,, +,UART.STOP_BIT,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.stop_bit,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)))),STATUS,,,,,,,0=1bit@@ 1=1.5bit@@ 2=2bit,, +,UART.RX.REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.rec_status,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)))),STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART.RX.RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->info[1].rx.ret_from_if_rx,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,,,,,,,,, +,UART.RX.LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.last_dest_type,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=ME@@ 1=MOBC@@ 2=AOBC@@ 3=TOBC@@ 4=UNKNOWN,, +,UART.RX.LAST_REC_TIME,uint32_t,(uint32_t)gs_driver->info[1].rx.last_rec_time,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,,,,,,,,, +,UART.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].rx.cmd_ack,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=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,, +,UART.TCTF.LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.last_rec_tctf_type,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=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, +,UART.TCTF.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.ad_rec_status,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)))),STATUS,,,,,,,0=SUCCESS@@ 1=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,UART.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status,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)))),STATUS,,,,,,,0=SUCCESS@@ 1=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,UART.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bd_rec_status,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)))),STATUS,,,,,,,0=SUCCESS@@ 1=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,UART.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[1].tx.send_cycle,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,,,,,,,,, +,UART.TX.VCID,uint8_t,(uint8_t)gs_driver->info[1].tx.vcid,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,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, +,UART.TX.VCDU_COUNTER,uint32_t,gs_driver->info[1].tx.vcdu_counter,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,,,,,,,,, +,COP-1.TYPE_A_COUNTER,uint8_t,gs_validate_info->type_a_counter,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,,,,,,,,, +,COP-1.TYPE_B_COUNTER,uint8_t,gs_validate_info->type_b_counter,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)))),NONE,,,,,,,,, +,COP-1.LOCKOUT_FLAG,uint8_t,gs_validate_info->lockout_flag,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,,,,,,,,, +,COP-1.RETRANSMIT_FLAG,uint8_t,gs_validate_info->retransmit_flag,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,,,,,,,,, +,COP-1.POSITIVE_WINDOW_WIDTH,uint8_t,gs_validate_info->positive_window_width,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,,,,,,,,, +,MS_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,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,,,,,,,,, +,MS_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,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,,,,,,,,, +,MS_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter,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,,,,,,,,, +,RP_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,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,,,,,,,,, +,RP_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,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,,,,,,,,, +,RP_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,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,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_HK.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_HK.csv index 48034a9b3..b64b9dd01 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_HK.csv +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_HK.csv @@ -26,9 +26,9 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,ŐVTCPacketM, +,OBC_TCTF_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rx.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,TC Transer Frame M, +,OBC_TCTF_LAST_RECV_TIME,uint32_t,(uint32_t)gs_driver->latest_info->rx.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,,,,,,,,ŐVTC Transer FrameM, +,OBC_TCP_LAST_RECV_ACK,uint8_t,(uint8_t)(gs_driver->latest_info->rx.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=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=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, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv index bf5a25d54..8a72ba4ea 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv @@ -31,85 +31,85 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,Ő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^, +,GS_RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->latest_info->rx.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,,,,,,,,, +,TCTF_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rx.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,TC Transer Frame DS, +,TCTF_LAST_RECV_TIME,uint32_t,(uint32_t)gs_driver->latest_info->rx.last_rec_time,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,,,,,,,,ŐVTC Transer FrameM, +,TCTF_FARM_PW,uint8_t,(uint8_t)gs_validate_info->positive_window_width,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,,,,,,,,FARM-1 Positive Window Width, +,TCP_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rx.cmd_ack,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=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,ŐVTCPacketM, +,TLM_TX_PORT_TYPE,uint8_t,(uint8_t)gs_driver->tlm_tx_port_type,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=CCSDS@@ 1=UART,TLM ̑MUART̂̂GŜ̂, +,GS_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_gs_cmd_list),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,,,,,,,,nǃR}hJE^, +,GS_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(gs_command_dispatcher->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,,,,,,,,ŐVnǃR}hs, +,GS_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(gs_command_dispatcher->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,,,,,,,,ŐVnǃR}hID, +,GS_CMD_LAST_EXEC_STS,int32_t,(int32_t)(gs_command_dispatcher->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,ŐVnǃR}hs, +,GS_CMD_LAST_ERR_TIME,uint32_t,(uint32_t)(gs_command_dispatcher->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,,,,,,,,ŐVnǃR}hs, +,GS_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(gs_command_dispatcher->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,,,,,,,,ŐVnǃR}hID, +,GS_CMD_LAST_ERR_STS,int32_t,(int32_t)(gs_command_dispatcher->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,ŐVnǃR}hs, +,GS_CMD_ERR_COUNTER,uint32_t,(uint32_t)(gs_command_dispatcher->error_counter),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,,,,,,,,nǃR}hsُJE^, +,RT_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rt_cmd_list),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,,,,,,,,R}hJE^, +,RT_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(realtime_command_dispatcher->prev.time.total_cycle),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,,,,,,,,ŐVR}hs, +,RT_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(realtime_command_dispatcher->prev.code),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}hID, +,RT_CMD_LAST_EXEC_STS,int32_t,(int32_t)(realtime_command_dispatcher->prev.sts),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)))),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,=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)))),NONE,,,,,,,,ŐVR}hs, +,RT_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(realtime_command_dispatcher->prev_err.code),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}hID, +,RT_CMD_LAST_ERR_STS,int32_t,(int32_t)(realtime_command_dispatcher->prev_err.sts),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)))),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,=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)))),NONE,,,,,,,,nǃR}hsُJE^, +,TL0_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[0]),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,,,,,,,,TL0R}hJE^, +,TL0_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_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,,,,,,,,TL0o^R}h, +,TL0_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[0].prev.time.total_cycle),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,,,,,,,,ŐVTL0R}hs, +,TL0_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev.code),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}hID, +,TL0_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[0].prev.sts),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)))),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,=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,,,,,,,,ŐVTL0R}hs, +,TL0_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev_err.code),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}hID, +,TL0_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[0].prev_err.sts),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)))),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,=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,,,,,,,,nǃR}hsُJE^, +,TL0_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[0].stop_on_error),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)))),STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL0_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[0].lockout),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: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,=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,,,,,,,,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,=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}hID,ϐw肪ςȂƂɁc +,TL1_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[1]),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,,,,,,,,TL1R}hJE^, +,TL1_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_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,,,,,,,,TL1o^R}h, +,TL1_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[1].prev.time.total_cycle),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,,,,,,,,ŐVTL1R}hs, +,TL1_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[1].prev.code),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}hID, +,TL1_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[1].prev.sts),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)))),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,=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,,,,,,,,ŐVTL1R}hs, +,TL1_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[1].prev_err.code),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}hID, +,TL1_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[1].prev_err.sts),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)))),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,=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,,,,,,,,nǃR}hsُJE^, +,TL1_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[1].stop_on_error),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)))),STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL1_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[1].lockout),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: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,=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,,,,,,,,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,=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}hID,ϐw肪ςȂƂɁc +,TL2_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[2]),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}hJE^, +,TL2_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_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,,,,,,,,TL1o^R}h, +,TL2_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[2].prev.time.total_cycle),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,,,,,,,,ŐVTL1R}hs, +,TL2_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[2].prev.code),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}hID, +,TL2_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[2].prev.sts),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)))),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,=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,,,,,,,,ŐVTL1R}hs, +,TL2_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[2].prev_err.code),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}hID, +,TL2_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[2].prev_err.sts),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)))),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,=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,,,,,,,,nǃR}hsُJE^, +,TL2_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[2].stop_on_error),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)))),STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL2_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[2].lockout),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: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,=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,,,,,,,,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,=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}hID,ϐw肪ςȂƂɁc +,BCT_BLK_PTR,uint8_t,(uint8_t)(block_command_table->pos.block),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,,,,,,,,BCT ubN|C^, +,BCT_CMD_PTR,uint8_t,(uint8_t)(block_command_table->pos.cmd),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 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,=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 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,=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}hID,ϐw肪ςȂƂɁc +,MS_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,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,,,,,,,,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,=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,,,,,,,,TL0R}hJE^, +,RP_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_rp_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^, +,MS_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_ms_tlm_list),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_QUEUED,uint8_t,(uint8_t)(PL_count_active_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,,,,,,,,TL0o^R}h, +,ST_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_st_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,,,,,,,,TL0R}hJE^, +,ST_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_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,,,,,,,,TL0o^R}h, +,RP_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rp_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,,,,,,,,TL0R}hJE^, +,RP_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_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,,,,,,,,TL0o^R}h, +,TCI_TX_CYCLE,uint32_t,(uint32_t)gs_driver->latest_info->tx.send_cycle,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,,,,,,,,Z::oTCN, +,TCI_TX_BITRATE,uint32_t,gs_driver->driver_ccsds.ccsds_config.bitrate,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::orbg[g, +,TCI_VCID,uint8_t,(uint8_t)gs_driver->latest_info->tx.vcid,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,,,,,,,,\::oVCID, +,TCI_VCDU_COUNTER,uint32_t,gs_driver->latest_info->tx.vcdu_counter,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,,,,,,,,Z::oVCDUJE^, +,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_GS.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_GS.csv index 6b495287d..47d84eb0d 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_GS.csv +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_GS.csv @@ -20,56 +20,56 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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,,,,,,,,, -,UART_CH,uint8_t,gs_driver->driver_uart.uart_config.ch,PACKET,26,0,8,NONE,,,,,,,,, -,UART_BAUDRATE,uint32_t,gs_driver->driver_uart.uart_config.baudrate,PACKET,27,0,32,NONE,,,,,,,,, -,UART_PARITY,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.parity_settings,PACKET,31,0,8,STATUS,,,,,,,0=NONE@@ 1=ODD@@ 2=EVEN@@ 3=MARK@@ 4 =SPACE,, -,UART_DATA_LENGTH,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.data_length,PACKET,32,0,8,STATUS,,,,,,,0=7bit@@ 1 =8bit,, -,UART_STOP_BIT,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.stop_bit,PACKET,33,0,8,STATUS,,,,,,,0=1bit@@ 1=1.5bit@@ 2=2bit,, -,CCSDS_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rec_status,PACKET,34,0,8,STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,CCSDS_LAST_REC_TCF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tcf_type,PACKET,35,0,8,STATUS,,,,,,,0=AD:G@@1=BC:G@@2=BD:G@@3=UNKNOWN:R,, -,CCSDS_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].ad_rec_status,PACKET,36,0,8,STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,CCSDS_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bc_rec_status,PACKET,37,0,8,STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,CCSDS_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bd_rec_status,PACKET,38,0,8,STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,CCSDS_TCFRAME_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tc_frame_validate_status),PACKET,39,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,, -,CCSDS_RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->info[0].ret_from_if_rx,PACKET,40,0,32,NONE,,,,,,,,, -,CCSDS_LAST_REC_TIME,uint32_t,(uint32_t)gs_driver->info[0].last_rec_time,PACKET,44,0,32,NONE,,,,,,,,, -,CCSDS_LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_dest_type,PACKET,48,0,8,STATUS,,,,,,,0=ME@@ 1=MOBC@@ 2=AOBC@@ 3=TOBC@@ 4=UNKNOWN,, -,CCSDS_CMD_ACK,uint8_t,(uint8_t)gs_driver->info[0].cmd_ack,PACKET,49,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,, -,CCSDS_SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].send_cycle,PACKET,50,0,32,STATUS,,,,,,,,, -,CCSDS_VCID,uint8_t,(uint8_t)gs_driver->info[0].vcid,PACKET,54,0,8,NONE,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, -,CCSDS_VCDU_COUNTER,uint32_t,gs_driver->info[0].vcdu_counter,PACKET,55,0,32,NONE,,,,,,,,, -,CCSDS_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,59,0,8,STATUS,,,,,,,,, -,UART_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rec_status,PACKET,60,0,8,STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,UART_LAST_REC_TCF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tcf_type,PACKET,61,0,8,STATUS,,,,,,,0=AD:G@@1=BC:G@@2=BD:G@@3=UNKNOWN:R,, -,UART_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].ad_rec_status,PACKET,62,0,8,STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,UART_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bc_rec_status,PACKET,63,0,8,STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,UART_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bd_rec_status,PACKET,64,0,8,STATUS,,,,,,,0=OK:G@@1=ERROR:R,, -,UART_TCFRAME_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tc_frame_validate_status),PACKET,65,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,, -,UART_RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->info[1].ret_from_if_rx,PACKET,66,0,32,NONE,,,,,,,,, -,UART_LAST_REC_TIME,uint32_t,(uint32_t)gs_driver->info[1].last_rec_time,PACKET,70,0,32,STATUS,,,,,,,,, -,UART_LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_dest_type,PACKET,74,0,8,STATUS,,,,,,,0=ME@@ 1=MOBC@@ 2=AOBC@@ 3=TOBC@@ 4=UNKNOWN,, -,UART_CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].cmd_ack,PACKET,75,0,8,NONE,,,,,,,0=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,, -,UART_SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[1].send_cycle,PACKET,76,0,32,NONE,,,,,,,,, -,UART_VCID,uint8_t,(uint8_t)gs_driver->info[1].vcid,PACKET,80,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, -,UART_VCDU_COUNTER,uint32_t,gs_driver->info[1].vcdu_counter,PACKET,81,0,32,NONE,,,,,,,,, -,CCSDS_TX_VALID,uint8_t,gs_driver->is_ccsds_tx_valid,PACKET,85,0,8,STATUS,,,,,,,0=INVALID@@ 1=VALID,, -,MS_TLM_VCDU_FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,86,0,32,NONE,,,,,,,,, -,MS_TLM_VCDU_LAST_UPDATED,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,PACKET,90,0,32,NONE,,,,,,,,, -,MS_TLM_VCDU_COUNTER,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter,PACKET,94,0,32,NONE,,,,,,,,, -,RP_TLM_VCDU_FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,98,0,32,NONE,,,,,,,,, -,RP_TLM_VCDU_LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,PACKET,102,0,32,NONE,,,,,,,,, -,RP_TLM_VCDU_COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,PACKET,106,0,32,NONE,,,,,,,,, -,TYPE_A_COUNTER,uint8_t,gs_validate_info->type_a_counter,PACKET,110,0,8,NONE,,,,,,,,, -,TYPE_B_COUNTER,uint8_t,gs_validate_info->type_b_counter,PACKET,111,0,8,NONE,,,,,,,,, -,LOCKOUT_FLAG,uint8_t,gs_validate_info->lockout_flag,PACKET,112,0,8,NONE,,,,,,,,, -,RETRANSMIT_FLAG,uint8_t,gs_validate_info->retransmit_flag,PACKET,113,0,8,NONE,,,,,,,,, -,POSITIVE_WINDOW_WIDTH,uint8_t,gs_validate_info->positive_window_width,PACKET,114,0,8,NONE,,,,,,,,, -,START_SEQUENCE_1KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[0],PACKET,115,0,32,NONE,,,,,,,,, -,START_SEQUENCE_4KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[1],PACKET,119,0,32,NONE,,,,,,,,, -,TALE_SEQUENCE_1KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[2],PACKET,123,0,32,NONE,,,,,,,,, -,TALE_SEQUENCE_4KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[3],PACKET,127,0,32,NONE,,,,,,,,, -,BCH_2BITERR_COUNTER_1KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[4],PACKET,131,0,32,NONE,,,,,,,,, -,BCH_2BITERR_COUNTER_4KBPS,uint32_t,gs_driver->ccsds_info.uip_stat[5],PACKET,135,0,32,NONE,,,,,,,,, +,CCSDS.RX.REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.rec_status,PACKET,26,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS.RX.RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->info[0].rx.ret_from_if_rx,PACKET,27,0,32,NONE,,,,,,,,, +,CCSDS.RX.LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[0].rx.last_dest_type,PACKET,31,0,8,STATUS,,,,,,,0=ME@@ 1=MOBC@@ 2=AOBC@@ 3=TOBC@@ 4=UNKNOWN,, +,CCSDS.RX.LAST_REC_TIME,uint32_t,(uint32_t)gs_driver->info[0].rx.last_rec_time,PACKET,32,0,32,NONE,,,,,,,,, +,CCSDS.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[0].rx.cmd_ack,PACKET,36,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,, +,CCSDS.TCTF.LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.last_rec_tctf_type,PACKET,37,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, +,CCSDS.TCTF.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.ad_rec_status,PACKET,38,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,CCSDS.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bc_rec_status,PACKET,39,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,CCSDS.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bd_rec_status,PACKET,40,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,CCSDS.TX.IS_VALID,uint8_t,gs_driver->is_ccsds_tx_valid,PACKET,41,0,8,STATUS,,,,,,,0=INVALID@@ 1=VALID,, +,CCSDS.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].tx.send_cycle,PACKET,42,0,32,NONE,,,,,,,,, +,CCSDS.TX.VCID,uint8_t,(uint8_t)gs_driver->info[0].tx.vcid,PACKET,46,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, +,CCSDS.TX.VCDU_COUNTER,uint32_t,gs_driver->info[0].tx.vcdu_counter,PACKET,47,0,32,NONE,,,,,,,,, +,CCSDS.TX.BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,51,0,8,NONE,,,,,,,,, +,UART.CH,uint8_t,gs_driver->driver_uart.uart_config.ch,PACKET,52,0,8,NONE,,,,,,,,, +,UART.BAUDRATE,uint32_t,gs_driver->driver_uart.uart_config.baudrate,PACKET,53,0,32,NONE,,,,,,,,, +,UART.PARITY,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.parity_settings,PACKET,57,0,8,STATUS,,,,,,,0=NONE@@ 1=ODD@@ 2=EVEN@@ 3=MARK@@ 4 =SPACE,, +,UART.DATA_LENGTH,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.data_length,PACKET,58,0,8,STATUS,,,,,,,0=7bit@@ 1 =8bit,, +,UART.STOP_BIT,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.stop_bit,PACKET,59,0,8,STATUS,,,,,,,0=1bit@@ 1=1.5bit@@ 2=2bit,, +,UART.RX.REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.rec_status,PACKET,60,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART.RX.RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->info[1].rx.ret_from_if_rx,PACKET,61,0,32,NONE,,,,,,,,, +,UART.RX.LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.last_dest_type,PACKET,65,0,8,STATUS,,,,,,,0=ME@@ 1=MOBC@@ 2=AOBC@@ 3=TOBC@@ 4=UNKNOWN,, +,UART.RX.LAST_REC_TIME,uint32_t,(uint32_t)gs_driver->info[1].rx.last_rec_time,PACKET,66,0,32,NONE,,,,,,,,, +,UART.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].rx.cmd_ack,PACKET,70,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,, +,UART.TCTF.LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.last_rec_tctf_type,PACKET,71,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, +,UART.TCTF.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.ad_rec_status,PACKET,72,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,UART.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status,PACKET,73,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,UART.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bd_rec_status,PACKET,74,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=TCTF_VER@@ 2=TCTF_SCID@@ 3=TCTF_VCID@@ 4=TCTF_TYPE@@ 5=LOCKOUT@@ 6=TCTF_SEQ_FLAG@@ 7=TCP_VER@@ 8=TCP_2ND_HDR_FLAG@@ 9=APID@@ 10=TCP_TYPE_IS_NOT_CMD@@ 11=TCP_SEQ_IS_NOTE_SINGLE@@ 12=FECW_MISSMATCH@@ 13=FARM1_PWA@@ 14=FARM1_NWA@@ 15=FARM1_LOCKOUT_AREA@@ 16=FARM1_SAME_NUMBER@@ 17=INVALID_BC_CMD,, +,UART.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[1].tx.send_cycle,PACKET,75,0,32,NONE,,,,,,,,, +,UART.TX.VCID,uint8_t,(uint8_t)gs_driver->info[1].tx.vcid,PACKET,79,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, +,UART.TX.VCDU_COUNTER,uint32_t,gs_driver->info[1].tx.vcdu_counter,PACKET,80,0,32,NONE,,,,,,,,, +,COP-1.TYPE_A_COUNTER,uint8_t,gs_validate_info->type_a_counter,PACKET,84,0,8,NONE,,,,,,,,, +,COP-1.TYPE_B_COUNTER,uint8_t,gs_validate_info->type_b_counter,PACKET,85,0,8,NONE,,,,,,,,, +,COP-1.LOCKOUT_FLAG,uint8_t,gs_validate_info->lockout_flag,PACKET,86,0,8,NONE,,,,,,,,, +,COP-1.RETRANSMIT_FLAG,uint8_t,gs_validate_info->retransmit_flag,PACKET,87,0,8,NONE,,,,,,,,, +,COP-1.POSITIVE_WINDOW_WIDTH,uint8_t,gs_validate_info->positive_window_width,PACKET,88,0,8,NONE,,,,,,,,, +,MS_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,89,0,32,NONE,,,,,,,,, +,MS_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,PACKET,93,0,32,NONE,,,,,,,,, +,MS_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter,PACKET,97,0,32,NONE,,,,,,,,, +,RP_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,101,0,32,NONE,,,,,,,,, +,RP_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,PACKET,105,0,32,NONE,,,,,,,,, +,RP_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,PACKET,109,0,32,NONE,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_HK.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_HK.csv index 924e64c61..4cb9854df 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_HK.csv +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_HK.csv @@ -26,9 +26,9 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,ŐVTCPacketM, +,OBC_TCTF_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rx.rec_status,PACKET,42,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=ERROR,TC Transer Frame M, +,OBC_TCTF_LAST_RECV_TIME,uint32_t,(uint32_t)gs_driver->latest_info->rx.last_rec_time,PACKET,43,0,32,NONE,,,,,,,,ŐVTC Transer FrameM, +,OBC_TCP_LAST_RECV_ACK,uint8_t,(uint8_t)(gs_driver->latest_info->rx.cmd_ack),PACKET,47,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=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, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv index 97bf231b5..c9f7b4f1b 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv +++ b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv @@ -31,85 +31,85 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,Ő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^, +,GS_RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->latest_info->rx.ret_from_if_rx,PACKET,61,0,32,NONE,,,,,,,,, +,TCTF_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rx.rec_status,PACKET,65,0,8,STATUS,,,,,,,0=SUCCESS:G@@ 1=ERROR:R,TC Transer Frame DS, +,TCTF_LAST_RECV_TIME,uint32_t,(uint32_t)gs_driver->latest_info->rx.last_rec_time,PACKET,66,0,32,NONE,,,,,,,,ŐVTC Transer FrameM, +,TCTF_FARM_PW,uint8_t,(uint8_t)gs_validate_info->positive_window_width,PACKET,70,0,8,NONE,,,,,,,,FARM-1 Positive Window Width, +,TCP_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rx.cmd_ack,PACKET,71,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,ŐVTCPacketM, +,TLM_TX_PORT_TYPE,uint8_t,(uint8_t)gs_driver->tlm_tx_port_type,PACKET,72,0,8,STATUS,,,,,,,0=CCSDS@@ 1=UART,TLM ̑MUART̂̂GŜ̂, +,GS_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_gs_cmd_list),PACKET,73,0,32,NONE,,,,,,,,nǃR}hJE^, +,GS_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(gs_command_dispatcher->prev.time.total_cycle),PACKET,77,0,32,NONE,,,,,,,,ŐVnǃR}hs, +,GS_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(gs_command_dispatcher->prev.code),PACKET,81,0,16,NONE,,,,,,,,ŐVnǃR}hID, +,GS_CMD_LAST_EXEC_STS,int32_t,(int32_t)(gs_command_dispatcher->prev.sts),PACKET,83,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,87,0,32,NONE,,,,,,,,ŐVnǃR}hs, +,GS_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(gs_command_dispatcher->prev_err.code),PACKET,91,0,16,NONE,,,,,,,,ŐVnǃR}hID, +,GS_CMD_LAST_ERR_STS,int32_t,(int32_t)(gs_command_dispatcher->prev_err.sts),PACKET,93,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,97,0,32,NONE,,,,,,,,nǃR}hsُJE^, +,RT_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rt_cmd_list),PACKET,101,0,32,NONE,,,,,,,,R}hJE^, +,RT_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(realtime_command_dispatcher->prev.time.total_cycle),PACKET,105,0,32,NONE,,,,,,,,ŐVR}hs, +,RT_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(realtime_command_dispatcher->prev.code),PACKET,109,0,16,NONE,,,,,,,,ŐVR}hID, +,RT_CMD_LAST_EXEC_STS,int32_t,(int32_t)(realtime_command_dispatcher->prev.sts),PACKET,111,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,115,0,32,NONE,,,,,,,,ŐVR}hs, +,RT_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(realtime_command_dispatcher->prev_err.code),PACKET,119,0,16,NONE,,,,,,,,ŐVR}hID, +,RT_CMD_LAST_ERR_STS,int32_t,(int32_t)(realtime_command_dispatcher->prev_err.sts),PACKET,121,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,125,0,32,NONE,,,,,,,,nǃR}hsُJE^, +,TL0_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[0]),PACKET,129,0,32,NONE,,,,,,,,TL0R}hJE^, +,TL0_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[0])),PACKET,133,0,8,NONE,,,,,,,,TL0o^R}h, +,TL0_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[0].prev.time.total_cycle),PACKET,134,0,32,NONE,,,,,,,,ŐVTL0R}hs, +,TL0_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev.code),PACKET,138,0,16,NONE,,,,,,,,ŐVTL0R}hID, +,TL0_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[0].prev.sts),PACKET,140,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,144,0,32,NONE,,,,,,,,ŐVTL0R}hs, +,TL0_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[0].prev_err.code),PACKET,148,0,16,NONE,,,,,,,,ŐVTL0R}hID, +,TL0_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[0].prev_err.sts),PACKET,150,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,154,0,32,NONE,,,,,,,,nǃR}hsُJE^, +,TL0_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[0].stop_on_error),PACKET,158,0,8,STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL0_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[0].lockout),PACKET,159,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,160,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,164,0,16,NONE,,,,,,,,TL0R}hID,ϐw肪ςȂƂɁc +,TL1_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[1]),PACKET,166,0,32,NONE,,,,,,,,TL1R}hJE^, +,TL1_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[1])),PACKET,170,0,8,NONE,,,,,,,,TL1o^R}h, +,TL1_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[1].prev.time.total_cycle),PACKET,171,0,32,NONE,,,,,,,,ŐVTL1R}hs, +,TL1_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[1].prev.code),PACKET,175,0,16,NONE,,,,,,,,ŐVTL1R}hID, +,TL1_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[1].prev.sts),PACKET,177,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,181,0,32,NONE,,,,,,,,ŐVTL1R}hs, +,TL1_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[1].prev_err.code),PACKET,185,0,16,NONE,,,,,,,,ŐVTL1R}hID, +,TL1_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[1].prev_err.sts),PACKET,187,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,191,0,32,NONE,,,,,,,,nǃR}hsُJE^, +,TL1_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[1].stop_on_error),PACKET,195,0,8,STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL1_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[1].lockout),PACKET,196,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,197,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,201,0,16,NONE,,,,,,,,TL1R}hID,ϐw肪ςȂƂɁc +,TL2_CMD_COUNTER,uint32_t,PL_count_executed_nodes(&PH_tl_cmd_list[2]),PACKET,203,0,32,NONE,,,,,,,,TL1R}hJE^, +,TL2_CMD_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[2])),PACKET,207,0,8,NONE,,,,,,,,TL1o^R}h, +,TL2_CMD_LAST_EXEC_TIME,uint32_t,(uint32_t)(timeline_command_dispatcher[2].prev.time.total_cycle),PACKET,208,0,32,NONE,,,,,,,,ŐVTL1R}hs, +,TL2_CMD_LAST_EXEC_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[2].prev.code),PACKET,212,0,16,NONE,,,,,,,,ŐVTL1R}hID, +,TL2_CMD_LAST_EXEC_STS,int32_t,(int32_t)(timeline_command_dispatcher[2].prev.sts),PACKET,214,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,218,0,32,NONE,,,,,,,,ŐVTL1R}hs, +,TL2_CMD_LAST_ERR_ID,uint16_t,(uint16_t)(timeline_command_dispatcher[2].prev_err.code),PACKET,222,0,16,NONE,,,,,,,,ŐVTL1R}hID, +,TL2_CMD_LAST_ERR_STS,int32_t,(int32_t)(timeline_command_dispatcher[2].prev_err.sts),PACKET,224,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,228,0,32,NONE,,,,,,,,nǃR}hsُJE^, +,TL2_CMD_SOE_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[2].stop_on_error),PACKET,232,0,8,STATUS,,,,,,,0=FALSE@@ 1=TRUE,, +,TL2_CMD_LOCKOUT_FLAG,uint8_t,(uint8_t)(timeline_command_dispatcher[2].lockout),PACKET,233,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,234,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,238,0,16,NONE,,,,,,,,TL1R}hID,ϐw肪ςȂƂɁc +,BCT_BLK_PTR,uint8_t,(uint8_t)(block_command_table->pos.block),PACKET,240,0,8,NONE,,,,,,,,BCT ubN|C^, +,BCT_CMD_PTR,uint8_t,(uint8_t)(block_command_table->pos.cmd),PACKET,241,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,242,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,246,0,16,NONE,,,,,,,,BCT o^R}hID,ϐw肪ςȂƂɁc +,MS_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,248,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,249,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,253,0,32,NONE,,,,,,,,TL0R}hJE^, +,MS_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_ms_tlm_list),PACKET,257,0,32,NONE,,,,,,,,TL0R}hJE^, +,MS_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list)),PACKET,261,0,8,NONE,,,,,,,,TL0o^R}h, +,ST_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_st_tlm_list),PACKET,262,0,32,NONE,,,,,,,,TL0R}hJE^, +,ST_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_st_tlm_list)),PACKET,266,0,8,NONE,,,,,,,,TL0o^R}h, +,RP_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rp_tlm_list),PACKET,267,0,32,NONE,,,,,,,,TL0R}hJE^, +,RP_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_rp_tlm_list)),PACKET,271,0,8,NONE,,,,,,,,TL0o^R}h, +,TCI_TX_CYCLE,uint32_t,(uint32_t)gs_driver->latest_info->tx.send_cycle,PACKET,272,0,32,NONE,,,,,,,,Z::oTCN, +,TCI_TX_BITRATE,uint32_t,gs_driver->driver_ccsds.ccsds_config.bitrate,PACKET,276,0,32,NONE,,,,,,,,Z::orbg[g, +,TCI_VCID,uint8_t,(uint8_t)gs_driver->latest_info->tx.vcid,PACKET,280,0,8,NONE,,,,,,,,\::oVCID, +,TCI_VCDU_COUNTER,uint32_t,gs_driver->latest_info->tx.vcdu_counter,PACKET,281,0,32,NONE,,,,,,,,Z::oVCDUJE^, +,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, 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 index 4148df238..b09af1281 100644 --- 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 @@ -32,10 +32,10 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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, +,TCTF_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,TC Transer Frame DS, +,TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->tctf_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=TCTF_VER:R@@ 2=TCTF_SCID:R@@ 3=TCTF_VCID:R@@ 4=TCTF_TYPE:R@@ 5=LOCKOUT:R@@ 6=TCTF_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,TC Transer Frame ،, +,TCTF_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,,,,,,,,ŐVTC Transer FrameM, +,TCTF_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@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,Ő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^, 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 index 61f15904d..be96f8cae 100644 --- 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 @@ -26,8 +26,8 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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_TCTF_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,TC Transer Frame M, +,OBC_TCTF_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,,,,,,,,ŐVTC Transer FrameM, ,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=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=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, 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 index 6c653b095..985769818 100644 --- 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 @@ -32,10 +32,10 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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, +,TCTF_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rec_status,PACKET,65,0,8,STATUS,,,,,,,0=SUCCESS:G@@ 1=ERROR:R,TC Transer Frame DS, +,TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->tctf_validate_status,PACKET,66,0,8,STATUS,,,,,,,0=SUCCESS:G@@ 1=TCTF_VER:R@@ 2=TCTF_SCID:R@@ 3=TCTF_VCID:R@@ 4=TCTF_TYPE:R@@ 5=LOCKOUT:R@@ 6=TCTF_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,TC Transer Frame ،, +,TCTF_LAST_RECV_TIME,uint32_t,(uint32_t)gs_driver->latest_info->last_rec_time,PACKET,67,0,32,NONE,,,,,,,,ŐVTC Transer FrameM, +,TCTF_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@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=UNKNOWN,Ő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^, 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 index 798c297c5..f6c7cf5a5 100644 --- 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 @@ -26,8 +26,8 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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_TCTF_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rec_status,PACKET,42,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=ERROR,TC Transer Frame M, +,OBC_TCTF_LAST_RECV_TIME,uint32_t,(uint32_t)gs_driver->latest_info->last_rec_time,PACKET,43,0,32,NONE,,,,,,,,ŐVTC Transer FrameM, ,OBC_TCP_LAST_RECV_ACK,uint8_t,(uint8_t)(gs_driver->latest_info->cmd_ack),PACKET,47,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=FORWARDED@@ 2=LIST_FULL@@ 3=PACKET_NOT_FOUND@@ 4=INVALID_PACKET@@ 5=TLC_SUCCESS@@ 6=TLC_PAST_TIME@@ 7=TLC_ALREADY_EXISTS@@ 8=BC_SUCCESS@@ 9=BC_INVALID_BLOCK_NO@@ 10=BC_ISORATED_CMD@@ 11=BC_CMD_TOO_LONG@@ 12=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, diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/CMakeLists.txt b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/CMakeLists.txt index 1792d95c0..21a2183b9 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/CMakeLists.txt +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/CMakeLists.txt @@ -15,9 +15,9 @@ set(C2A_SRCS NormalBlockCommandDefinition/nbc_respond_eh_for_test.c NormalBlockCommandDefinition/nbc_test_bcl.c Ccsds/m_pdu.c - Ccsds/TCFrame.c + Ccsds/tc_transfer_frame.c Ccsds/tcp_to_m_pdu.c - Ccsds/TCSegment.c + Ccsds/tc_segment.c Ccsds/vcdu.c ) diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCFrame.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCFrame.c deleted file mode 100644 index 22ef7922c..000000000 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCFrame.c +++ /dev/null @@ -1,110 +0,0 @@ -#pragma section REPRO -#include "TCFrame.h" - -#include // for memcpy - -TCF_VER TCF_get_ver(const TCF* tcf) -{ - unsigned int pos = 0; - uint8_t mask = 0xc0; // 1100 0000b - - TCF_VER ver = (TCF_VER)((tcf->header[pos] & mask) >> 6); - - switch (ver) - { - case TCF_VER_1: - return ver; - - default: - return TCF_VER_UNKNOWN; - } -} - -TCF_TYPE TCF_get_type(const TCF* tcf) -{ - unsigned int pos = 0; - uint8_t mask = 0x30; // 0011 0000b - - TCF_TYPE type = (TCF_TYPE)((tcf->header[pos] & mask) >> 4); - - switch (type) - { - case TCF_TYPE_AD: // FALL THROUGH - case TCF_TYPE_BD: // FALL THROUGH - case TCF_TYPE_BC: - return type; - - default: - return TCF_TYPE_UNKNOWN; - } -} - -TCF_SCID TCF_get_scid(const TCF* tcf) -{ - unsigned int pos = 0; - uint8_t mask = 0x03; // 0000 0011b - - // pos = 0の下位2bitsとpos = 1の8bitsを合わせた10bits - TCF_SCID scid = (TCF_SCID)(tcf->header[pos] & mask); - scid = (TCF_SCID)(scid << 8); - scid = (TCF_SCID)(scid + tcf->header[pos + 1]); - - switch (scid) - { - case TCF_SCID_SAMPLE_SATELLITE: - return scid; - - default: - return TCF_SCID_UNKNOWN; - } -} - -TCF_VCID TCF_get_vcid(const TCF* tcf) -{ - unsigned int pos = 2; - uint8_t mask = 0xfc; // 1111 1100b - - TCF_VCID vcid = (TCF_VCID)((tcf->header[pos] & mask) >> 2); - - switch (vcid) - { - case TCF_VCID_REALTIME: - return vcid; - - default: - return TCF_VCID_UNKNOWN; - } -} - -size_t TCF_get_frame_len(const TCF* tcf) -{ - unsigned int pos = 2; - uint8_t mask = 0x03; // 0000 0011b - - // pos = 0の下位2bitsとpos = 1の8bitsを合わせた10bits - size_t len = (tcf->header[pos] & mask); - len <<= 8; - len += tcf->header[pos + 1]; - - // TC Frameの長さ表記は0起算なので1起算に変換した値を返す - return len + 1; -} - -uint8_t TCF_get_frame_seq_num(const TCF* tcf) -{ - size_t pos = 4; - return (uint8_t)(tcf->header[pos]); -} - -uint16_t TCF_get_fecw(const TCF* tcf) -{ - unsigned int pos = 0; - - uint16_t fecw = tcf->fecf[pos]; - fecw <<= 8; - fecw += tcf->fecf[pos + 1]; - - return fecw; -} - -#pragma section diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCFrame.h b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCFrame.h deleted file mode 100644 index 4f9a4e158..000000000 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCFrame.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef TCFRAME_H_ -#define TCFRAME_H_ - -#include // for size_t - -#include "../../Library/stdint.h" -#include "TCSegment.h" - -#define TCF_MAX_LEN (1024u) -#define TCF_HEADER_SIZE (5u) -#define TCF_FECF_SIZE (2u) - -#define TCF_BC_CMD_CODE_UNLOCK (0x00) -#define TCF_BC_CMD_CODE_SET_VR_0 (0x82) -#define TCF_BC_CMD_CODE_SET_VR_1 (0x00) - -typedef struct -{ - uint8_t header[TCF_HEADER_SIZE]; - TCS tcs; - uint8_t fecf[TCF_FECF_SIZE]; -} TCF; - -typedef enum -{ - TCF_VER_1 = 0, // 00b: Version 1 - TCF_VER_UNKNOWN -} TCF_VER; - -typedef enum -{ - TCF_TYPE_AD = 0, // 00b: TC data with FARM - TCF_TYPE_BD = 2, // 10b: TC data without FARM - TCF_TYPE_BC = 3, // 11b: FARM Control Command - TCF_TYPE_UNKNOWN -} TCF_TYPE; - -typedef enum -{ - TCF_SCID_SAMPLE_SATELLITE = 0x00, // SCID for command of sample satellite - TCF_SCID_UNKNOWN -} TCF_SCID; - -typedef enum -{ - TCF_VCID_REALTIME = 0, - TCF_VCID_UNKNOWN -} TCF_VCID; - -TCF_VER TCF_get_ver(const TCF* tcf); - -TCF_TYPE TCF_get_type(const TCF* tcf); - -TCF_SCID TCF_get_scid(const TCF* tcf); - -TCF_VCID TCF_get_vcid(const TCF* tcf); - -size_t TCF_get_frame_len(const TCF* tcf); - -uint8_t TCF_get_frame_seq_num(const TCF* tcf); - -uint16_t TCF_get_fecw(const TCF* tcf); - -uint16_t TCF_calc_fecw(const TCF* tcf); - -#endif diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCSegment.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCSegment.c deleted file mode 100644 index 7c030956c..000000000 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCSegment.c +++ /dev/null @@ -1,32 +0,0 @@ -#pragma section REPRO -#include "TCSegment.h" - -#include // for memcpy - -TCS_SEQ_FLAG TCS_get_seq_flag(const TCS* tcs) -{ - unsigned int pos = 0; - uint8_t mask = 0xc0; // 1100 0000b - - return (TCS_SEQ_FLAG)((tcs->header[pos] & mask) >> 6); -} - -TCS_MAP_ID TCS_get_map_id(const TCS* tcs) -{ - unsigned int pos = 0; - uint8_t mask = 0x3f; - - TCS_MAP_ID map_id = (TCS_MAP_ID)(tcs->header[pos] & mask); - - switch (map_id) - { - case TCS_MAP_ID_DHU_HDC: // FALL THROUGH - case TCS_MAP_ID_NORMAL: // FALL THROUGH - case TCS_MAP_ID_LONG: - return map_id; - - default: - return TCS_MAP_ID_UNKNOWN; - } -} -#pragma section diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCSegment.h b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCSegment.h deleted file mode 100644 index ff405ad4c..000000000 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCSegment.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef TCSEGMENT_H_ -#define TCSEGMENT_H_ - -#include // for size_t - -#include "../../Library/stdint.h" -#include - -// FIXME: TCP から CmdSpacePacket にしたことによる整理をする!!! - -#define TCS_HEADER_SIZE (1u) - -typedef struct -{ - uint8_t header[TCS_HEADER_SIZE]; - CmdSpacePacket tcp; // FIXME: TCP から CSP に諸々直す! -} TCS; - -typedef enum -{ - TCS_SEQ_FIRST = 1, // 01b: First Segment - TCS_SEQ_CONT = 0, // 00b: Continuing Segment - TCS_SEQ_LAST = 2, // 10b: Last Segment - TCS_SEQ_SINGLE = 3 // 11b: No Segmentation -} TCS_SEQ_FLAG; - -typedef enum -{ - TCS_MAP_ID_DHU_HDC = 1, // 000001b: DHU Hard Decode Command Packet - TCS_MAP_ID_NORMAL = 2, // 000010b: Normal Command Packet - TCS_MAP_ID_LONG = 4, // 000100b: Long Command Packet - TCS_MAP_ID_UNKNOWN -} TCS_MAP_ID; - -TCS_SEQ_FLAG TCS_get_seq_flag(const TCS* tcs); - -TCS_MAP_ID TCS_get_map_id(const TCS* tcs); - -#endif diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.c new file mode 100644 index 000000000..e44720dd9 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.c @@ -0,0 +1,40 @@ +#pragma section REPRO +/** + * @file + * @brief CCSDS で規定される TC Segment の実装 + */ +#include "tc_segment.h" + +TCS_SEQ_FLAG TCS_get_seq_flag(const TcSegment* tcs) +{ + uint8_t pos = 0; + uint8_t mask = 0xc0; // 1100 0000b + + return (TCS_SEQ_FLAG)((tcs->packet[pos] & mask) >> 6); +} + +TCS_MAP_ID TCS_get_map_id(const TcSegment* tcs) +{ + uint8_t pos = 0; + uint8_t mask = 0x3f; // 0011 1111b + + TCS_MAP_ID map_id = (TCS_MAP_ID)(tcs->packet[pos] & mask); + + switch (map_id) + { + case TCS_MAP_ID_DHU_HDC: // FALL THROUGH + case TCS_MAP_ID_NORMAL: // FALL THROUGH + case TCS_MAP_ID_LONG: + return map_id; + + default: + return TCS_MAP_ID_UNKNOWN; + } +} + +const CmdSpacePacket* TCS_get_command_space_packet(const TcSegment* tcs) +{ + return (const CmdSpacePacket*)(&tcs->packet[TCS_HEADER_SIZE]); +} + +#pragma section diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.h b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.h new file mode 100644 index 000000000..0ba52404e --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.h @@ -0,0 +1,85 @@ +/** + * @file + * @brief CCSDS で規定される TC Segment の実装 + * @note packet 構造 + * |---------+-------+-------+-----------------------------| + * | Pos | Pos | Size | Name | + * | [octet] | [bit] | [bit] | | + * |---------+-------+-------+-----------------------------| + * | === Primary Header ===================================| + * |---------+-------+-------+-----------------------------| + * | 0 | 0 | 2 | Sequential Flag | + * | 0 | 2 | 6 | Multiplexer Access Point ID | + * |---------+-------+-------+-----------------------------| + * | === User Data Field ==================================| + * |---------+-------+-------+-----------------------------| + * | 1 | 0 | * | Command Space Packet | + * |---------+-------+-------+-----------------------------| + */ +#ifndef TC_SEGMENT_H_ +#define TC_SEGMENT_H_ + +#include "../../Library/stdint.h" +#include +#include + +#define TCS_HEADER_SIZE (1) +#define TCS_PACKET_MAX_LENGTH (TCS_HEADER_SIZE + CSP_MAX_LEN) + +/** + * @struct TcSegment + * @brief TC Segment のパケット構造体 + */ +typedef struct +{ + uint8_t packet[TCS_PACKET_MAX_LENGTH]; +} TcSegment; + +/** + * @enum TCS_SEQ_FLAG + * @brief Sequential Flag + * @note 2 bit + */ +typedef enum +{ + TCS_SEQ_FIRST = 1, // 01b: First Segment + TCS_SEQ_CONT = 0, // 00b: Continuing Segment + TCS_SEQ_LAST = 2, // 10b: Last Segment + TCS_SEQ_SINGLE = 3 // 11b: No Segmentation +} TCS_SEQ_FLAG; + +/** + * @enum TCS_MAP_ID + * @brief Multiplexer Access Point ID + * @note 6 bit + */ +typedef enum +{ + TCS_MAP_ID_DHU_HDC = 1, // 000001b: DHU Hard Decode Command Packet + TCS_MAP_ID_NORMAL = 2, // 000010b: Normal Command Packet + TCS_MAP_ID_LONG = 4, // 000100b: Long Command Packet + TCS_MAP_ID_UNKNOWN +} TCS_MAP_ID; + +/** + * @brief sequence flag を取得 + * @param[in]: TcSegment + * @return TCS_SEQ_FLAG + */ +TCS_SEQ_FLAG TCS_get_seq_flag(const TcSegment* tcs); + +/** + * @brief MAP ID を取得 + * @param[in]: TcSegment + * @return TCS_MAP_ID + */ +TCS_MAP_ID TCS_get_map_id(const TcSegment* tcs); + +/** + * @brief Command space packet 開始ポインタを取得 + * @param[in]: TcSegment + * @return CmdSpacePacket + */ +const CmdSpacePacket* TCS_get_command_space_packet(const TcSegment* tcs); + +#endif diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.c new file mode 100644 index 000000000..fb1165ff5 --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.c @@ -0,0 +1,132 @@ +#pragma section REPRO +/** + * @file + * @brief CCSDS で規定される TC Transfer Frame の実装 + */ +#include "tc_transfer_frame.h" + +#include +#include + +TCTF_VER TCTF_get_ver(const TcTransferFrame* tctf) +{ + uint8_t pos = 0; + uint8_t mask = 0xc0; // 1100 0000b + + TCTF_VER ver = (TCTF_VER)((tctf->packet[pos] & mask) >> 6); + + switch (ver) + { + case TCTF_VER_1: + return ver; + + default: + return TCTF_VER_UNKNOWN; + } +} + +TCTF_TYPE TCTF_get_type(const TcTransferFrame* tctf) +{ + uint8_t pos = 0; + uint8_t mask = 0x30; // 0011 0000b + + TCTF_TYPE type = (TCTF_TYPE)((tctf->packet[pos] & mask) >> 4); + + switch (type) + { + case TCTF_TYPE_AD: // FALL THROUGH + case TCTF_TYPE_BD: // FALL THROUGH + case TCTF_TYPE_BC: + return type; + + default: + return TCTF_TYPE_UNKNOWN; + } +} + +TCTF_SCID TCTF_get_scid(const TcTransferFrame* tctf) +{ + uint8_t pos = 0; + uint8_t mask = 0x03; // 0000 0011b + + // pos = 0の下位2bitsとpos = 1の8bitsを合わせた10bits + TCTF_SCID scid = (TCTF_SCID)(tctf->packet[pos] & mask); + scid = (TCTF_SCID)(scid << 8); + scid = (TCTF_SCID)(scid + tctf->packet[pos + 1]); + + switch (scid) + { + case TCTF_SCID_SAMPLE_SATELLITE: + return scid; + + default: + return TCTF_SCID_UNKNOWN; + } +} + +TCTF_VCID TCTF_get_vcid(const TcTransferFrame* tctf) +{ + uint8_t pos = 2; + uint8_t mask = 0xfc; // 1111 1100b + + TCTF_VCID vcid = (TCTF_VCID)((tctf->packet[pos] & mask) >> 2); + + switch (vcid) + { + case TCTF_VCID_REALTIME: + return vcid; + + default: + return TCTF_VCID_UNKNOWN; + } +} + +uint16_t TCTF_get_frame_len(const TcTransferFrame* tctf) +{ + uint8_t pos = 2; + uint8_t mask = 0x03; // 0000 0011b + + // pos = 0の下位2bitsとpos = 1の8bitsを合わせた10bits + uint16_t len = (tctf->packet[pos] & mask); + len <<= 8; + len += tctf->packet[pos + 1]; + + // TC Frameの長さ表記は0起算なので1起算に変換した値を返す + return len + 1; +} + +uint8_t TCTF_get_frame_seq_num(const TcTransferFrame* tctf) +{ + return tctf->packet[4]; +} + +const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf) +{ + return (const TcSegment*)(&tctf->packet[TCTF_HEADER_SIZE]); +} + +uint16_t TCTF_get_fecw(const TcTransferFrame* tctf) +{ + uint16_t length = TCTF_get_frame_len(tctf); + + uint16_t fecw = tctf->packet[length - 2]; + fecw <<= 8; + fecw += tctf->packet[length - 1]; + + return fecw; +} + +uint8_t TCTF_check_fecw(const TcTransferFrame* tctf) +{ + uint16_t len = TCTF_get_frame_len(tctf); + uint16_t result = crc_16_ccitt_left(0xffff, (const unsigned char*)tctf, len, 0); + + return !result; +} + +const TcTransferFrame* TCTF_convert_from_bytes_to_tctf(const uint8_t* byte) +{ + return (const TcTransferFrame*)byte; +} + +#pragma section diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.h b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.h new file mode 100644 index 000000000..8219230ca --- /dev/null +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.h @@ -0,0 +1,175 @@ +/** + * @file + * @brief CCSDS で規定される TC Transfer Frame の実装 + * @note packet 構造 + * |---------+-------+-------+--------------------------| + * | Pos | Pos | Size | Name | + * | [octet] | [bit] | [bit] | | + * |---------+-------+-------+--------------------------| + * | === Primary Header ================================| + * |---------+-------+-------+--------------------------| + * | 0 | 0 | 2 | Version | + * | 0 | 2 | 2 | Type | + * | 0 | 4 | 2 | N/A | + * | 0 | 6 | 10 | Spacecraft ID | + * | 2 | 0 | 6 | Virtual Channel ID | + * | 2 | 6 | 10 | Frame Length | + * | 4 | 0 | 8 | Frame Sequence Number | + * |---------+-------+-------+--------------------------| + * | === User Data Field ===============================| + * |---------+-------+-------+--------------------------| + * | 5 | 0 | * | TC Segment | + * |---------+-------+-------+--------------------------| + * | === Frame Error Control Field =====================| + * |---------+-------+-------+--------------------------| + * | * | 0 | 16 | Frame Error Control Word | + * |---------+-------+-------+--------------------------| + */ +#ifndef TC_TRANSFER_FRAME_H_ +#define TC_TRANSFER_FRAME_H_ + +#include + +#include "../../Library/stdint.h" +#include "tc_segment.h" + +#define TCTF_MAX_LEN (1024) +#define TCTF_HEADER_SIZE (5) +#define TCTF_FECF_SIZE (2) + +#define TCTF_BC_CMD_CODE_UNLOCK (0x00) +#define TCTF_BC_CMD_CODE_SET_VR_1ST_BYTE (0x82) +#define TCTF_BC_CMD_CODE_SET_VR_2ND_BYTE (0x00) + +#if TCTF_HEADER_SIZE + TCS_PACKET_MAX_LENGTH + TCTF_FECF_SIZE > TCTF_MAX_LEN +#error TCTCF LEN IS LONGER THAN TCTF MAX LEN +#endif + +/** + * @struct TcTransferFrame + * @brief TC Transfer Frame のパケット構造体 + */ +typedef struct +{ + uint8_t packet[TCTF_MAX_LEN]; +} TcTransferFrame; + +/** + * @enum TCTF_VER + * @brief Version + * @note 2 bit + */ +typedef enum +{ + TCTF_VER_1 = 0, // 00b: Version 1 + TCTF_VER_UNKNOWN +} TCTF_VER; + +/** + * @enum TCTF_TYPE + * @brief Type + * @note 2 bit + */ +typedef enum +{ + TCTF_TYPE_AD = 0, // 00b: TC data with FARM + TCTF_TYPE_BD = 2, // 10b: TC data without FARM + TCTF_TYPE_BC = 3, // 11b: FARM Control Command + TCTF_TYPE_UNKNOWN +} TCTF_TYPE; + +/** + * @enum TCTF_SCID + * @brief Spacecraft ID + * @note 10 bit + */ +typedef enum +{ + TCTF_SCID_SAMPLE_SATELLITE = 0x35C, // SCID for command of sample satellite + TCTF_SCID_UNKNOWN +} TCTF_SCID; + +/** + * @enum TCTF_VCID + * @brief Virtual Channel ID + * @note 6 bit + */ +typedef enum +{ + TCTF_VCID_REALTIME = 0, + TCTF_VCID_UNKNOWN +} TCTF_VCID; + +/** + * @brief version を取得 + * @param[in] tctf: TcTransferFrame + * @return TCTF_VER + */ +TCTF_VER TCTF_get_ver(const TcTransferFrame* tctf); + +/** + * @brief command type を取得 + * @param[in] tctf: TcTransferFrame + * @return TCTF_TYPE + */ +TCTF_TYPE TCTF_get_type(const TcTransferFrame* tctf); + +/** + * @brief SCID を取得 + * @param[in] tctf: TcTransferFrame + * @return TCTF_SCID + */ +TCTF_SCID TCTF_get_scid(const TcTransferFrame* tctf); + +/** + * @brief VCID を取得 + * @param[in] tctf: TcTransferFrame + * @return TCTF_VCID + */ +TCTF_VCID TCTF_get_vcid(const TcTransferFrame* tctf); + +/** + * @brief Frame Length を取得 + * @param[in] tctf: TcTransferFrame + * @return Frame Length + */ +uint16_t TCTF_get_frame_len(const TcTransferFrame* tctf); + +/** + * @brief Frame Sequence Number を取得 + * @param[in] tctf: TcTransferFrame + * @return Frame Sequence Number + */ +uint8_t TCTF_get_frame_seq_num(const TcTransferFrame* tctf); + +/** + * @brief FECW を取得 + * @param[in] tctf: TcTransferFrame + * @return FECW + * @note エンディアンは既に考慮されている (ccsds は big endian) + */ +uint16_t TCTF_get_fecw(const TcTransferFrame* tctf); + +/** + * @brief TC Segment を取得 + * @param[in] tctf: TcTransferFrame + * @return TC Segment + */ +const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf); + +/** + * @brief TCTF FECW のチェック + * @param[in] tctf: TcTransferFrame + * @return bool: 1: ok, 0: error + * @note ここでは標準として CRC-16-CCITT を採用している + */ +uint8_t TCTF_check_fecw(const TcTransferFrame* tctf); + +/** + * @brief 受信 byte 列を TcTransferFrame* に変換 + * @param[in] byte: 受信 byte 列 + * @return TcTransferFrame* + */ +const TcTransferFrame* TCTF_convert_from_bytes_to_tctf(const uint8_t* byte); + +#endif diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/command_definitions.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/command_definitions.c index e1f03dccc..ee31c03e0 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/command_definitions.c +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/command_definitions.c @@ -144,7 +144,6 @@ void CA_load_cmd_table(CA_CmdInfo cmd_table[CA_MAX_CMDS]) cmd_table[Cmd_CODE_DI_GS_SET_RP_FLUSH_INTERVAL].cmd_func = Cmd_DI_GS_SET_RP_FLUSH_INTERVAL; cmd_table[Cmd_CODE_DI_GS_SET_FARM_PW].cmd_func = Cmd_DI_GS_SET_FARM_PW; cmd_table[Cmd_CODE_DI_GS_SET_INFO].cmd_func = Cmd_DI_GS_SET_INFO; - cmd_table[Cmd_CODE_DI_GS_CCSDS_READ_SEQUENCE].cmd_func = Cmd_DI_GS_CCSDS_READ_SEQUENCE; cmd_table[Cmd_CODE_DI_GS_CCSDS_GET_BUFFER].cmd_func = Cmd_DI_GS_CCSDS_GET_BUFFER; cmd_table[Cmd_CODE_DI_GS_CCSDS_SET_RATE].cmd_func = Cmd_DI_GS_CCSDS_SET_RATE; cmd_table[Cmd_CODE_WDT_INIT].cmd_func = Cmd_WDT_INIT; diff --git a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/command_definitions.h b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/command_definitions.h index 8a74c8547..58554b7c2 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/command_definitions.h +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/command_definitions.h @@ -142,17 +142,16 @@ typedef enum Cmd_CODE_DI_GS_SET_RP_FLUSH_INTERVAL = 0x0104, Cmd_CODE_DI_GS_SET_FARM_PW = 0x0105, Cmd_CODE_DI_GS_SET_INFO = 0x0106, - Cmd_CODE_DI_GS_CCSDS_READ_SEQUENCE = 0x0107, - Cmd_CODE_DI_GS_CCSDS_GET_BUFFER = 0x0108, - Cmd_CODE_DI_GS_CCSDS_SET_RATE = 0x0109, - Cmd_CODE_WDT_INIT = 0x010A, - Cmd_CODE_WDT_ENABLE = 0x010B, - Cmd_CODE_WDT_DISABLE = 0x010C, - Cmd_CODE_WDT_STOP_CLEAR = 0x010D, - Cmd_CODE_WDT_START_CLEAR = 0x010E, - Cmd_CODE_UART_TEST_INIT_DI = 0x010F, - Cmd_CODE_UART_TEST_UPDATE = 0x0110, - Cmd_CODE_UART_TEST_SEND_TEST = 0x0111, + Cmd_CODE_DI_GS_CCSDS_GET_BUFFER = 0x0107, + Cmd_CODE_DI_GS_CCSDS_SET_RATE = 0x0108, + Cmd_CODE_WDT_INIT = 0x0109, + Cmd_CODE_WDT_ENABLE = 0x010A, + Cmd_CODE_WDT_DISABLE = 0x010B, + Cmd_CODE_WDT_STOP_CLEAR = 0x010C, + Cmd_CODE_WDT_START_CLEAR = 0x010D, + Cmd_CODE_UART_TEST_INIT_DI = 0x010E, + Cmd_CODE_UART_TEST_UPDATE = 0x010F, + Cmd_CODE_UART_TEST_SEND_TEST = 0x0110, Cmd_CODE_UTIL_CMD_ADD = 0x03E0, Cmd_CODE_UTIL_CMD_SEND = 0x03E1, Cmd_CODE_UTIL_CMD_RESET = 0x03E2, 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 8903521b7..a43f5ff24 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 @@ -67,7 +67,7 @@ void TF_load_tlm_table(TF_TlmInfo tlm_table[TF_MAX_TLMS]) static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_len) { - if (286 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; + if (285 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; #ifndef BUILD_SETTINGS_FAST_BUILD TF_copy_u32(&packet[26], (uint32_t)(TMGR_get_master_clock().mode_cycle)); @@ -81,88 +81,87 @@ static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_le TF_copy_u8(&packet[54], (uint8_t)(TDSP_info->tskd.prev_err.time.step)); TF_copy_u16(&packet[55], (uint16_t)(TDSP_info->tskd.prev_err.code)); TF_copy_i32(&packet[57], (int32_t)(TDSP_info->tskd.prev_err.sts)); - TF_copy_i32(&packet[61], (int32_t)gs_driver->latest_info->ret_from_if_rx); - TF_copy_u8(&packet[65], (uint8_t)gs_driver->latest_info->rec_status); - TF_copy_u8(&packet[66], (uint8_t)gs_driver->latest_info->tc_frame_validate_status); - TF_copy_u32(&packet[67], (uint32_t)gs_driver->latest_info->last_rec_time); - TF_copy_u8(&packet[71], (uint8_t)gs_validate_info->positive_window_width); - TF_copy_u8(&packet[72], (uint8_t)gs_driver->latest_info->cmd_ack); - TF_copy_u8(&packet[73], (uint8_t)gs_driver->tlm_tx_port_type); - TF_copy_u32(&packet[74], PL_count_executed_nodes(&PH_gs_cmd_list)); - TF_copy_u32(&packet[78], (uint32_t)(gs_command_dispatcher->prev.time.total_cycle)); - TF_copy_u16(&packet[82], (uint16_t)(gs_command_dispatcher->prev.code)); - TF_copy_i32(&packet[84], (int32_t)(gs_command_dispatcher->prev.sts)); - TF_copy_u32(&packet[88], (uint32_t)(gs_command_dispatcher->prev_err.time.total_cycle)); - TF_copy_u16(&packet[92], (uint16_t)(gs_command_dispatcher->prev_err.code)); - TF_copy_i32(&packet[94], (int32_t)(gs_command_dispatcher->prev_err.sts)); - TF_copy_u32(&packet[98], (uint32_t)(gs_command_dispatcher->error_counter)); - TF_copy_u32(&packet[102], PL_count_executed_nodes(&PH_rt_cmd_list)); - TF_copy_u32(&packet[106], (uint32_t)(realtime_command_dispatcher->prev.time.total_cycle)); - TF_copy_u16(&packet[110], (uint16_t)(realtime_command_dispatcher->prev.code)); - TF_copy_i32(&packet[112], (int32_t)(realtime_command_dispatcher->prev.sts)); - TF_copy_u32(&packet[116], (uint32_t)(realtime_command_dispatcher->prev_err.time.total_cycle)); - TF_copy_u16(&packet[120], (uint16_t)(realtime_command_dispatcher->prev_err.code)); - TF_copy_i32(&packet[122], (int32_t)(realtime_command_dispatcher->prev_err.sts)); - TF_copy_u32(&packet[126], (uint32_t)(realtime_command_dispatcher->error_counter)); - TF_copy_u32(&packet[130], PL_count_executed_nodes(&PH_tl_cmd_list[0])); - TF_copy_u8(&packet[134], (uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[0]))); - TF_copy_u32(&packet[135], (uint32_t)(timeline_command_dispatcher[0].prev.time.total_cycle)); - TF_copy_u16(&packet[139], (uint16_t)(timeline_command_dispatcher[0].prev.code)); - TF_copy_i32(&packet[141], (int32_t)(timeline_command_dispatcher[0].prev.sts)); - TF_copy_u32(&packet[145], (uint32_t)(timeline_command_dispatcher[0].prev_err.time.total_cycle)); - TF_copy_u16(&packet[149], (uint16_t)(timeline_command_dispatcher[0].prev_err.code)); - TF_copy_i32(&packet[151], (int32_t)(timeline_command_dispatcher[0].prev_err.sts)); - TF_copy_u32(&packet[155], (uint32_t)(timeline_command_dispatcher[0].error_counter)); - TF_copy_u8(&packet[159], (uint8_t)(timeline_command_dispatcher[0].stop_on_error)); - TF_copy_u8(&packet[160], (uint8_t)(timeline_command_dispatcher[0].lockout)); - TF_copy_u32(&packet[161], (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)))); - TF_copy_u16(&packet[165], (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)))); - TF_copy_u32(&packet[167], PL_count_executed_nodes(&PH_tl_cmd_list[1])); - TF_copy_u8(&packet[171], (uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[1]))); - TF_copy_u32(&packet[172], (uint32_t)(timeline_command_dispatcher[1].prev.time.total_cycle)); - TF_copy_u16(&packet[176], (uint16_t)(timeline_command_dispatcher[1].prev.code)); - TF_copy_i32(&packet[178], (int32_t)(timeline_command_dispatcher[1].prev.sts)); - TF_copy_u32(&packet[182], (uint32_t)(timeline_command_dispatcher[1].prev_err.time.total_cycle)); - TF_copy_u16(&packet[186], (uint16_t)(timeline_command_dispatcher[1].prev_err.code)); - TF_copy_i32(&packet[188], (int32_t)(timeline_command_dispatcher[1].prev_err.sts)); - TF_copy_u32(&packet[192], (uint32_t)(timeline_command_dispatcher[1].error_counter)); - TF_copy_u8(&packet[196], (uint8_t)(timeline_command_dispatcher[1].stop_on_error)); - TF_copy_u8(&packet[197], (uint8_t)(timeline_command_dispatcher[1].lockout)); - TF_copy_u32(&packet[198], (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)))); - TF_copy_u16(&packet[202], (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)))); - TF_copy_u32(&packet[204], PL_count_executed_nodes(&PH_tl_cmd_list[2])); - TF_copy_u8(&packet[208], (uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[2]))); - TF_copy_u32(&packet[209], (uint32_t)(timeline_command_dispatcher[2].prev.time.total_cycle)); - TF_copy_u16(&packet[213], (uint16_t)(timeline_command_dispatcher[2].prev.code)); - TF_copy_i32(&packet[215], (int32_t)(timeline_command_dispatcher[2].prev.sts)); - TF_copy_u32(&packet[219], (uint32_t)(timeline_command_dispatcher[2].prev_err.time.total_cycle)); - TF_copy_u16(&packet[223], (uint16_t)(timeline_command_dispatcher[2].prev_err.code)); - TF_copy_i32(&packet[225], (int32_t)(timeline_command_dispatcher[2].prev_err.sts)); - TF_copy_u32(&packet[229], (uint32_t)(timeline_command_dispatcher[2].error_counter)); - TF_copy_u8(&packet[233], (uint8_t)(timeline_command_dispatcher[2].stop_on_error)); - TF_copy_u8(&packet[234], (uint8_t)(timeline_command_dispatcher[2].lockout)); - TF_copy_u32(&packet[235], (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)))); - TF_copy_u16(&packet[239], (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)))); - TF_copy_u8(&packet[241], (uint8_t)(block_command_table->pos.block)); - TF_copy_u8(&packet[242], (uint8_t)(block_command_table->pos.cmd)); - TF_copy_u32(&packet[243], ((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)))); - TF_copy_u16(&packet[247], (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)))); - TF_copy_u8(&packet[249], gs_driver->ccsds_info.buffer_num); - TF_copy_u32(&packet[250], (uint32_t)(DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval)); - TF_copy_u32(&packet[254], (uint32_t)(DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval)); - TF_copy_u32(&packet[258], PL_count_executed_nodes(&PH_ms_tlm_list)); - TF_copy_u8(&packet[262], (uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list))); - TF_copy_u32(&packet[263], PL_count_executed_nodes(&PH_st_tlm_list)); - TF_copy_u8(&packet[267], (uint8_t)(PL_count_active_nodes(&PH_st_tlm_list))); - TF_copy_u32(&packet[268], PL_count_executed_nodes(&PH_rp_tlm_list)); - TF_copy_u8(&packet[272], (uint8_t)(PL_count_active_nodes(&PH_rp_tlm_list))); - TF_copy_u32(&packet[273], (uint32_t)gs_driver->latest_info->send_cycle); - TF_copy_u32(&packet[277], gs_driver->driver_ccsds.ccsds_config.bitrate); - TF_copy_u8(&packet[281], (uint8_t)(gs_driver->info[2].vcid)); - TF_copy_u32(&packet[282], gs_driver->latest_info->vcdu_counter); + TF_copy_i32(&packet[61], (int32_t)gs_driver->latest_info->rx.ret_from_if_rx); + TF_copy_u8(&packet[65], (uint8_t)gs_driver->latest_info->rx.rec_status); + TF_copy_u32(&packet[66], (uint32_t)gs_driver->latest_info->rx.last_rec_time); + TF_copy_u8(&packet[70], (uint8_t)gs_validate_info->positive_window_width); + TF_copy_u8(&packet[71], (uint8_t)gs_driver->latest_info->rx.cmd_ack); + TF_copy_u8(&packet[72], (uint8_t)gs_driver->tlm_tx_port_type); + TF_copy_u32(&packet[73], PL_count_executed_nodes(&PH_gs_cmd_list)); + TF_copy_u32(&packet[77], (uint32_t)(gs_command_dispatcher->prev.time.total_cycle)); + TF_copy_u16(&packet[81], (uint16_t)(gs_command_dispatcher->prev.code)); + TF_copy_i32(&packet[83], (int32_t)(gs_command_dispatcher->prev.sts)); + TF_copy_u32(&packet[87], (uint32_t)(gs_command_dispatcher->prev_err.time.total_cycle)); + TF_copy_u16(&packet[91], (uint16_t)(gs_command_dispatcher->prev_err.code)); + TF_copy_i32(&packet[93], (int32_t)(gs_command_dispatcher->prev_err.sts)); + TF_copy_u32(&packet[97], (uint32_t)(gs_command_dispatcher->error_counter)); + TF_copy_u32(&packet[101], PL_count_executed_nodes(&PH_rt_cmd_list)); + TF_copy_u32(&packet[105], (uint32_t)(realtime_command_dispatcher->prev.time.total_cycle)); + TF_copy_u16(&packet[109], (uint16_t)(realtime_command_dispatcher->prev.code)); + TF_copy_i32(&packet[111], (int32_t)(realtime_command_dispatcher->prev.sts)); + TF_copy_u32(&packet[115], (uint32_t)(realtime_command_dispatcher->prev_err.time.total_cycle)); + TF_copy_u16(&packet[119], (uint16_t)(realtime_command_dispatcher->prev_err.code)); + TF_copy_i32(&packet[121], (int32_t)(realtime_command_dispatcher->prev_err.sts)); + TF_copy_u32(&packet[125], (uint32_t)(realtime_command_dispatcher->error_counter)); + TF_copy_u32(&packet[129], PL_count_executed_nodes(&PH_tl_cmd_list[0])); + TF_copy_u8(&packet[133], (uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[0]))); + TF_copy_u32(&packet[134], (uint32_t)(timeline_command_dispatcher[0].prev.time.total_cycle)); + TF_copy_u16(&packet[138], (uint16_t)(timeline_command_dispatcher[0].prev.code)); + TF_copy_i32(&packet[140], (int32_t)(timeline_command_dispatcher[0].prev.sts)); + TF_copy_u32(&packet[144], (uint32_t)(timeline_command_dispatcher[0].prev_err.time.total_cycle)); + TF_copy_u16(&packet[148], (uint16_t)(timeline_command_dispatcher[0].prev_err.code)); + TF_copy_i32(&packet[150], (int32_t)(timeline_command_dispatcher[0].prev_err.sts)); + TF_copy_u32(&packet[154], (uint32_t)(timeline_command_dispatcher[0].error_counter)); + TF_copy_u8(&packet[158], (uint8_t)(timeline_command_dispatcher[0].stop_on_error)); + TF_copy_u8(&packet[159], (uint8_t)(timeline_command_dispatcher[0].lockout)); + TF_copy_u32(&packet[160], (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)))); + TF_copy_u16(&packet[164], (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)))); + TF_copy_u32(&packet[166], PL_count_executed_nodes(&PH_tl_cmd_list[1])); + TF_copy_u8(&packet[170], (uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[1]))); + TF_copy_u32(&packet[171], (uint32_t)(timeline_command_dispatcher[1].prev.time.total_cycle)); + TF_copy_u16(&packet[175], (uint16_t)(timeline_command_dispatcher[1].prev.code)); + TF_copy_i32(&packet[177], (int32_t)(timeline_command_dispatcher[1].prev.sts)); + TF_copy_u32(&packet[181], (uint32_t)(timeline_command_dispatcher[1].prev_err.time.total_cycle)); + TF_copy_u16(&packet[185], (uint16_t)(timeline_command_dispatcher[1].prev_err.code)); + TF_copy_i32(&packet[187], (int32_t)(timeline_command_dispatcher[1].prev_err.sts)); + TF_copy_u32(&packet[191], (uint32_t)(timeline_command_dispatcher[1].error_counter)); + TF_copy_u8(&packet[195], (uint8_t)(timeline_command_dispatcher[1].stop_on_error)); + TF_copy_u8(&packet[196], (uint8_t)(timeline_command_dispatcher[1].lockout)); + TF_copy_u32(&packet[197], (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)))); + TF_copy_u16(&packet[201], (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)))); + TF_copy_u32(&packet[203], PL_count_executed_nodes(&PH_tl_cmd_list[2])); + TF_copy_u8(&packet[207], (uint8_t)(PL_count_active_nodes(&PH_tl_cmd_list[2]))); + TF_copy_u32(&packet[208], (uint32_t)(timeline_command_dispatcher[2].prev.time.total_cycle)); + TF_copy_u16(&packet[212], (uint16_t)(timeline_command_dispatcher[2].prev.code)); + TF_copy_i32(&packet[214], (int32_t)(timeline_command_dispatcher[2].prev.sts)); + TF_copy_u32(&packet[218], (uint32_t)(timeline_command_dispatcher[2].prev_err.time.total_cycle)); + TF_copy_u16(&packet[222], (uint16_t)(timeline_command_dispatcher[2].prev_err.code)); + TF_copy_i32(&packet[224], (int32_t)(timeline_command_dispatcher[2].prev_err.sts)); + TF_copy_u32(&packet[228], (uint32_t)(timeline_command_dispatcher[2].error_counter)); + TF_copy_u8(&packet[232], (uint8_t)(timeline_command_dispatcher[2].stop_on_error)); + TF_copy_u8(&packet[233], (uint8_t)(timeline_command_dispatcher[2].lockout)); + TF_copy_u32(&packet[234], (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)))); + TF_copy_u16(&packet[238], (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)))); + TF_copy_u8(&packet[240], (uint8_t)(block_command_table->pos.block)); + TF_copy_u8(&packet[241], (uint8_t)(block_command_table->pos.cmd)); + TF_copy_u32(&packet[242], ((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)))); + TF_copy_u16(&packet[246], (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)))); + TF_copy_u8(&packet[248], gs_driver->ccsds_info.buffer_num); + TF_copy_u32(&packet[249], (uint32_t)(DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval)); + TF_copy_u32(&packet[253], (uint32_t)(DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval)); + TF_copy_u32(&packet[257], PL_count_executed_nodes(&PH_ms_tlm_list)); + TF_copy_u8(&packet[261], (uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list))); + TF_copy_u32(&packet[262], PL_count_executed_nodes(&PH_st_tlm_list)); + TF_copy_u8(&packet[266], (uint8_t)(PL_count_active_nodes(&PH_st_tlm_list))); + TF_copy_u32(&packet[267], PL_count_executed_nodes(&PH_rp_tlm_list)); + TF_copy_u8(&packet[271], (uint8_t)(PL_count_active_nodes(&PH_rp_tlm_list))); + TF_copy_u32(&packet[272], (uint32_t)gs_driver->latest_info->tx.send_cycle); + TF_copy_u32(&packet[276], gs_driver->driver_ccsds.ccsds_config.bitrate); + TF_copy_u8(&packet[280], (uint8_t)gs_driver->latest_info->tx.vcid); + TF_copy_u32(&packet[281], gs_driver->latest_info->tx.vcdu_counter); #endif - *len = 286; + *len = 285; return TF_TLM_FUNC_ACK_SUCCESS; } @@ -3104,62 +3103,54 @@ static TF_TLM_FUNC_ACK Tlm_EH_INDEX_(uint8_t* packet, uint16_t* len, uint16_t ma static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t* packet, uint16_t* len, uint16_t max_len) { - if (139 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; + if (113 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; #ifndef BUILD_SETTINGS_FAST_BUILD - TF_copy_u8(&packet[26], gs_driver->driver_uart.uart_config.ch); - TF_copy_u32(&packet[27], gs_driver->driver_uart.uart_config.baudrate); - TF_copy_u8(&packet[31], (uint8_t)gs_driver->driver_uart.uart_config.parity_settings); - TF_copy_u8(&packet[32], (uint8_t)gs_driver->driver_uart.uart_config.data_length); - TF_copy_u8(&packet[33], (uint8_t)gs_driver->driver_uart.uart_config.stop_bit); - TF_copy_u8(&packet[34], (uint8_t)gs_driver->info[0].rec_status); - TF_copy_u8(&packet[35], (uint8_t)gs_driver->info[0].last_rec_tcf_type); - TF_copy_u8(&packet[36], (uint8_t)gs_driver->info[0].ad_rec_status); - TF_copy_u8(&packet[37], (uint8_t)gs_driver->info[0].bc_rec_status); - TF_copy_u8(&packet[38], (uint8_t)gs_driver->info[0].bd_rec_status); - TF_copy_u8(&packet[39], (uint8_t)(gs_driver->info[0].tc_frame_validate_status)); - TF_copy_i32(&packet[40], (int32_t)gs_driver->info[0].ret_from_if_rx); - TF_copy_u32(&packet[44], (uint32_t)gs_driver->info[0].last_rec_time); - TF_copy_u8(&packet[48], (uint8_t)gs_driver->info[0].last_dest_type); - TF_copy_u8(&packet[49], (uint8_t)gs_driver->info[0].cmd_ack); - TF_copy_u32(&packet[50], (uint32_t)gs_driver->info[0].send_cycle); - TF_copy_u8(&packet[54], (uint8_t)gs_driver->info[0].vcid); - TF_copy_u32(&packet[55], gs_driver->info[0].vcdu_counter); - TF_copy_u8(&packet[59], gs_driver->ccsds_info.buffer_num); - TF_copy_u8(&packet[60], (uint8_t)gs_driver->info[1].rec_status); - TF_copy_u8(&packet[61], (uint8_t)gs_driver->info[1].last_rec_tcf_type); - TF_copy_u8(&packet[62], (uint8_t)gs_driver->info[1].ad_rec_status); - TF_copy_u8(&packet[63], (uint8_t)gs_driver->info[1].bc_rec_status); - TF_copy_u8(&packet[64], (uint8_t)gs_driver->info[1].bd_rec_status); - TF_copy_u8(&packet[65], (uint8_t)(gs_driver->info[1].tc_frame_validate_status)); - TF_copy_i32(&packet[66], (int32_t)gs_driver->info[1].ret_from_if_rx); - TF_copy_u32(&packet[70], (uint32_t)gs_driver->info[1].last_rec_time); - TF_copy_u8(&packet[74], (uint8_t)gs_driver->info[1].last_dest_type); - TF_copy_u8(&packet[75], (uint8_t)gs_driver->info[1].cmd_ack); - TF_copy_u32(&packet[76], (uint32_t)gs_driver->info[1].send_cycle); - TF_copy_u8(&packet[80], (uint8_t)gs_driver->info[1].vcid); - TF_copy_u32(&packet[81], gs_driver->info[1].vcdu_counter); - TF_copy_u8(&packet[85], gs_driver->is_ccsds_tx_valid); - TF_copy_u32(&packet[86], (uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); - TF_copy_u32(&packet[90], (uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); - TF_copy_u32(&packet[94], (uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter); - TF_copy_u32(&packet[98], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); - TF_copy_u32(&packet[102], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); - TF_copy_u32(&packet[106], (uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter); - TF_copy_u8(&packet[110], gs_validate_info->type_a_counter); - TF_copy_u8(&packet[111], gs_validate_info->type_b_counter); - TF_copy_u8(&packet[112], gs_validate_info->lockout_flag); - TF_copy_u8(&packet[113], gs_validate_info->retransmit_flag); - TF_copy_u8(&packet[114], gs_validate_info->positive_window_width); - TF_copy_u32(&packet[115], gs_driver->ccsds_info.uip_stat[0]); - TF_copy_u32(&packet[119], gs_driver->ccsds_info.uip_stat[1]); - TF_copy_u32(&packet[123], gs_driver->ccsds_info.uip_stat[2]); - TF_copy_u32(&packet[127], gs_driver->ccsds_info.uip_stat[3]); - TF_copy_u32(&packet[131], gs_driver->ccsds_info.uip_stat[4]); - TF_copy_u32(&packet[135], gs_driver->ccsds_info.uip_stat[5]); + TF_copy_u8(&packet[26], (uint8_t)gs_driver->info[0].rx.rec_status); + TF_copy_i32(&packet[27], (int32_t)gs_driver->info[0].rx.ret_from_if_rx); + TF_copy_u8(&packet[31], (uint8_t)gs_driver->info[0].rx.last_dest_type); + TF_copy_u32(&packet[32], (uint32_t)gs_driver->info[0].rx.last_rec_time); + TF_copy_u8(&packet[36], (uint8_t)gs_driver->info[0].rx.cmd_ack); + TF_copy_u8(&packet[37], (uint8_t)gs_driver->info[0].rx.tctf.last_rec_tctf_type); + TF_copy_u8(&packet[38], (uint8_t)gs_driver->info[0].rx.tctf.ad_rec_status); + TF_copy_u8(&packet[39], (uint8_t)gs_driver->info[0].rx.tctf.bc_rec_status); + TF_copy_u8(&packet[40], (uint8_t)gs_driver->info[0].rx.tctf.bd_rec_status); + TF_copy_u8(&packet[41], gs_driver->is_ccsds_tx_valid); + TF_copy_u32(&packet[42], (uint32_t)gs_driver->info[0].tx.send_cycle); + TF_copy_u8(&packet[46], (uint8_t)gs_driver->info[0].tx.vcid); + TF_copy_u32(&packet[47], gs_driver->info[0].tx.vcdu_counter); + TF_copy_u8(&packet[51], gs_driver->ccsds_info.buffer_num); + TF_copy_u8(&packet[52], gs_driver->driver_uart.uart_config.ch); + TF_copy_u32(&packet[53], gs_driver->driver_uart.uart_config.baudrate); + TF_copy_u8(&packet[57], (uint8_t)gs_driver->driver_uart.uart_config.parity_settings); + TF_copy_u8(&packet[58], (uint8_t)gs_driver->driver_uart.uart_config.data_length); + TF_copy_u8(&packet[59], (uint8_t)gs_driver->driver_uart.uart_config.stop_bit); + TF_copy_u8(&packet[60], (uint8_t)gs_driver->info[1].rx.rec_status); + TF_copy_i32(&packet[61], (int32_t)gs_driver->info[1].rx.ret_from_if_rx); + TF_copy_u8(&packet[65], (uint8_t)gs_driver->info[1].rx.last_dest_type); + TF_copy_u32(&packet[66], (uint32_t)gs_driver->info[1].rx.last_rec_time); + TF_copy_u8(&packet[70], (uint8_t)gs_driver->info[1].rx.cmd_ack); + TF_copy_u8(&packet[71], (uint8_t)gs_driver->info[1].rx.tctf.last_rec_tctf_type); + TF_copy_u8(&packet[72], (uint8_t)gs_driver->info[1].rx.tctf.ad_rec_status); + TF_copy_u8(&packet[73], (uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status); + TF_copy_u8(&packet[74], (uint8_t)gs_driver->info[1].rx.tctf.bd_rec_status); + TF_copy_u32(&packet[75], (uint32_t)gs_driver->info[1].tx.send_cycle); + TF_copy_u8(&packet[79], (uint8_t)gs_driver->info[1].tx.vcid); + TF_copy_u32(&packet[80], gs_driver->info[1].tx.vcdu_counter); + TF_copy_u8(&packet[84], gs_validate_info->type_a_counter); + TF_copy_u8(&packet[85], gs_validate_info->type_b_counter); + TF_copy_u8(&packet[86], gs_validate_info->lockout_flag); + TF_copy_u8(&packet[87], gs_validate_info->retransmit_flag); + TF_copy_u8(&packet[88], gs_validate_info->positive_window_width); + TF_copy_u32(&packet[89], (uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); + TF_copy_u32(&packet[93], (uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); + TF_copy_u32(&packet[97], (uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter); + TF_copy_u32(&packet[101], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); + TF_copy_u32(&packet[105], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); + TF_copy_u32(&packet[109], (uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter); #endif - *len = 139; + *len = 113; return TF_TLM_FUNC_ACK_SUCCESS; } @@ -3173,9 +3164,9 @@ static TF_TLM_FUNC_ACK Tlm_HK_(uint8_t* packet, uint16_t* len, uint16_t max_len) TF_copy_u8(&packet[38], (uint8_t)(mode_manager->current_id)); TF_copy_u8(&packet[39], (uint8_t)( ((uint8_t)(mode_manager->stat) << 7 & 0x80) | ((uint8_t)(mode_manager->previous_id) & 0x7F) )); TF_copy_u16(&packet[40], TDSP_info->task_list_id); - TF_copy_u8(&packet[42], (uint8_t)gs_driver->latest_info->rec_status); - TF_copy_u32(&packet[43], (uint32_t)gs_driver->latest_info->last_rec_time); - TF_copy_u8(&packet[47], (uint8_t)(gs_driver->latest_info->cmd_ack)); + TF_copy_u8(&packet[42], (uint8_t)gs_driver->latest_info->rx.rec_status); + TF_copy_u32(&packet[43], (uint32_t)gs_driver->latest_info->rx.last_rec_time); + TF_copy_u8(&packet[47], (uint8_t)(gs_driver->latest_info->rx.cmd_ack)); TF_copy_u32(&packet[48], PL_count_executed_nodes(&PH_gs_cmd_list)); TF_copy_u32(&packet[52], gs_command_dispatcher->prev.time.total_cycle); TF_copy_u16(&packet[56], (uint16_t)(gs_command_dispatcher->prev.code));