From f3b460ecf336ebe527545dec30249c43fb180b98 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Tue, 8 Mar 2022 15:00:03 +0900 Subject: [PATCH 01/31] =?UTF-8?q?TC=20Segment=20=E3=81=AE=E6=94=B9?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/src_user/TlmCmd/Ccsds/TCSegment.c | 13 ++++---- .../src/src_user/TlmCmd/Ccsds/TCSegment.h | 33 ++++++++++++++----- 2 files changed, 30 insertions(+), 16 deletions(-) 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 index 7c030956c..2b1a05c1f 100644 --- 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 @@ -1,22 +1,20 @@ #pragma section REPRO #include "TCSegment.h" -#include // for memcpy - -TCS_SEQ_FLAG TCS_get_seq_flag(const TCS* tcs) +TCS_SEQ_FLAG TCS_get_seq_flag(const TCSegment* tcs) { unsigned int pos = 0; uint8_t mask = 0xc0; // 1100 0000b - return (TCS_SEQ_FLAG)((tcs->header[pos] & mask) >> 6); + return (TCS_SEQ_FLAG)((tcs->packet[pos] & mask) >> 6); } -TCS_MAP_ID TCS_get_map_id(const TCS* tcs) +TCS_MAP_ID TCS_get_map_id(const TCSegment* tcs) { unsigned int pos = 0; - uint8_t mask = 0x3f; + uint8_t mask = 0x3f; // 0011 1111b - TCS_MAP_ID map_id = (TCS_MAP_ID)(tcs->header[pos] & mask); + TCS_MAP_ID map_id = (TCS_MAP_ID)(tcs->packet[pos] & mask); switch (map_id) { @@ -29,4 +27,5 @@ TCS_MAP_ID TCS_get_map_id(const TCS* tcs) 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 index ff405ad4c..6f90bebd0 100644 --- 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 @@ -1,20 +1,33 @@ +/** + * @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 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; + uint8_t packet[TCS_HEADER_SIZE + CSP_MAX_LEN]; +} TCSegment; typedef enum { @@ -32,8 +45,10 @@ typedef enum TCS_MAP_ID_UNKNOWN } TCS_MAP_ID; -TCS_SEQ_FLAG TCS_get_seq_flag(const TCS* tcs); +TCS_SEQ_FLAG TCS_get_seq_flag(const TCSegment* tcs); + +TCS_MAP_ID TCS_get_map_id(const TCSegment* tcs); -TCS_MAP_ID TCS_get_map_id(const TCS* tcs); +const CmdSpacePacket* TCS_get_command_space_packet(const TCSegment* tcs); #endif From f6e12f3e67c8e6357c75ea01ed9e6c9d787d4ae3 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Tue, 8 Mar 2022 18:16:30 +0900 Subject: [PATCH 02/31] =?UTF-8?q?gs.c=20=E5=81=B4=E3=81=BE=E3=81=A7?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3=E3=81=A7=E4=B8=80=E6=97=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/src_user/Drivers/Com/gs.c | 11 +++- .../src/src_user/Drivers/Com/gs_validate.c | 49 +++++++++-------- .../src/src_user/Drivers/Com/gs_validate.h | 14 ++++- .../src/src_user/TlmCmd/Ccsds/TCFrame.c | 52 ++++++++++-------- .../src/src_user/TlmCmd/Ccsds/TCFrame.h | 55 ++++++++++++++----- .../src/src_user/TlmCmd/Ccsds/TCSegment.h | 3 +- 6 files changed, 119 insertions(+), 65 deletions(-) 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..b336d9668 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 @@ -11,6 +11,7 @@ #include "../../TlmCmd/Ccsds/TCFrame.h" #include #include +#include #include "../../Library/stdint.h" #define GS_RX_HEADER_SIZE (2) @@ -209,9 +210,11 @@ 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 TCFrame* tc_frame = (const TCFrame*)gs_rx_data; // 非自明なcast GS_Driver* gs_driver = (GS_Driver*)p_driver; GS_PORT_TYPE driver_index; + const TCSegment* tc_segment; + const CmdSpacePacket* cmd_space_packet; // アドレス計算で CCSDS か UART か判別 if ((uint32_t)p_stream_config < (uint32_t)&gs_driver->driver_uart) @@ -229,8 +232,10 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* return DS_ERR_CODE_ERR; } - 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); // 受信コマンドパケット解析 + tc_segment = TCF_get_tc_segment(tc_frame); + cmd_space_packet = TCS_get_command_space_packet(tc_segment); + gs_driver->info[driver_index].last_dest_type = CSP_get_dest_type(cmd_space_packet); + gs_driver->info[driver_index].cmd_ack = PH_analyze_cmd_packet(cmd_space_packet); // 受信コマンドパケット解析 gs_driver->info[driver_index].last_rec_time = TMGR_get_master_total_cycle(); return DS_ERR_CODE_OK; 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..8af5118ce 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 @@ -9,15 +9,16 @@ #define GS_POSITIVE_WINDOW_WIDTH_DEFAULT (64) // FIXME: 要検討 // 以下検証関数. 名前通り -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_cmd_space_packet_headers_(const CmdSpacePacket* csp); +static GS_VALIDATE_ERR GS_check_tcf_header_(const TCFrame* tc_frame); 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); +static GS_VALIDATE_ERR GS_check_tcf_contents_(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_ad_cmd_(const TCSegment* tc_segment); +static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCSegment* tc_segment); +static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCSegment* tc_segment); static GS_ValiateInfo gs_validate_info_; const GS_ValiateInfo* const gs_validate_info = &gs_validate_info_; @@ -31,30 +32,34 @@ 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_tc_frame(const TCFrame* tc_frame) { GS_VALIDATE_ERR ret; size_t frame_length = TCF_get_frame_len(tc_frame); - // TODO WINGS側がまだ対応してないので一旦コメントアウト + // FIXME: return check GS_check_fecw_((const uint8_t*)tc_frame, frame_length); - ret = GS_check_tcf_header_(tc_frame); - if (ret != GS_VALIDATE_ERR_OK) return ret; + return GS_check_tcf_header_(tc_frame); +} + +GS_VALIDATE_ERR GS_validate_tc_segment(const TCSegment* tc_segment, TCF_TYPE tc_frame_type) +{ + GS_VALIDATE_ERR ret; - switch (TCF_get_type(tc_frame)) + switch (tc_frame_type) { case TCF_TYPE_AD: - ret = GS_check_ad_cmd_(tc_frame); + ret = GS_check_ad_cmd_(tc_segment); break; case TCF_TYPE_BC: - ret = GS_check_bc_cmd_(tc_frame); + ret = GS_check_bc_cmd_(tc_segment); break; case TCF_TYPE_BD: - ret = GS_check_bd_cmd_(tc_frame); + ret = GS_check_bd_cmd_(tc_segment); break; default: @@ -64,7 +69,7 @@ GS_VALIDATE_ERR GS_validate_tc_frame(const TCF* tc_frame) return ret; } -static GS_VALIDATE_ERR GS_check_tcf_header_(const TCF* tc_frame) +static GS_VALIDATE_ERR GS_check_tcf_header_(const TCFrame* tc_frame) { 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: テスト用に一旦コメントアウト @@ -73,7 +78,7 @@ static GS_VALIDATE_ERR GS_check_tcf_header_(const TCF* tc_frame) return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_tcf_contents_(const TCF* tc_frame) +static GS_VALIDATE_ERR GS_check_tcf_contents_(const TCSegment* tc_segment) { GS_VALIDATE_ERR ack; @@ -88,7 +93,7 @@ static GS_VALIDATE_ERR GS_check_tcf_contents_(const TCF* tc_frame) 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) { @@ -176,14 +181,14 @@ static GS_VALIDATE_ERR GS_check_fecw_(const uint8_t* data, size_t len) 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 TCSegment* tc_segment) { GS_VALIDATE_ERR ack; int seq_diff; if (gs_validate_info_.lockout_flag) return GS_VALIDATE_ERR_IN_LOCKOUT; - ack = GS_check_tcf_contents_(tc_frame); + ack = GS_check_tcf_contents_(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; @@ -224,7 +229,7 @@ static GS_VALIDATE_ERR GS_check_ad_cmd_(const TCF* tc_frame) return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCF* tc_frame) +static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCSegment* tc_segment) { // BCコマンドの種別を判定し、処理する。 // TCFの構成がAD/BDコマンドに特化した形となっているため、 @@ -263,7 +268,7 @@ static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCF* tc_frame) return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCF* tc_frame) +static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCSegment* tc_segment) { GS_VALIDATE_ERR ack; ack = GS_check_tcf_contents_(tc_frame); 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..9786559c2 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,6 +1,6 @@ /** * @file - * @brief 受信した TC Frame の検証を行う + * @brief 受信した TC Frame, TC Segment の検証を行う */ #ifndef GS_VALIDATE_H_ #define GS_VALIDATE_H_ @@ -60,10 +60,18 @@ void GS_validate_init(void); /** * @brief tc_frame の検証 - * @param[in] tc_frame: 検証する tc frame + * @param[in] tc_frame: 検証する TC frame * @return GS_VALIDATE_ERR */ -GS_VALIDATE_ERR GS_validate_tc_frame(const TCF* tc_frame); +GS_VALIDATE_ERR GS_validate_tc_frame(const TCFrame* tc_frame); + +/** + * @brief tc_segment の検証 + * @param[in] tc_segment: 検証する TC segment + * @param[in] tc_frame_type + * @return GS_VALIDATE_ERR + */ +GS_VALIDATE_ERR GS_validate_tc_segment(const TCSegment* tc_segment, TCF_TYPE tc_frame_type); /** * @brief テレメ用の clcw の作成 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 index 22ef7922c..3e0536c62 100644 --- 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 @@ -3,12 +3,12 @@ #include // for memcpy -TCF_VER TCF_get_ver(const TCF* tcf) +TCF_VER TCF_get_ver(const TCFrame* tcf) { - unsigned int pos = 0; + uint32_t pos = 0; uint8_t mask = 0xc0; // 1100 0000b - TCF_VER ver = (TCF_VER)((tcf->header[pos] & mask) >> 6); + TCF_VER ver = (TCF_VER)((tcf->packet[pos] & mask) >> 6); switch (ver) { @@ -20,12 +20,12 @@ TCF_VER TCF_get_ver(const TCF* tcf) } } -TCF_TYPE TCF_get_type(const TCF* tcf) +TCF_TYPE TCF_get_type(const TCFrame* tcf) { - unsigned int pos = 0; + uint32_t pos = 0; uint8_t mask = 0x30; // 0011 0000b - TCF_TYPE type = (TCF_TYPE)((tcf->header[pos] & mask) >> 4); + TCF_TYPE type = (TCF_TYPE)((tcf->packet[pos] & mask) >> 4); switch (type) { @@ -39,15 +39,15 @@ TCF_TYPE TCF_get_type(const TCF* tcf) } } -TCF_SCID TCF_get_scid(const TCF* tcf) +TCF_SCID TCF_get_scid(const TCFrame* tcf) { - unsigned int pos = 0; + uint32_t pos = 0; uint8_t mask = 0x03; // 0000 0011b // pos = 0の下位2bitsとpos = 1の8bitsを合わせた10bits - TCF_SCID scid = (TCF_SCID)(tcf->header[pos] & mask); + TCF_SCID scid = (TCF_SCID)(tcf->packet[pos] & mask); scid = (TCF_SCID)(scid << 8); - scid = (TCF_SCID)(scid + tcf->header[pos + 1]); + scid = (TCF_SCID)(scid + tcf->packet[pos + 1]); switch (scid) { @@ -59,12 +59,12 @@ TCF_SCID TCF_get_scid(const TCF* tcf) } } -TCF_VCID TCF_get_vcid(const TCF* tcf) +TCF_VCID TCF_get_vcid(const TCFrame* tcf) { - unsigned int pos = 2; + uint32_t pos = 2; uint8_t mask = 0xfc; // 1111 1100b - TCF_VCID vcid = (TCF_VCID)((tcf->header[pos] & mask) >> 2); + TCF_VCID vcid = (TCF_VCID)((tcf->packet[pos] & mask) >> 2); switch (vcid) { @@ -76,33 +76,39 @@ TCF_VCID TCF_get_vcid(const TCF* tcf) } } -size_t TCF_get_frame_len(const TCF* tcf) +size_t TCF_get_frame_len(const TCFrame* tcf) { - unsigned int pos = 2; + uint32_t pos = 2; uint8_t mask = 0x03; // 0000 0011b // pos = 0の下位2bitsとpos = 1の8bitsを合わせた10bits - size_t len = (tcf->header[pos] & mask); + size_t len = (tcf->packet[pos] & mask); len <<= 8; - len += tcf->header[pos + 1]; + len += tcf->packet[pos + 1]; // TC Frameの長さ表記は0起算なので1起算に変換した値を返す return len + 1; } -uint8_t TCF_get_frame_seq_num(const TCF* tcf) +uint8_t TCF_get_frame_seq_num(const TCFrame* tcf) { size_t pos = 4; - return (uint8_t)(tcf->header[pos]); + return tcf->packet[pos]; } -uint16_t TCF_get_fecw(const TCF* tcf) +const TCSegment* TCF_get_tc_segment(const TCFrame* tcf) { - unsigned int pos = 0; + size_t pos = TCF_HEADER_SIZE; + return (const TCSegment*)&tcf->packet[pos]; +} + +uint16_t TCF_get_fecw(const TCFrame* tcf) +{ + size_t length = TCF_get_frame_len(tcf); - uint16_t fecw = tcf->fecf[pos]; + uint16_t fecw = tcf->packet[length - 2]; fecw <<= 8; - fecw += tcf->fecf[pos + 1]; + fecw += tcf->packet[length - 1]; return fecw; } 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 index 4f9a4e158..d27bab64d 100644 --- 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 @@ -1,7 +1,34 @@ +/** + * @file + * @brief CCSDS で規定される TC 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 | * | Command Space Packet | + * |---------+-------+-------+-----------------------| + * | === Frame Error Control Field ==================| + * |---------+-------+-------+-----------------------| + * | * | 0 | 16 | | + * |---------+-------+-------+-----------------------| + */ #ifndef TCFRAME_H_ #define TCFRAME_H_ -#include // for size_t +#include #include "../../Library/stdint.h" #include "TCSegment.h" @@ -14,12 +41,12 @@ #define TCF_BC_CMD_CODE_SET_VR_0 (0x82) #define TCF_BC_CMD_CODE_SET_VR_1 (0x00) +#define TCF_PACKET_MAX_LENGTH (TCF_HEADER_SIZE + TCS_PACKET_MAX_LENGTH + TCF_FECF_SIZE) + typedef struct { - uint8_t header[TCF_HEADER_SIZE]; - TCS tcs; - uint8_t fecf[TCF_FECF_SIZE]; -} TCF; + uint8_t packet[TCF_PACKET_MAX_LENGTH]; +} TCFrame; typedef enum { @@ -47,20 +74,22 @@ typedef enum TCF_VCID_UNKNOWN } TCF_VCID; -TCF_VER TCF_get_ver(const TCF* tcf); +TCF_VER TCF_get_ver(const TCFrame* tcf); + +TCF_TYPE TCF_get_type(const TCFrame* tcf); -TCF_TYPE TCF_get_type(const TCF* tcf); +TCF_SCID TCF_get_scid(const TCFrame* tcf); -TCF_SCID TCF_get_scid(const TCF* tcf); +TCF_VCID TCF_get_vcid(const TCFrame* tcf); -TCF_VCID TCF_get_vcid(const TCF* tcf); +size_t TCF_get_frame_len(const TCFrame* tcf); -size_t TCF_get_frame_len(const TCF* tcf); +uint8_t TCF_get_frame_seq_num(const TCFrame* tcf); -uint8_t TCF_get_frame_seq_num(const TCF* tcf); +uint16_t TCF_get_fecw(const TCFrame* tcf); -uint16_t TCF_get_fecw(const TCF* tcf); +const TCSegment* TCF_get_tc_segment(const TCFrame* tcf); -uint16_t TCF_calc_fecw(const TCF* tcf); +uint16_t TCF_calc_fecw(const TCFrame* tcf); #endif 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 index 6f90bebd0..17235e581 100644 --- 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 @@ -23,10 +23,11 @@ #include #define TCS_HEADER_SIZE (1u) +#define TCS_PACKET_MAX_LENGTH (TCS_HEADER_SIZE + CSP_MAX_LEN) typedef struct { - uint8_t packet[TCS_HEADER_SIZE + CSP_MAX_LEN]; + uint8_t packet[TCS_PACKET_MAX_LENGTH]; } TCSegment; typedef enum From 0f70187969f347646d6e0b4a5637ab9ac60ddf4d Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Tue, 8 Mar 2022 23:48:58 +0900 Subject: [PATCH 03/31] =?UTF-8?q?gs=20validate=20=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/src_user/Drivers/Com/gs.c | 2 +- .../src/src_user/Drivers/Com/gs.h | 2 +- .../src/src_user/Drivers/Com/gs_validate.c | 196 ++++++++---------- .../src/src_user/Drivers/Com/gs_validate.h | 17 +- .../src/src_user/TlmCmd/Ccsds/TCFrame.c | 5 + .../src/src_user/TlmCmd/Ccsds/TCFrame.h | 2 + .../src/src_user/TlmCmd/Ccsds/TCSegment.c | 10 + 7 files changed, 118 insertions(+), 116 deletions(-) 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 b336d9668..26f4660db 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 @@ -210,7 +210,7 @@ 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 TCFrame* tc_frame = (const TCFrame*)gs_rx_data; // 非自明なcast + const TCFrame* tc_frame = TCF_convert_raw_byte(gs_rx_data); GS_Driver* gs_driver = (GS_Driver*)p_driver; GS_PORT_TYPE driver_index; const TCSegment* tc_segment; 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..9da4ebafd 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 @@ -21,8 +21,8 @@ typedef enum { GS_TCF_TYPE_ENUM_AD_CMD, - GS_TCF_TYPE_ENUM_BC_CMD, GS_TCF_TYPE_ENUM_BD_CMD, + GS_TCF_TYPE_ENUM_BC_CMD, GS_TCF_TYPE_ENUM_UNKNOWN } GS_TCF_TYPE_ENUM; 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 8af5118ce..a6a6025ce 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,20 +5,37 @@ */ #include "gs_validate.h" +#include "../../TlmCmd/Ccsds/TCSegment.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 TCFrame* tc_frame); static GS_VALIDATE_ERR GS_check_fecw_(const uint8_t* data, size_t len); -static GS_VALIDATE_ERR GS_check_tcf_contents_(const TCSegment* tc_segment); +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_ad_cmd_(const TCSegment* tc_segment); -static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCSegment* tc_segment); -static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCSegment* tc_segment); +/** + * @note AD コマンド: COP-1 制御を使用し伝送順番のチェックを行う + */ +static GS_VALIDATE_ERR GS_check_ad_cmd_(const TCFrame* tc_frame); + +/** + * @note BD コマンド: COP-1 制御を使用しないため伝送順番のチェックは行わない + */ +static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCFrame* tc_frame); + +/** + * @note BC コマンド: COP-1 制御の制御コマンド, AD, BD と性質が異なる + */ +static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCFrame* tc_frame); static GS_ValiateInfo gs_validate_info_; const GS_ValiateInfo* const gs_validate_info = &gs_validate_info_; @@ -35,31 +52,31 @@ void GS_validate_init(void) GS_VALIDATE_ERR GS_validate_tc_frame(const TCFrame* tc_frame) { GS_VALIDATE_ERR ret; + TCF_TYPE tc_frame_type; size_t frame_length = TCF_get_frame_len(tc_frame); // FIXME: return check GS_check_fecw_((const uint8_t*)tc_frame, frame_length); - return GS_check_tcf_header_(tc_frame); -} + ret = GS_check_tcf_header_(tc_frame); -GS_VALIDATE_ERR GS_validate_tc_segment(const TCSegment* tc_segment, TCF_TYPE tc_frame_type) -{ - GS_VALIDATE_ERR ret; + if (ret != GS_VALIDATE_ERR_OK) return ret; + + tc_frame_type = TCF_get_type(tc_frame); switch (tc_frame_type) { case TCF_TYPE_AD: - ret = GS_check_ad_cmd_(tc_segment); + ret = GS_check_ad_cmd_(tc_frame); break; - case TCF_TYPE_BC: - ret = GS_check_bc_cmd_(tc_segment); + case TCF_TYPE_BD: + ret = GS_check_bd_cmd_(tc_frame); break; - case TCF_TYPE_BD: - ret = GS_check_bd_cmd_(tc_segment); + case TCF_TYPE_BC: + ret = GS_check_bc_cmd_(tc_frame); break; default: @@ -78,16 +95,17 @@ static GS_VALIDATE_ERR GS_check_tcf_header_(const TCFrame* tc_frame) return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_tcf_contents_(const TCSegment* tc_segment) +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); + 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; @@ -181,153 +199,119 @@ static GS_VALIDATE_ERR GS_check_fecw_(const uint8_t* data, size_t len) return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_ad_cmd_(const TCSegment* tc_segment) +static GS_VALIDATE_ERR GS_check_ad_cmd_(const TCFrame* tc_frame) { GS_VALIDATE_ERR ack; - int seq_diff; + const TCSegment* tc_segment; + int seq_diff = (GS_RECEIVE_WINDOW + (int)TCF_get_frame_seq_num(tc_frame) - (int)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_segment); + 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; } + // 送信側が行き過ぎているのでパケット破棄して再送要求 + 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; } return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCSegment* tc_segment) +static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCFrame* tc_frame) { - // BCコマンドの種別を判定し、処理する。 - // TCFの構成がAD/BDコマンドに特化した形となっているため、 - // TCSやTCPのデータ構造を読み替えて処理を行っている。 - if (tc_frame->tcs.header[0] == TCF_BC_CMD_CODE_UNLOCK) + GS_VALIDATE_ERR ack; + const TCSegment* tc_segment = TCF_get_tc_segment(tc_frame); + + 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; +} + +// BCコマンドの種別を判定し、処理する +static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCFrame* tc_frame) +{ + size_t length = TCF_get_frame_len(tc_frame); + size_t offset = TCF_HEADER_SIZE + TCF_FECF_SIZE; + const TCSegment* tc_segment = TCF_get_tc_segment(tc_frame); + + // BC コマンドは COP-1 制御の制御用コマンドで特殊なため少し構造が異なる + // Unlock + if (tc_segment->packet[0] == TCF_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] == TCF_BC_CMD_CODE_SET_VR_0 + && tc_segment->packet[1] == TCF_BC_CMD_CODE_SET_VR_1 + && 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 TCSegment* tc_segment) -{ - 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) { @@ -338,7 +322,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 9786559c2..eb5c3a790 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,6 +1,13 @@ /** * @file * @brief 受信した TC 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_ @@ -65,17 +72,11 @@ void GS_validate_init(void); */ GS_VALIDATE_ERR GS_validate_tc_frame(const TCFrame* tc_frame); -/** - * @brief tc_segment の検証 - * @param[in] tc_segment: 検証する TC segment - * @param[in] tc_frame_type - * @return GS_VALIDATE_ERR - */ -GS_VALIDATE_ERR GS_validate_tc_segment(const TCSegment* tc_segment, TCF_TYPE tc_frame_type); - /** * @brief テレメ用の clcw の作成 * @return clcw + * @note この CLCW は endian を考慮していないためこれが little endian 環境で動く場合 CCSDS (big endian) に + * 適用する際に Byte 順を逆転させる必要がある */ uint32_t GS_form_clcw(void); 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 index 3e0536c62..87d4fe20f 100644 --- 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 @@ -113,4 +113,9 @@ uint16_t TCF_get_fecw(const TCFrame* tcf) return fecw; } +const TCFrame* TCF_convert_raw_byte(const uint8_t* byte) +{ + return (const TCFrame*)byte; +} + #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 index d27bab64d..88f52adcc 100644 --- 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 @@ -92,4 +92,6 @@ const TCSegment* TCF_get_tc_segment(const TCFrame* tcf); uint16_t TCF_calc_fecw(const TCFrame* tcf); +const TCFrame* TCF_convert_raw_byte(const uint8_t* byte); + #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 index 2b1a05c1f..eab844863 100644 --- 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 @@ -1,4 +1,9 @@ #pragma section REPRO +/** + * @file + * @brief CCSDS で規定される TC Segment の実装 + */ + #include "TCSegment.h" TCS_SEQ_FLAG TCS_get_seq_flag(const TCSegment* tcs) @@ -28,4 +33,9 @@ TCS_MAP_ID TCS_get_map_id(const TCSegment* tcs) } } +const CmdSpacePacket* TCS_get_command_space_packet(const TCSegment* tcs) +{ + return (const CmdSpacePacket*)&tcs->packet[TCS_HEADER_SIZE]; +} + #pragma section From 715d715a056c90f510504c8a9f96a07d63308e6c Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Wed, 9 Mar 2022 00:27:34 +0900 Subject: [PATCH 04/31] modify GS tlm --- .../DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv | 34 +++++++++---------- .../calced_data/SAMPLE_MOBC_TLM_DB_GS.csv | 34 +++++++++---------- 2 files changed, 34 insertions(+), 34 deletions(-) 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..d64c62d5b 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 @@ -25,30 +25,30 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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_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@@ 1=ERROR,, +,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@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,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@@ 1=ERROR,, +,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@@ 1=ERROR,, +,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@@ 1=ERROR,, +,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@@ 1=TCF_VER@@ 2=TCF_SCID@@ 3=TCF_VCID@@ 4=TCF_TYPE@@ 5=LOCKOUT@@ 6=TCF_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_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_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)))),NONE,,,,,,,,, +,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)))),STATUS,,,,,,,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,, +,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)))),NONE,,,,,,,,, +,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@@ 1=ERROR,, +,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@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,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@@ 1=ERROR,, +,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@@ 1=ERROR,, +,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@@ 1=ERROR,, +,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@@ 1=TCF_VER@@ 2=TCF_SCID@@ 3=TCF_VCID@@ 4=TCF_TYPE@@ 5=LOCKOUT@@ 6=TCF_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_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_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)))),NONE,,,,,,,,, ,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_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)))),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_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,,,,,,,,, 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..bba994701 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 @@ -25,30 +25,30 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rec_status,PACKET,34,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS_LAST_REC_TCF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tcf_type,PACKET,35,0,8,STATUS,,,,,,,0=AD@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,CCSDS_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].ad_rec_status,PACKET,36,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bc_rec_status,PACKET,37,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bd_rec_status,PACKET,38,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS_TCFRAME_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tc_frame_validate_status),PACKET,39,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=TCF_VER@@ 2=TCF_SCID@@ 3=TCF_VCID@@ 4=TCF_TYPE@@ 5=LOCKOUT@@ 6=TCF_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_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_SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].send_cycle,PACKET,50,0,32,NONE,,,,,,,,, +,CCSDS_VCID,uint8_t,(uint8_t)gs_driver->info[0].vcid,PACKET,54,0,8,STATUS,,,,,,,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,, +,CCSDS_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,59,0,8,NONE,,,,,,,,, +,UART_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rec_status,PACKET,60,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART_LAST_REC_TCF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tcf_type,PACKET,61,0,8,STATUS,,,,,,,0=AD@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,UART_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].ad_rec_status,PACKET,62,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bc_rec_status,PACKET,63,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bd_rec_status,PACKET,64,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART_TCFRAME_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tc_frame_validate_status),PACKET,65,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=TCF_VER@@ 2=TCF_SCID@@ 3=TCF_VCID@@ 4=TCF_TYPE@@ 5=LOCKOUT@@ 6=TCF_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_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_REC_TIME,uint32_t,(uint32_t)gs_driver->info[1].last_rec_time,PACKET,70,0,32,NONE,,,,,,,,, ,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_CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].cmd_ack,PACKET,75,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_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,,,,,,,,, From 162498f4cf77c089d48c6dbf4085c02bc0dd199d Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Wed, 9 Mar 2022 00:48:50 +0900 Subject: [PATCH 05/31] fix a little --- .../src/src_user/Drivers/Com/gs_validate.c | 4 ++-- .../src/src_user/Drivers/Com/gs_validate.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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 a6a6025ce..ad8f425b5 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 @@ -202,8 +202,8 @@ static GS_VALIDATE_ERR GS_check_fecw_(const uint8_t* data, size_t len) static GS_VALIDATE_ERR GS_check_ad_cmd_(const TCFrame* tc_frame) { GS_VALIDATE_ERR ack; - const TCSegment* tc_segment; - int seq_diff = (GS_RECEIVE_WINDOW + (int)TCF_get_frame_seq_num(tc_frame) - (int)gs_validate_info_.type_a_counter) % GS_RECEIVE_WINDOW; + const TCSegment* tc_segment = TCF_get_tc_segment(tc_frame); + int seq_diff = (GS_RECEIVE_WINDOW + (int)TCF_get_frame_seq_num(tc_frame) - (int)gs_validate_info_.type_a_counter) % GS_RECEIVE_WINDOW; if (gs_validate_info_.lockout_flag) return GS_VALIDATE_ERR_IN_LOCKOUT; 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 eb5c3a790..b10dec14c 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 @@ -6,7 +6,7 @@ * 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 + * https://public.ccsds.org/Pubs/232x0b4.pdf * をそれぞれ参照した */ #ifndef GS_VALIDATE_H_ From cebd867c12bbdc07b3a2005eb600bf2a705fd011 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Wed, 9 Mar 2022 01:01:08 +0900 Subject: [PATCH 06/31] =?UTF-8?q?=E5=BE=AE=E4=BF=AE=E6=AD=A3=20&=20CRC?= =?UTF-8?q?=E9=96=A2=E6=95=B0=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/src_user/Drivers/Com/gs_validate.c | 49 +++---------------- 1 file changed, 7 insertions(+), 42 deletions(-) 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 ad8f425b5..d5c4dd5b9 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 @@ -7,6 +7,7 @@ #include "gs_validate.h" #include "../../TlmCmd/Ccsds/TCSegment.h" #include +#include #define GS_RECEIVE_WINDOW (256) #define GS_POSITIVE_WINDOW_WIDTH_DEFAULT (64) // FIXME: 要検討 @@ -16,7 +17,7 @@ // 以下検証関数. 名前通り static GS_VALIDATE_ERR GS_check_tcf_header_(const TCFrame* tc_frame); -static GS_VALIDATE_ERR GS_check_fecw_(const uint8_t* data, size_t len); +static GS_VALIDATE_ERR GS_check_fecw_(const TCFrame* tc_frame); static GS_VALIDATE_ERR GS_check_tc_segment_(const TCSegment* tc_segment); static GS_VALIDATE_ERR GS_check_tcs_headers_(const TCSegment* tc_segment); @@ -54,17 +55,12 @@ GS_VALIDATE_ERR GS_validate_tc_frame(const TCFrame* tc_frame) GS_VALIDATE_ERR ret; TCF_TYPE tc_frame_type; - size_t frame_length = TCF_get_frame_len(tc_frame); - - // FIXME: return check - GS_check_fecw_((const uint8_t*)tc_frame, frame_length); - + ret = GS_check_fecw_(tc_frame); + if (ret != GS_VALIDATE_ERR_OK) return ret; ret = GS_check_tcf_header_(tc_frame); - if (ret != GS_VALIDATE_ERR_OK) return ret; tc_frame_type = TCF_get_type(tc_frame); - switch (tc_frame_type) { case TCF_TYPE_AD: @@ -160,41 +156,10 @@ static GS_VALIDATE_ERR GS_check_cmd_space_packet_headers_(const CmdSpacePacket* return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_fecw_(const uint8_t* data, size_t len) +static GS_VALIDATE_ERR GS_check_fecw_(const TCFrame* tc_frame) { - 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; - } - } - - // データ+FECWが正常なら結果は0となる - if (shift_reg != 0) return GS_VALIDATE_ERR_FECW_MISSMATCH; + size_t len = TCF_get_frame_len(tc_frame); + if (crc_16_ccitt_left(0xffff, (const unsigned char*)tc_frame, len, 0) != 0) return GS_VALIDATE_ERR_FECW_MISSMATCH; return GS_VALIDATE_ERR_OK; } From 5c29a4dfb0413c79b1aa1ffdad12334afe4fca6f Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Wed, 9 Mar 2022 15:39:42 +0900 Subject: [PATCH 07/31] fix file name --- Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.c | 4 ++-- .../src/src_user/Drivers/Com/gs_validate.h | 2 +- .../minimum_user_for_s2e/src/src_user/TlmCmd/CMakeLists.txt | 2 +- .../src_user/TlmCmd/Ccsds/{TCFrame.c => tc_transfer_frame.c} | 4 ++-- .../src_user/TlmCmd/Ccsds/{TCFrame.h => tc_transfer_frame.h} | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/{TCFrame.c => tc_transfer_frame.c} (95%) rename Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/{TCFrame.h => tc_transfer_frame.h} (97%) 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 26f4660db..5b9841447 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,7 +8,7 @@ #include #include "../../IfWrapper/ccsds_user.h" -#include "../../TlmCmd/Ccsds/TCFrame.h" +#include "../../TlmCmd/Ccsds/tc_transfer_frame.h" #include #include #include @@ -210,7 +210,7 @@ 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 TCFrame* tc_frame = TCF_convert_raw_byte(gs_rx_data); + const TCFrame* tc_frame = TCF_convert_from_bytes_to_tc_frame(gs_rx_data); GS_Driver* gs_driver = (GS_Driver*)p_driver; GS_PORT_TYPE driver_index; const TCSegment* tc_segment; 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 b10dec14c..c079e0c54 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 @@ -12,7 +12,7 @@ #ifndef GS_VALIDATE_H_ #define GS_VALIDATE_H_ -#include "../../TlmCmd/Ccsds/TCFrame.h" +#include "../../TlmCmd/Ccsds/tc_transfer_frame.h" #include "../../Library/stdint.h" /** 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..c7c18e40b 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,7 +15,7 @@ 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/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/tc_transfer_frame.c similarity index 95% rename from Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCFrame.c rename to Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.c index 87d4fe20f..8976d2724 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCFrame.c +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.c @@ -1,5 +1,5 @@ #pragma section REPRO -#include "TCFrame.h" +#include "tc_transfer_frame.h" #include // for memcpy @@ -113,7 +113,7 @@ uint16_t TCF_get_fecw(const TCFrame* tcf) return fecw; } -const TCFrame* TCF_convert_raw_byte(const uint8_t* byte) +const TCFrame* TCF_convert_from_bytes_to_tc_frame(const uint8_t* byte) { return (const TCFrame*)byte; } 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/tc_transfer_frame.h similarity index 97% rename from Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCFrame.h rename to Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.h index 88f52adcc..c8c2605af 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCFrame.h +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.h @@ -92,6 +92,6 @@ const TCSegment* TCF_get_tc_segment(const TCFrame* tcf); uint16_t TCF_calc_fecw(const TCFrame* tcf); -const TCFrame* TCF_convert_raw_byte(const uint8_t* byte); +const TCFrame* TCF_convert_from_bytes_to_tc_frame(const uint8_t* byte); #endif From b00a9b86e4c3ca2af06fcecbe6052373e79a7389 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Wed, 9 Mar 2022 16:19:19 +0900 Subject: [PATCH 08/31] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E7=9A=84=E3=81=ABTCTF?= =?UTF-8?q?=20=E3=81=AB=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Applications/DriverInstances/di_gs.c | 2 +- .../Drivers/Aocs/aobc_telemetry_buffer.c | 12 +-- .../Aocs/aobc_telemetry_data_definitions.h | 12 +-- .../src/src_user/Drivers/Com/gs.c | 26 +++---- .../src/src_user/Drivers/Com/gs.h | 20 ++--- .../src/src_user/Drivers/Com/gs_validate.c | 74 +++++++++---------- .../src/src_user/Drivers/Com/gs_validate.h | 14 ++-- .../DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv | 8 +- .../DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_HK.csv | 4 +- .../TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv | 8 +- .../calced_data/SAMPLE_MOBC_TLM_DB_GS.csv | 8 +- .../calced_data/SAMPLE_MOBC_TLM_DB_HK.csv | 4 +- .../calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv | 8 +- .../TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv | 8 +- .../TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_HK.csv | 4 +- .../SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv | 8 +- .../SAMPLE_AOBC_TLM_DB_AOBC_HK.csv | 4 +- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.c | 73 +++++++++--------- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.h | 72 +++++++++--------- .../src_user/TlmCmd/telemetry_definitions.c | 10 +-- 20 files changed, 192 insertions(+), 187 deletions(-) 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..aa0687f87 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 @@ -59,7 +59,7 @@ static void DI_GS_cmd_packet_handler_(void) { uint8_t select; - GS_rec_tcf(&gs_driver_); + GS_rec_tctf(&gs_driver_); // Tlm更新 for (select = 0; select < CCSDS_SELECT_NUM; ++select) 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 5b9841447..f53940caa 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 @@ -89,11 +89,11 @@ 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].last_rec_tctf_type = GS_TCTF_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].tctf_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; @@ -146,12 +146,12 @@ static void GS_load_default_driver_super_init_settings_(DriverSuper* p_super) DSSC_set_rx_frame_size(p_stream_config, GS_RX_FRAME_SIZE); // 可変長 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; @@ -183,18 +183,18 @@ int GS_rec_tcf(GS_Driver* gs_driver) 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) + gs_driver->info[i].last_rec_tctf_type = (GS_TCTF_TYPE_ENUM)stream; + switch (gs_driver->info[i].last_rec_tctf_type) { - case GS_TCF_TYPE_ENUM_AD_CMD: + case GS_TCTF_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: + case GS_TCTF_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: + case GS_TCTF_TYPE_ENUM_BD_CMD: gs_driver->info[i].bd_rec_status = gs_driver->info[i].rec_status; break; @@ -210,7 +210,7 @@ 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 TCFrame* tc_frame = TCF_convert_from_bytes_to_tc_frame(gs_rx_data); + 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; const TCSegment* tc_segment; @@ -226,13 +226,13 @@ 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) + gs_driver->info[driver_index].tctf_validate_status = GS_validate_tctf(tctf); + if (gs_driver->info[driver_index].tctf_validate_status != GS_VALIDATE_ERR_OK) { return DS_ERR_CODE_ERR; } - tc_segment = TCF_get_tc_segment(tc_frame); + tc_segment = TCTF_get_tc_segment(tctf); cmd_space_packet = TCS_get_command_space_packet(tc_segment); gs_driver->info[driver_index].last_dest_type = CSP_get_dest_type(cmd_space_packet); gs_driver->info[driver_index].cmd_ack = PH_analyze_cmd_packet(cmd_space_packet); // 受信コマンドパケット解析 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 9da4ebafd..466c03150 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 @@ -14,17 +14,17 @@ #include "gs_validate.h" /** - * @enum GS_TCF_TYPE_ENUM + * @enum GS_TCTF_TYPE_ENUM * @note rx_header_ <-> stream で 各 CMD との対応の振り分けを行っている. その Index と対応させるため. * @note uint8_t を想定 */ typedef enum { - GS_TCF_TYPE_ENUM_AD_CMD, - GS_TCF_TYPE_ENUM_BD_CMD, - GS_TCF_TYPE_ENUM_BC_CMD, - GS_TCF_TYPE_ENUM_UNKNOWN -} GS_TCF_TYPE_ENUM; + GS_TCTF_TYPE_ENUM_AD_CMD, + GS_TCTF_TYPE_ENUM_BD_CMD, + GS_TCTF_TYPE_ENUM_BC_CMD, + GS_TCTF_TYPE_ENUM_UNKNOWN +} GS_TCTF_TYPE_ENUM; /** * @enum GS_PORT_TYPE @@ -45,11 +45,11 @@ typedef enum typedef struct { DS_ERR_CODE rec_status; //!< DriverSuper からの受信結果 - GS_TCF_TYPE_ENUM last_rec_tcf_type; //!< 最後に受信した tcf のタイプ + GS_TCTF_TYPE_ENUM last_rec_tctf_type; //!< 最後に受信した tctf のタイプ 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 の検証結果 + GS_VALIDATE_ERR tctf_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 @@ -95,11 +95,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 d5c4dd5b9..ddce7095e 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 @@ -16,8 +16,8 @@ #endif // 以下検証関数. 名前通り -static GS_VALIDATE_ERR GS_check_tcf_header_(const TCFrame* tc_frame); -static GS_VALIDATE_ERR GS_check_fecw_(const TCFrame* tc_frame); +static GS_VALIDATE_ERR GS_check_tctf_header_(const TcTransferFrame* tctf); +static GS_VALIDATE_ERR GS_check_fecw_(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); @@ -26,17 +26,17 @@ static GS_VALIDATE_ERR GS_check_cmd_space_packet_headers_(const CmdSpacePacket* /** * @note AD コマンド: COP-1 制御を使用し伝送順番のチェックを行う */ -static GS_VALIDATE_ERR GS_check_ad_cmd_(const TCFrame* tc_frame); +static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf); /** * @note BD コマンド: COP-1 制御を使用しないため伝送順番のチェックは行わない */ -static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCFrame* tc_frame); +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 TCFrame* tc_frame); +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_; @@ -50,43 +50,43 @@ void GS_validate_init(void) gs_validate_info_.positive_window_width = GS_POSITIVE_WINDOW_WIDTH_DEFAULT; } -GS_VALIDATE_ERR GS_validate_tc_frame(const TCFrame* tc_frame) +GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ret; - TCF_TYPE tc_frame_type; + TCTF_TYPE tctf_type; - ret = GS_check_fecw_(tc_frame); + ret = GS_check_fecw_(tctf); if (ret != GS_VALIDATE_ERR_OK) return ret; - ret = GS_check_tcf_header_(tc_frame); + ret = GS_check_tctf_header_(tctf); if (ret != GS_VALIDATE_ERR_OK) return ret; - tc_frame_type = TCF_get_type(tc_frame); - switch (tc_frame_type) + 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_BD: - ret = GS_check_bd_cmd_(tc_frame); + case TCTF_TYPE_BD: + ret = GS_check_bd_cmd_(tctf); break; - case TCF_TYPE_BC: - ret = GS_check_bc_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 TCFrame* 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; // FIXME: テスト用に一旦コメントアウト + if (TCTF_get_vcid(tctf) != TCTF_VCID_REALTIME) return GS_VALIDATE_ERR_TCTF_VCID; return GS_VALIDATE_ERR_OK; } @@ -156,19 +156,19 @@ static GS_VALIDATE_ERR GS_check_cmd_space_packet_headers_(const CmdSpacePacket* return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_fecw_(const TCFrame* tc_frame) +static GS_VALIDATE_ERR GS_check_fecw_(const TcTransferFrame* tctf) { - size_t len = TCF_get_frame_len(tc_frame); - if (crc_16_ccitt_left(0xffff, (const unsigned char*)tc_frame, len, 0) != 0) return GS_VALIDATE_ERR_FECW_MISSMATCH; + size_t len = TCTF_get_frame_len(tctf); + if (crc_16_ccitt_left(0xffff, (const unsigned char*)tctf, len, 0) != 0) return GS_VALIDATE_ERR_FECW_MISSMATCH; return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_ad_cmd_(const TCFrame* tc_frame) +static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ack; - const TCSegment* tc_segment = TCF_get_tc_segment(tc_frame); - int seq_diff = (GS_RECEIVE_WINDOW + (int)TCF_get_frame_seq_num(tc_frame) - (int)gs_validate_info_.type_a_counter) % GS_RECEIVE_WINDOW; + const TCSegment* tc_segment = TCTF_get_tc_segment(tctf); + int seq_diff = (GS_RECEIVE_WINDOW + (int)TCTF_get_frame_seq_num(tctf) - (int)gs_validate_info_.type_a_counter) % GS_RECEIVE_WINDOW; if (gs_validate_info_.lockout_flag) return GS_VALIDATE_ERR_IN_LOCKOUT; @@ -204,10 +204,10 @@ static GS_VALIDATE_ERR GS_check_ad_cmd_(const TCFrame* tc_frame) return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCFrame* tc_frame) +static GS_VALIDATE_ERR GS_check_bd_cmd_(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ack; - const TCSegment* tc_segment = TCF_get_tc_segment(tc_frame); + const TCSegment* tc_segment = TCTF_get_tc_segment(tctf); ack = GS_check_tc_segment_(tc_segment); if (ack != GS_VALIDATE_ERR_OK) return ack; @@ -218,15 +218,15 @@ static GS_VALIDATE_ERR GS_check_bd_cmd_(const TCFrame* tc_frame) } // BCコマンドの種別を判定し、処理する -static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCFrame* tc_frame) +static GS_VALIDATE_ERR GS_check_bc_cmd_(const TcTransferFrame* tctf) { - size_t length = TCF_get_frame_len(tc_frame); - size_t offset = TCF_HEADER_SIZE + TCF_FECF_SIZE; - const TCSegment* tc_segment = TCF_get_tc_segment(tc_frame); + size_t length = TCTF_get_frame_len(tctf); + size_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] == TCF_BC_CMD_CODE_UNLOCK && length == offset + 1) + if (tc_segment->packet[0] == TCTF_BC_CMD_CODE_UNLOCK && length == offset + 1) { gs_validate_info_.lockout_flag = 0; gs_validate_info_.retransmit_flag = 0; @@ -234,8 +234,8 @@ static GS_VALIDATE_ERR GS_check_bc_cmd_(const TCFrame* tc_frame) ++gs_validate_info_.type_b_counter; } // SET V(R) - else if (tc_segment->packet[0] == TCF_BC_CMD_CODE_SET_VR_0 - && tc_segment->packet[1] == TCF_BC_CMD_CODE_SET_VR_1 + else if (tc_segment->packet[0] == TCTF_BC_CMD_CODE_SET_VR_0 + && tc_segment->packet[1] == TCTF_BC_CMD_CODE_SET_VR_1 && length == offset + 3) { if (gs_validate_info_.lockout_flag == 0) 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 c079e0c54..4f568f0f4 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 @@ -23,10 +23,10 @@ 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, @@ -66,11 +66,11 @@ extern const GS_ValiateInfo* const gs_validate_info; void GS_validate_init(void); /** - * @brief tc_frame の検証 - * @param[in] tc_frame: 検証する TC frame + * @brief tctf の検証 + * @param[in] tctf: 検証する TC frame * @return GS_VALIDATE_ERR */ -GS_VALIDATE_ERR GS_validate_tc_frame(const TCFrame* tc_frame); +GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf); /** * @brief テレメ用の clcw の作成 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 d64c62d5b..6b50f2bce 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 @@ -26,11 +26,11 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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@@ 1=ERROR,, -,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@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,CCSDS_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tctf_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@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, ,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@@ 1=ERROR,, ,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@@ 1=ERROR,, ,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@@ 1=ERROR,, -,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@@ 1=TCF_VER@@ 2=TCF_SCID@@ 3=TCF_VCID@@ 4=TCF_TYPE@@ 5=LOCKOUT@@ 6=TCF_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_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tctf_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@@ 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_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,, @@ -40,11 +40,11 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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)))),NONE,,,,,,,,, ,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@@ 1=ERROR,, -,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@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,UART_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tctf_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@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, ,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@@ 1=ERROR,, ,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@@ 1=ERROR,, ,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@@ 1=ERROR,, -,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@@ 1=TCF_VER@@ 2=TCF_SCID@@ 3=TCF_VCID@@ 4=TCF_TYPE@@ 5=LOCKOUT@@ 6=TCF_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_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tctf_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@@ 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_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)))),NONE,,,,,,,,, ,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,, 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..4021ab91d 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,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/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..f953f5be9 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 @@ -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/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 bba994701..762176486 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 @@ -26,11 +26,11 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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@@ 1=ERROR,, -,CCSDS_LAST_REC_TCF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tcf_type,PACKET,35,0,8,STATUS,,,,,,,0=AD@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,CCSDS_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tctf_type,PACKET,35,0,8,STATUS,,,,,,,0=AD@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, ,CCSDS_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].ad_rec_status,PACKET,36,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, ,CCSDS_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bc_rec_status,PACKET,37,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, ,CCSDS_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bd_rec_status,PACKET,38,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,CCSDS_TCFRAME_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tc_frame_validate_status),PACKET,39,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=TCF_VER@@ 2=TCF_SCID@@ 3=TCF_VCID@@ 4=TCF_TYPE@@ 5=LOCKOUT@@ 6=TCF_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_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tctf_validate_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_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,, @@ -40,11 +40,11 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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,NONE,,,,,,,,, ,UART_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rec_status,PACKET,60,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART_LAST_REC_TCF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tcf_type,PACKET,61,0,8,STATUS,,,,,,,0=AD@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,UART_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tctf_type,PACKET,61,0,8,STATUS,,,,,,,0=AD@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, ,UART_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].ad_rec_status,PACKET,62,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, ,UART_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bc_rec_status,PACKET,63,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, ,UART_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bd_rec_status,PACKET,64,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART_TCFRAME_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tc_frame_validate_status),PACKET,65,0,8,STATUS,,,,,,,0=SUCCESS@@ 1=TCF_VER@@ 2=TCF_SCID@@ 3=TCF_VCID@@ 4=TCF_TYPE@@ 5=LOCKOUT@@ 6=TCF_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_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tctf_validate_status),PACKET,65,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_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,NONE,,,,,,,,, ,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,, 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..4eca46e81 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,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/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..c0b87f471 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 @@ -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/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/Ccsds/tc_transfer_frame.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.c index 8976d2724..3f8a60e57 100644 --- 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 @@ -1,121 +1,126 @@ #pragma section REPRO +/** + * @file + * @brief CCSDS で規定される TC Transfer Frame の実装 + */ + #include "tc_transfer_frame.h" #include // for memcpy -TCF_VER TCF_get_ver(const TCFrame* tcf) +TCTF_VER TCTF_get_ver(const TcTransferFrame* tctf) { uint32_t pos = 0; uint8_t mask = 0xc0; // 1100 0000b - TCF_VER ver = (TCF_VER)((tcf->packet[pos] & mask) >> 6); + TCTF_VER ver = (TCTF_VER)((tctf->packet[pos] & mask) >> 6); switch (ver) { - case TCF_VER_1: + case TCTF_VER_1: return ver; default: - return TCF_VER_UNKNOWN; + return TCTF_VER_UNKNOWN; } } -TCF_TYPE TCF_get_type(const TCFrame* tcf) +TCTF_TYPE TCTF_get_type(const TcTransferFrame* tctf) { uint32_t pos = 0; uint8_t mask = 0x30; // 0011 0000b - TCF_TYPE type = (TCF_TYPE)((tcf->packet[pos] & mask) >> 4); + TCTF_TYPE type = (TCTF_TYPE)((tctf->packet[pos] & mask) >> 4); switch (type) { - case TCF_TYPE_AD: // FALL THROUGH - case TCF_TYPE_BD: // FALL THROUGH - case TCF_TYPE_BC: + case TCTF_TYPE_AD: // FALL THROUGH + case TCTF_TYPE_BD: // FALL THROUGH + case TCTF_TYPE_BC: return type; default: - return TCF_TYPE_UNKNOWN; + return TCTF_TYPE_UNKNOWN; } } -TCF_SCID TCF_get_scid(const TCFrame* tcf) +TCTF_SCID TCTF_get_scid(const TcTransferFrame* tctf) { uint32_t pos = 0; uint8_t mask = 0x03; // 0000 0011b // pos = 0の下位2bitsとpos = 1の8bitsを合わせた10bits - TCF_SCID scid = (TCF_SCID)(tcf->packet[pos] & mask); - scid = (TCF_SCID)(scid << 8); - scid = (TCF_SCID)(scid + tcf->packet[pos + 1]); + 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 TCF_SCID_SAMPLE_SATELLITE: + case TCTF_SCID_SAMPLE_SATELLITE: return scid; default: - return TCF_SCID_UNKNOWN; + return TCTF_SCID_UNKNOWN; } } -TCF_VCID TCF_get_vcid(const TCFrame* tcf) +TCTF_VCID TCTF_get_vcid(const TcTransferFrame* tctf) { uint32_t pos = 2; uint8_t mask = 0xfc; // 1111 1100b - TCF_VCID vcid = (TCF_VCID)((tcf->packet[pos] & mask) >> 2); + TCTF_VCID vcid = (TCTF_VCID)((tctf->packet[pos] & mask) >> 2); switch (vcid) { - case TCF_VCID_REALTIME: + case TCTF_VCID_REALTIME: return vcid; default: - return TCF_VCID_UNKNOWN; + return TCTF_VCID_UNKNOWN; } } -size_t TCF_get_frame_len(const TCFrame* tcf) +size_t TCTF_get_frame_len(const TcTransferFrame* tctf) { uint32_t pos = 2; uint8_t mask = 0x03; // 0000 0011b // pos = 0の下位2bitsとpos = 1の8bitsを合わせた10bits - size_t len = (tcf->packet[pos] & mask); + size_t len = (tctf->packet[pos] & mask); len <<= 8; - len += tcf->packet[pos + 1]; + len += tctf->packet[pos + 1]; // TC Frameの長さ表記は0起算なので1起算に変換した値を返す return len + 1; } -uint8_t TCF_get_frame_seq_num(const TCFrame* tcf) +uint8_t TCTF_get_frame_seq_num(const TcTransferFrame* tctf) { size_t pos = 4; - return tcf->packet[pos]; + return tctf->packet[pos]; } -const TCSegment* TCF_get_tc_segment(const TCFrame* tcf) +const TCSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf) { - size_t pos = TCF_HEADER_SIZE; - return (const TCSegment*)&tcf->packet[pos]; + size_t pos = TCTF_HEADER_SIZE; + return (const TCSegment*)&tctf->packet[pos]; } -uint16_t TCF_get_fecw(const TCFrame* tcf) +uint16_t TCTF_get_fecw(const TcTransferFrame* tctf) { - size_t length = TCF_get_frame_len(tcf); + size_t length = TCTF_get_frame_len(tctf); - uint16_t fecw = tcf->packet[length - 2]; + uint16_t fecw = tctf->packet[length - 2]; fecw <<= 8; - fecw += tcf->packet[length - 1]; + fecw += tctf->packet[length - 1]; return fecw; } -const TCFrame* TCF_convert_from_bytes_to_tc_frame(const uint8_t* byte) +const TcTransferFrame* TCTF_convert_from_bytes_to_tctf(const uint8_t* byte) { - return (const TCFrame*)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 index c8c2605af..c1c7d5381 100644 --- 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 @@ -1,6 +1,6 @@ /** * @file - * @brief CCSDS で規定される TC Frame の実装 + * @brief CCSDS で規定される TC Transfer Frame の実装 * @note packet 構造 * |---------+-------+-------+-----------------------| * | Pos | Pos | size | name | @@ -25,73 +25,73 @@ * | * | 0 | 16 | | * |---------+-------+-------+-----------------------| */ -#ifndef TCFRAME_H_ -#define TCFRAME_H_ +#ifndef TC_TRANSFER_FRAME_H_ +#define TC_TRANSFER_FRAME_H_ #include #include "../../Library/stdint.h" #include "TCSegment.h" -#define TCF_MAX_LEN (1024u) -#define TCF_HEADER_SIZE (5u) -#define TCF_FECF_SIZE (2u) +#define TCTF_MAX_LEN (1024u) +#define TCTF_HEADER_SIZE (5u) +#define TCTF_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) +#define TCTF_BC_CMD_CODE_UNLOCK (0x00) +#define TCTF_BC_CMD_CODE_SET_VR_0 (0x82) +#define TCTF_BC_CMD_CODE_SET_VR_1 (0x00) -#define TCF_PACKET_MAX_LENGTH (TCF_HEADER_SIZE + TCS_PACKET_MAX_LENGTH + TCF_FECF_SIZE) +#define TCTF_PACKET_MAX_LENGTH (TCTF_HEADER_SIZE + TCS_PACKET_MAX_LENGTH + TCTF_FECF_SIZE) typedef struct { - uint8_t packet[TCF_PACKET_MAX_LENGTH]; -} TCFrame; + uint8_t packet[TCTF_PACKET_MAX_LENGTH]; +} TcTransferFrame; typedef enum { - TCF_VER_1 = 0, // 00b: Version 1 - TCF_VER_UNKNOWN -} TCF_VER; + TCTF_VER_1 = 0, // 00b: Version 1 + TCTF_VER_UNKNOWN +} TCTF_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; + 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; typedef enum { - TCF_SCID_SAMPLE_SATELLITE = 0x00, // SCID for command of sample satellite - TCF_SCID_UNKNOWN -} TCF_SCID; + TCTF_SCID_SAMPLE_SATELLITE = 0x00, // SCID for command of sample satellite + TCTF_SCID_UNKNOWN +} TCTF_SCID; typedef enum { - TCF_VCID_REALTIME = 0, - TCF_VCID_UNKNOWN -} TCF_VCID; + TCTF_VCID_REALTIME = 0, + TCTF_VCID_UNKNOWN +} TCTF_VCID; -TCF_VER TCF_get_ver(const TCFrame* tcf); +TCTF_VER TCTF_get_ver(const TcTransferFrame* tctf); -TCF_TYPE TCF_get_type(const TCFrame* tcf); +TCTF_TYPE TCTF_get_type(const TcTransferFrame* tctf); -TCF_SCID TCF_get_scid(const TCFrame* tcf); +TCTF_SCID TCTF_get_scid(const TcTransferFrame* tctf); -TCF_VCID TCF_get_vcid(const TCFrame* tcf); +TCTF_VCID TCTF_get_vcid(const TcTransferFrame* tctf); -size_t TCF_get_frame_len(const TCFrame* tcf); +size_t TCTF_get_frame_len(const TcTransferFrame* tctf); -uint8_t TCF_get_frame_seq_num(const TCFrame* tcf); +uint8_t TCTF_get_frame_seq_num(const TcTransferFrame* tctf); -uint16_t TCF_get_fecw(const TCFrame* tcf); +uint16_t TCTF_get_fecw(const TcTransferFrame* tctf); -const TCSegment* TCF_get_tc_segment(const TCFrame* tcf); +const TCSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf); -uint16_t TCF_calc_fecw(const TCFrame* tcf); +uint16_t TCTF_calc_fecw(const TcTransferFrame* tctf); -const TCFrame* TCF_convert_from_bytes_to_tc_frame(const uint8_t* byte); +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/telemetry_definitions.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/telemetry_definitions.c index 8903521b7..20644e65e 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 @@ -83,7 +83,7 @@ static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_le 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_u8(&packet[66], (uint8_t)gs_driver->latest_info->tctf_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); @@ -3113,11 +3113,11 @@ static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t* packet, uint16_t* len, uint16_t max_len) 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[35], (uint8_t)gs_driver->info[0].last_rec_tctf_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_u8(&packet[39], (uint8_t)(gs_driver->info[0].tctf_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); @@ -3127,11 +3127,11 @@ static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t* packet, uint16_t* len, uint16_t max_len) 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[61], (uint8_t)gs_driver->info[1].last_rec_tctf_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_u8(&packet[65], (uint8_t)(gs_driver->info[1].tctf_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); From db2cd77f0c2e08879902872268def4d808e6cd11 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Wed, 9 Mar 2022 17:30:32 +0900 Subject: [PATCH 09/31] fix command logic --- .../src/src_user/Drivers/Com/gs.c | 37 +++++++++---------- .../src/src_user/Drivers/Com/gs.h | 15 +------- .../DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv | 4 +- .../calced_data/SAMPLE_MOBC_TLM_DB_GS.csv | 4 +- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.h | 2 +- 5 files changed, 23 insertions(+), 39 deletions(-) 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 f53940caa..d105b9051 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 @@ -26,6 +26,7 @@ #endif // header +// それぞれ AD, BD, BC static const uint8_t GS_rx_header_[GS_RX_HEADER_NUM][GS_RX_HEADER_SIZE] = {{0x03, 0x5C}, {0x23, 0x5C}, {0x33, 0x5C} }; // FIXME: 直す static uint8_t GS_tx_frame_[VCDU_LEN]; @@ -89,7 +90,7 @@ 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_tctf_type = GS_TCTF_TYPE_ENUM_UNKNOWN; + gs_driver->info[i].last_rec_tctf_type = TCTF_TYPE_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; @@ -182,25 +183,6 @@ int GS_rec_tctf(GS_Driver* gs_driver) 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_tctf_type = (GS_TCTF_TYPE_ENUM)stream; - switch (gs_driver->info[i].last_rec_tctf_type) - { - case GS_TCTF_TYPE_ENUM_AD_CMD: - gs_driver->info[i].ad_rec_status = gs_driver->info[i].rec_status; - break; - - case GS_TCTF_TYPE_ENUM_BC_CMD: - gs_driver->info[i].bc_rec_status = gs_driver->info[i].rec_status; - break; - - case GS_TCTF_TYPE_ENUM_BD_CMD: - gs_driver->info[i].bd_rec_status = gs_driver->info[i].rec_status; - break; - - default: - break; - } } } @@ -237,6 +219,21 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* gs_driver->info[driver_index].last_dest_type = CSP_get_dest_type(cmd_space_packet); gs_driver->info[driver_index].cmd_ack = PH_analyze_cmd_packet(cmd_space_packet); // 受信コマンドパケット解析 gs_driver->info[driver_index].last_rec_time = TMGR_get_master_total_cycle(); + gs_driver->info[driver_index].last_rec_tctf_type = TCTF_get_type(tctf); + switch (gs_driver->info[driver_index].last_rec_tctf_type) + { + case TCTF_TYPE_AD: + gs_driver->info[driver_index].ad_rec_status = DS_ERR_CODE_OK; + break; + + case TCTF_TYPE_BC: + gs_driver->info[driver_index].bc_rec_status = DS_ERR_CODE_OK; + break; + + case TCTF_TYPE_BD: + gs_driver->info[driver_index].bd_rec_status = DS_ERR_CODE_OK; + break; + } return DS_ERR_CODE_OK; } 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 466c03150..3427b2f93 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_TCTF_TYPE_ENUM - * @note rx_header_ <-> stream で 各 CMD との対応の振り分けを行っている. その Index と対応させるため. - * @note uint8_t を想定 - */ -typedef enum -{ - GS_TCTF_TYPE_ENUM_AD_CMD, - GS_TCTF_TYPE_ENUM_BD_CMD, - GS_TCTF_TYPE_ENUM_BC_CMD, - GS_TCTF_TYPE_ENUM_UNKNOWN -} GS_TCTF_TYPE_ENUM; - /** * @enum GS_PORT_TYPE * @brief GS の通信ポートは CCSDS と UART の 2 つある @@ -45,7 +32,7 @@ typedef enum typedef struct { DS_ERR_CODE rec_status; //!< DriverSuper からの受信結果 - GS_TCTF_TYPE_ENUM last_rec_tctf_type; //!< 最後に受信した tctf のタイプ + TCTF_TYPE last_rec_tctf_type; //!< 最後に受信した tctf のタイプ 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 結果 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 6b50f2bce..4850a4368 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 @@ -26,7 +26,7 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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@@ 1=ERROR,, -,CCSDS_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tctf_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@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,CCSDS_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tctf_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@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, ,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@@ 1=ERROR,, ,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@@ 1=ERROR,, ,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@@ 1=ERROR,, @@ -40,7 +40,7 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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)))),NONE,,,,,,,,, ,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@@ 1=ERROR,, -,UART_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tctf_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@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,UART_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tctf_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@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, ,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@@ 1=ERROR,, ,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@@ 1=ERROR,, ,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@@ 1=ERROR,, 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 762176486..70d7fd33b 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 @@ -26,7 +26,7 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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@@ 1=ERROR,, -,CCSDS_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tctf_type,PACKET,35,0,8,STATUS,,,,,,,0=AD@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,CCSDS_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tctf_type,PACKET,35,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, ,CCSDS_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].ad_rec_status,PACKET,36,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, ,CCSDS_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bc_rec_status,PACKET,37,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, ,CCSDS_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bd_rec_status,PACKET,38,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, @@ -40,7 +40,7 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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,NONE,,,,,,,,, ,UART_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rec_status,PACKET,60,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tctf_type,PACKET,61,0,8,STATUS,,,,,,,0=AD@@ 1=BD@@ 2=BC@@ *=UNKNOWN,, +,UART_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tctf_type,PACKET,61,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, ,UART_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].ad_rec_status,PACKET,62,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, ,UART_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bc_rec_status,PACKET,63,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, ,UART_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bd_rec_status,PACKET,64,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, 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 index c1c7d5381..10b71e7d5 100644 --- 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 @@ -18,7 +18,7 @@ * |---------+-------+-------+-----------------------| * | === User Data Field ============================| * |---------+-------+-------+-----------------------| - * | 5 | 0 | * | Command Space Packet | + * | 5 | 0 | * | TC Segment | * |---------+-------+-------+-----------------------| * | === Frame Error Control Field ==================| * |---------+-------+-------+-----------------------| From 730b7501c04d097c449f10f89ca1b8b6b7e3af9d Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Wed, 9 Mar 2022 17:39:33 +0900 Subject: [PATCH 10/31] fix file & struct name --- .../src/src_user/Drivers/Com/gs.c | 2 +- .../src/src_user/Drivers/Com/gs_validate.c | 18 +++++++++--------- .../src/src_user/TlmCmd/CMakeLists.txt | 2 +- .../TlmCmd/Ccsds/{TCSegment.c => tc_segment.c} | 8 ++++---- .../TlmCmd/Ccsds/{TCSegment.h => tc_segment.h} | 8 ++++---- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.c | 4 ++-- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.h | 4 ++-- 7 files changed, 23 insertions(+), 23 deletions(-) rename Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/{TCSegment.c => tc_segment.c} (77%) rename Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/{TCSegment.h => tc_segment.h} (90%) 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 d105b9051..52c28fddc 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 @@ -195,7 +195,7 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* 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; - const TCSegment* tc_segment; + const TcSegment* tc_segment; const CmdSpacePacket* cmd_space_packet; // アドレス計算で CCSDS か UART か判別 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 ddce7095e..d24627949 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,7 +5,7 @@ */ #include "gs_validate.h" -#include "../../TlmCmd/Ccsds/TCSegment.h" +#include "../../TlmCmd/Ccsds/tc_segment.h" #include #include @@ -19,8 +19,8 @@ static GS_VALIDATE_ERR GS_check_tctf_header_(const TcTransferFrame* tctf); static GS_VALIDATE_ERR GS_check_fecw_(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_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); /** @@ -91,12 +91,12 @@ static GS_VALIDATE_ERR GS_check_tctf_header_(const TcTransferFrame* tctf) return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_tc_segment_(const TCSegment* tc_segment) +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 の固定値部分が妥当か確認する + // TcSegment Header の固定値部分が妥当か確認する ack = GS_check_tcs_headers_(tc_segment); if (ack != GS_VALIDATE_ERR_OK) return ack; @@ -107,7 +107,7 @@ static GS_VALIDATE_ERR GS_check_tc_segment_(const TCSegment* tc_segment) return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_tcs_headers_(const TCSegment* tc_segment) +static GS_VALIDATE_ERR GS_check_tcs_headers_(const TcSegment* tc_segment) { if (TCS_get_seq_flag(tc_segment) != TCS_SEQ_SINGLE) { @@ -167,7 +167,7 @@ static GS_VALIDATE_ERR GS_check_fecw_(const TcTransferFrame* tctf) static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ack; - const TCSegment* tc_segment = TCTF_get_tc_segment(tctf); + const TcSegment* tc_segment = TCTF_get_tc_segment(tctf); int seq_diff = (GS_RECEIVE_WINDOW + (int)TCTF_get_frame_seq_num(tctf) - (int)gs_validate_info_.type_a_counter) % GS_RECEIVE_WINDOW; if (gs_validate_info_.lockout_flag) return GS_VALIDATE_ERR_IN_LOCKOUT; @@ -207,7 +207,7 @@ static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf) static GS_VALIDATE_ERR GS_check_bd_cmd_(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ack; - const TCSegment* tc_segment = TCTF_get_tc_segment(tctf); + const TcSegment* tc_segment = TCTF_get_tc_segment(tctf); ack = GS_check_tc_segment_(tc_segment); if (ack != GS_VALIDATE_ERR_OK) return ack; @@ -222,7 +222,7 @@ static GS_VALIDATE_ERR GS_check_bc_cmd_(const TcTransferFrame* tctf) { size_t length = TCTF_get_frame_len(tctf); size_t offset = TCTF_HEADER_SIZE + TCTF_FECF_SIZE; - const TCSegment* tc_segment = TCTF_get_tc_segment(tctf); + const TcSegment* tc_segment = TCTF_get_tc_segment(tctf); // BC コマンドは COP-1 制御の制御用コマンドで特殊なため少し構造が異なる // Unlock 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 c7c18e40b..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 @@ -17,7 +17,7 @@ set(C2A_SRCS Ccsds/m_pdu.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/TCSegment.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.c similarity index 77% rename from Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCSegment.c rename to Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.c index eab844863..e12d9998d 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCSegment.c +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.c @@ -4,9 +4,9 @@ * @brief CCSDS で規定される TC Segment の実装 */ -#include "TCSegment.h" +#include "tc_segment.h" -TCS_SEQ_FLAG TCS_get_seq_flag(const TCSegment* tcs) +TCS_SEQ_FLAG TCS_get_seq_flag(const TcSegment* tcs) { unsigned int pos = 0; uint8_t mask = 0xc0; // 1100 0000b @@ -14,7 +14,7 @@ TCS_SEQ_FLAG TCS_get_seq_flag(const TCSegment* tcs) return (TCS_SEQ_FLAG)((tcs->packet[pos] & mask) >> 6); } -TCS_MAP_ID TCS_get_map_id(const TCSegment* tcs) +TCS_MAP_ID TCS_get_map_id(const TcSegment* tcs) { unsigned int pos = 0; uint8_t mask = 0x3f; // 0011 1111b @@ -33,7 +33,7 @@ TCS_MAP_ID TCS_get_map_id(const TCSegment* tcs) } } -const CmdSpacePacket* TCS_get_command_space_packet(const TCSegment* tcs) +const CmdSpacePacket* TCS_get_command_space_packet(const TcSegment* tcs) { return (const CmdSpacePacket*)&tcs->packet[TCS_HEADER_SIZE]; } 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/tc_segment.h similarity index 90% rename from Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCSegment.h rename to Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.h index 17235e581..f94d38e56 100644 --- a/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/TCSegment.h +++ b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_segment.h @@ -28,7 +28,7 @@ typedef struct { uint8_t packet[TCS_PACKET_MAX_LENGTH]; -} TCSegment; +} TcSegment; typedef enum { @@ -46,10 +46,10 @@ typedef enum TCS_MAP_ID_UNKNOWN } TCS_MAP_ID; -TCS_SEQ_FLAG TCS_get_seq_flag(const TCSegment* tcs); +TCS_SEQ_FLAG TCS_get_seq_flag(const TcSegment* tcs); -TCS_MAP_ID TCS_get_map_id(const TCSegment* tcs); +TCS_MAP_ID TCS_get_map_id(const TcSegment* tcs); -const CmdSpacePacket* TCS_get_command_space_packet(const TCSegment* tcs); +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 index 3f8a60e57..db9cde20f 100644 --- 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 @@ -101,10 +101,10 @@ uint8_t TCTF_get_frame_seq_num(const TcTransferFrame* tctf) return tctf->packet[pos]; } -const TCSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf) +const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf) { size_t pos = TCTF_HEADER_SIZE; - return (const TCSegment*)&tctf->packet[pos]; + return (const TcSegment*)&tctf->packet[pos]; } uint16_t TCTF_get_fecw(const TcTransferFrame* tctf) 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 index 10b71e7d5..846f07f8a 100644 --- 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 @@ -31,7 +31,7 @@ #include #include "../../Library/stdint.h" -#include "TCSegment.h" +#include "tc_segment.h" #define TCTF_MAX_LEN (1024u) #define TCTF_HEADER_SIZE (5u) @@ -88,7 +88,7 @@ uint8_t TCTF_get_frame_seq_num(const TcTransferFrame* tctf); uint16_t TCTF_get_fecw(const TcTransferFrame* tctf); -const TCSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf); +const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf); uint16_t TCTF_calc_fecw(const TcTransferFrame* tctf); From 60e6d4823b9f88e0e128df3a80e8a4f703b1aaa3 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Wed, 9 Mar 2022 17:44:11 +0900 Subject: [PATCH 11/31] fix little --- Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.c | 2 ++ .../src/src_user/TlmCmd/Ccsds/tc_segment.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) 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 52c28fddc..e203bc60a 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 @@ -233,6 +233,8 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* case TCTF_TYPE_BD: gs_driver->info[driver_index].bd_rec_status = DS_ERR_CODE_OK; break; + default: + break; } return DS_ERR_CODE_OK; 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 index f94d38e56..b1714e557 100644 --- 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 @@ -16,8 +16,8 @@ * | 1 | 0 | * | Command Space Packet | * |---------+-------+-------+-----------------------------| */ -#ifndef TCSEGMENT_H_ -#define TCSEGMENT_H_ +#ifndef TC_SEGMENT_H_ +#define TC_SEGMENT_H_ #include "../../Library/stdint.h" #include From 49d17002941cedd493494b15ebbb9161ffcf7341 Mon Sep 17 00:00:00 2001 From: Ryo Suzumoto Date: Wed, 9 Mar 2022 20:39:14 +0900 Subject: [PATCH 12/31] fix small --- .../src/src_user/Drivers/Com/gs_validate.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 4f568f0f4..ffb02cfd8 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,6 +1,6 @@ /** * @file - * @brief 受信した TC Frame, TC Segment の検証を行う + * @brief 受信した TC Transfer Frame, TC Segment の検証を行う * @note AD, BC, BD コマンドの仕様に関しては * JAXA 設計標準 テレコマンドデータリンクプロトコル設計標準 * https://sma.jaxa.jp/TechDoc/Docs/JAXA-JERG-2-401.pdf @@ -49,10 +49,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; @@ -67,7 +67,7 @@ void GS_validate_init(void); /** * @brief tctf の検証 - * @param[in] tctf: 検証する TC frame + * @param[in] tctf: 検証する TC Transfer Frame * @return GS_VALIDATE_ERR */ GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf); @@ -81,8 +81,8 @@ GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf); 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); From 76ef4cade2f8f1cd01c83629036bfc806c4e8918 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Fri, 11 Mar 2022 00:11:25 +0900 Subject: [PATCH 13/31] =?UTF-8?q?header=20=E8=A8=AD=E5=AE=9A=E3=82=92?= =?UTF-8?q?=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/src_user/Drivers/Com/gs.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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 e203bc60a..2611ba381 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 @@ -20,14 +20,14 @@ #define GS_TX_stream (0) // どれでも良いがとりあえず 0 で #define GS_RX_HEADER_NUM (3) +#define GS_RX_HEADER_SAMPLE_SCID (0x35C) #if GS_RX_HEADER_NUM > DS_STREAM_MAX #error GS RX HEADER NUM TOO MANY #endif -// header // それぞれ AD, BD, BC -static const uint8_t GS_rx_header_[GS_RX_HEADER_NUM][GS_RX_HEADER_SIZE] = {{0x03, 0x5C}, {0x23, 0x5C}, {0x33, 0x5C} }; // FIXME: 直す +static uint8_t GS_rx_header_[GS_RX_HEADER_NUM][GS_RX_HEADER_SIZE]; static uint8_t GS_tx_frame_[VCDU_LEN]; /** @@ -76,6 +76,15 @@ 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; + GS_rx_header_[0][0] |= ((uint16_t)TCTF_TYPE_AD << 4); + GS_rx_header_[1][0] |= ((uint16_t)TCTF_TYPE_BD << 4); + GS_rx_header_[2][0] |= ((uint16_t)TCTF_TYPE_BC << 4); + for (i = 0; i < GS_RX_HEADER_NUM; ++i) + { + GS_rx_header_[i][0] |= (uint8_t)(GS_RX_HEADER_SAMPLE_SCID >> 8); + GS_rx_header_[i][1] |= (uint8_t)(GS_RX_HEADER_SAMPLE_SCID & 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; From 25fd4a3852a9bc99f33c4002a6b5c2151334087d Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Fri, 11 Mar 2022 00:44:00 +0900 Subject: [PATCH 14/31] fix little --- .../src/src_user/Drivers/Com/gs.c | 38 ++++++++++++------- .../src/src_user/Drivers/Com/gs_validate.c | 20 +++++----- .../src/src_user/Drivers/Com/gs_validate.h | 9 ++--- 3 files changed, 38 insertions(+), 29 deletions(-) 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 2611ba381..98021f316 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 @@ -163,7 +163,7 @@ static void GS_load_default_driver_super_init_settings_(DriverSuper* p_super) int GS_rec_tctf(GS_Driver* gs_driver) { - int i, stream; + uint8_t i, stream; for (i = 0; i < GS_PORT_TYPE_NUM; ++i) { @@ -191,7 +191,7 @@ int GS_rec_tctf(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].rec_status = DS_analyze_rec_data(ds, stream, gs_driver); } } @@ -204,8 +204,9 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* 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; - const TcSegment* tc_segment; - const CmdSpacePacket* cmd_space_packet; + const TcSegment* tcs; + const CmdSpacePacket* csp; + DS_ERR_CODE rec; // アドレス計算で CCSDS か UART か判別 if ((uint32_t)p_stream_config < (uint32_t)&gs_driver->driver_uart) @@ -218,34 +219,43 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* } gs_driver->info[driver_index].tctf_validate_status = GS_validate_tctf(tctf); - if (gs_driver->info[driver_index].tctf_validate_status != GS_VALIDATE_ERR_OK) + if (gs_driver->info[driver_index].tctf_validate_status == GS_VALIDATE_ERR_OK) { - return DS_ERR_CODE_ERR; + rec = DS_ERR_CODE_OK; + } + else + { + rec = DS_ERR_CODE_ERR; } - tc_segment = TCTF_get_tc_segment(tctf); - cmd_space_packet = TCS_get_command_space_packet(tc_segment); - gs_driver->info[driver_index].last_dest_type = CSP_get_dest_type(cmd_space_packet); - gs_driver->info[driver_index].cmd_ack = PH_analyze_cmd_packet(cmd_space_packet); // 受信コマンドパケット解析 - gs_driver->info[driver_index].last_rec_time = TMGR_get_master_total_cycle(); gs_driver->info[driver_index].last_rec_tctf_type = TCTF_get_type(tctf); switch (gs_driver->info[driver_index].last_rec_tctf_type) { case TCTF_TYPE_AD: - gs_driver->info[driver_index].ad_rec_status = DS_ERR_CODE_OK; + gs_driver->info[driver_index].ad_rec_status = rec; break; case TCTF_TYPE_BC: - gs_driver->info[driver_index].bc_rec_status = DS_ERR_CODE_OK; + gs_driver->info[driver_index].bc_rec_status = rec; break; case TCTF_TYPE_BD: - gs_driver->info[driver_index].bd_rec_status = DS_ERR_CODE_OK; + gs_driver->info[driver_index].bd_rec_status = rec; break; + default: + // not reached break; } + if (rec == DS_ERR_CODE_ERR) return rec; + + tcs = TCTF_get_tc_segment(tctf); + csp = TCS_get_command_space_packet(tcs); + gs_driver->info[driver_index].last_dest_type = CSP_get_dest_type(csp); + gs_driver->info[driver_index].last_rec_time = TMGR_get_master_total_cycle(); + gs_driver->info[driver_index].cmd_ack = PH_analyze_cmd_packet(csp); // 受信コマンドパケット解析 + return DS_ERR_CODE_OK; } 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 d24627949..9d5614773 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 @@ -12,7 +12,7 @@ #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 +#error POSITIVE WINDOW SETTINGS IS WRONG #endif // 以下検証関数. 名前通り @@ -55,10 +55,10 @@ GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf) GS_VALIDATE_ERR ret; TCTF_TYPE tctf_type; - ret = GS_check_fecw_(tctf); - if (ret != GS_VALIDATE_ERR_OK) return ret; ret = GS_check_tctf_header_(tctf); if (ret != GS_VALIDATE_ERR_OK) return ret; + ret = GS_check_fecw_(tctf); + if (ret != GS_VALIDATE_ERR_OK) return ret; tctf_type = TCTF_get_type(tctf); switch (tctf_type) @@ -127,22 +127,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; } @@ -150,7 +150,7 @@ 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_CSP_SEQ_IS_NOT_SINGLE; } return GS_VALIDATE_ERR_OK; 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 ffb02cfd8..146c59682 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 @@ -29,11 +29,11 @@ typedef enum 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, @@ -41,7 +41,6 @@ typedef enum GS_VALIDATE_ERR_FARM1_SAME_NUMBER, GS_VALIDATE_ERR_INVALID_BC_CMD } GS_VALIDATE_ERR; -// FIXME: TCP → SpacePacket 大工事後に TCP を直す /** * @struct GS_ValidateInfo From 27248970003d9bb35304621aa45d65d9099c2116 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Fri, 11 Mar 2022 16:37:08 +0900 Subject: [PATCH 15/31] =?UTF-8?q?=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0=20&=20=E5=9E=8B=E3=82=92=E4=B8=80?= =?UTF-8?q?=E9=83=A8=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/src_user/Drivers/Com/gs_validate.c | 15 ++-- .../src/src_user/Drivers/Com/gs_validate.h | 4 +- .../src/src_user/TlmCmd/Ccsds/tc_segment.c | 3 +- .../src/src_user/TlmCmd/Ccsds/tc_segment.h | 30 ++++++- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.c | 23 +++--- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.h | 80 ++++++++++++++++--- 6 files changed, 121 insertions(+), 34 deletions(-) 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 9d5614773..cc26f35a1 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 @@ -158,7 +158,7 @@ static GS_VALIDATE_ERR GS_check_cmd_space_packet_headers_(const CmdSpacePacket* static GS_VALIDATE_ERR GS_check_fecw_(const TcTransferFrame* tctf) { - size_t len = TCTF_get_frame_len(tctf); + uint16_t len = TCTF_get_frame_len(tctf); if (crc_16_ccitt_left(0xffff, (const unsigned char*)tctf, len, 0) != 0) return GS_VALIDATE_ERR_FECW_MISSMATCH; return GS_VALIDATE_ERR_OK; @@ -168,7 +168,7 @@ static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ack; const TcSegment* tc_segment = TCTF_get_tc_segment(tctf); - int seq_diff = (GS_RECEIVE_WINDOW + (int)TCTF_get_frame_seq_num(tctf) - (int)gs_validate_info_.type_a_counter) % GS_RECEIVE_WINDOW; + int16_t seq_diff = (int16_t)((GS_RECEIVE_WINDOW + (int)TCTF_get_frame_seq_num(tctf) - (int)gs_validate_info_.type_a_counter) % GS_RECEIVE_WINDOW); if (gs_validate_info_.lockout_flag) return GS_VALIDATE_ERR_IN_LOCKOUT; @@ -178,9 +178,9 @@ static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf) // N(R) == V(R)なら正常受信 if (seq_diff == 0) { - // 再送要求フラグのクリアとシーケンス数のインクリメント 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) @@ -201,7 +201,8 @@ static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf) return GS_VALIDATE_ERR_FARM1_LOCKOUT_AREA; } - return GS_VALIDATE_ERR_OK; + // not reaced + return GS_VALIDATE_ERR_UNKNOWN; } static GS_VALIDATE_ERR GS_check_bd_cmd_(const TcTransferFrame* tctf) @@ -234,9 +235,9 @@ static GS_VALIDATE_ERR GS_check_bc_cmd_(const TcTransferFrame* tctf) ++gs_validate_info_.type_b_counter; } // SET V(R) - else if (tc_segment->packet[0] == TCTF_BC_CMD_CODE_SET_VR_0 - && tc_segment->packet[1] == TCTF_BC_CMD_CODE_SET_VR_1 - && length == offset + 3) + else if (tc_segment->packet[0] == TCTF_BC_CMD_CODE_SET_VR_0 && + tc_segment->packet[1] == TCTF_BC_CMD_CODE_SET_VR_1 && + length == offset + 3) { if (gs_validate_info_.lockout_flag == 0) { 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 146c59682..4317885d8 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 @@ -38,8 +38,8 @@ typedef enum 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; /** 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 index e12d9998d..31f474b10 100644 --- 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 @@ -3,7 +3,6 @@ * @file * @brief CCSDS で規定される TC Segment の実装 */ - #include "tc_segment.h" TCS_SEQ_FLAG TCS_get_seq_flag(const TcSegment* tcs) @@ -35,7 +34,7 @@ TCS_MAP_ID TCS_get_map_id(const TcSegment* tcs) const CmdSpacePacket* TCS_get_command_space_packet(const TcSegment* tcs) { - return (const CmdSpacePacket*)&tcs->packet[TCS_HEADER_SIZE]; + 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 index b1714e557..fcaeca136 100644 --- 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 @@ -21,15 +21,24 @@ #include "../../Library/stdint.h" #include +#include -#define TCS_HEADER_SIZE (1u) +#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; +/** + * @brief TCS_SEQ_FLAG + * @note uint8_t + */ typedef enum { TCS_SEQ_FIRST = 1, // 01b: First Segment @@ -38,6 +47,10 @@ typedef enum TCS_SEQ_SINGLE = 3 // 11b: No Segmentation } TCS_SEQ_FLAG; +/** + * @brief TCS_MAP_ID + * @note uint8_t + */ typedef enum { TCS_MAP_ID_DHU_HDC = 1, // 000001b: DHU Hard Decode Command Packet @@ -46,10 +59,25 @@ typedef enum 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 index db9cde20f..f446534e4 100644 --- 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 @@ -3,14 +3,13 @@ * @file * @brief CCSDS で規定される TC Transfer Frame の実装 */ - #include "tc_transfer_frame.h" #include // for memcpy TCTF_VER TCTF_get_ver(const TcTransferFrame* tctf) { - uint32_t pos = 0; + uint8_t pos = 0; uint8_t mask = 0xc0; // 1100 0000b TCTF_VER ver = (TCTF_VER)((tctf->packet[pos] & mask) >> 6); @@ -27,7 +26,7 @@ TCTF_VER TCTF_get_ver(const TcTransferFrame* tctf) TCTF_TYPE TCTF_get_type(const TcTransferFrame* tctf) { - uint32_t pos = 0; + uint8_t pos = 0; uint8_t mask = 0x30; // 0011 0000b TCTF_TYPE type = (TCTF_TYPE)((tctf->packet[pos] & mask) >> 4); @@ -46,7 +45,7 @@ TCTF_TYPE TCTF_get_type(const TcTransferFrame* tctf) TCTF_SCID TCTF_get_scid(const TcTransferFrame* tctf) { - uint32_t pos = 0; + uint8_t pos = 0; uint8_t mask = 0x03; // 0000 0011b // pos = 0の下位2bitsとpos = 1の8bitsを合わせた10bits @@ -66,7 +65,7 @@ TCTF_SCID TCTF_get_scid(const TcTransferFrame* tctf) TCTF_VCID TCTF_get_vcid(const TcTransferFrame* tctf) { - uint32_t pos = 2; + uint8_t pos = 2; uint8_t mask = 0xfc; // 1111 1100b TCTF_VCID vcid = (TCTF_VCID)((tctf->packet[pos] & mask) >> 2); @@ -81,13 +80,13 @@ TCTF_VCID TCTF_get_vcid(const TcTransferFrame* tctf) } } -size_t TCTF_get_frame_len(const TcTransferFrame* tctf) +uint16_t TCTF_get_frame_len(const TcTransferFrame* tctf) { - uint32_t pos = 2; + uint8_t pos = 2; uint8_t mask = 0x03; // 0000 0011b // pos = 0の下位2bitsとpos = 1の8bitsを合わせた10bits - size_t len = (tctf->packet[pos] & mask); + uint16_t len = (tctf->packet[pos] & mask); len <<= 8; len += tctf->packet[pos + 1]; @@ -97,19 +96,17 @@ size_t TCTF_get_frame_len(const TcTransferFrame* tctf) uint8_t TCTF_get_frame_seq_num(const TcTransferFrame* tctf) { - size_t pos = 4; - return tctf->packet[pos]; + return tctf->packet[4]; } const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf) { - size_t pos = TCTF_HEADER_SIZE; - return (const TcSegment*)&tctf->packet[pos]; + return (const TcSegment*)&tctf->packet[TCTF_HEADER_SIZE]; } uint16_t TCTF_get_fecw(const TcTransferFrame* tctf) { - size_t length = TCTF_get_frame_len(tctf); + uint16_t length = TCTF_get_frame_len(tctf); uint16_t fecw = tctf->packet[length - 2]; fecw <<= 8; 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 index 846f07f8a..07c5b7176 100644 --- 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 @@ -33,27 +33,37 @@ #include "../../Library/stdint.h" #include "tc_segment.h" -#define TCTF_MAX_LEN (1024u) -#define TCTF_HEADER_SIZE (5u) -#define TCTF_FECF_SIZE (2u) +#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_0 (0x82) #define TCTF_BC_CMD_CODE_SET_VR_1 (0x00) -#define TCTF_PACKET_MAX_LENGTH (TCTF_HEADER_SIZE + TCS_PACKET_MAX_LENGTH + TCTF_FECF_SIZE) - +/** + * @struct TcTransferFrame + * @brief TC Transfer Frame のパケット構造体 + */ typedef struct { - uint8_t packet[TCTF_PACKET_MAX_LENGTH]; + uint8_t packet[TCTF_MAX_LEN]; } TcTransferFrame; +/** + * @enum TCTF_VER + * @note 8 bit + */ typedef enum { TCTF_VER_1 = 0, // 00b: Version 1 TCTF_VER_UNKNOWN } TCTF_VER; +/** + * @enum TCTF_TYPE_UNKNOWN + * @note 8 bit + */ typedef enum { TCTF_TYPE_AD = 0, // 00b: TC data with FARM @@ -62,36 +72,88 @@ typedef enum TCTF_TYPE_UNKNOWN } TCTF_TYPE; +/** + * @enum TCTF_SCID + * @note 16 bit + */ typedef enum { TCTF_SCID_SAMPLE_SATELLITE = 0x00, // SCID for command of sample satellite TCTF_SCID_UNKNOWN } TCTF_SCID; +/** + * @enum TCTF_VCID + * @note 8 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); -size_t TCTF_get_frame_len(const TcTransferFrame* tctf); +/** + * @brief length を取得 + * @param[in] tctf: TcTransferFrame + * @return uint16_t + */ +uint16_t TCTF_get_frame_len(const TcTransferFrame* tctf); +/** + * @brief length を取得 + * @param[in] tctf: TcTransferFrame + * @return uint8_t + */ uint8_t TCTF_get_frame_seq_num(const TcTransferFrame* tctf); +/** + * @brief fecw を取得 + * @param[in] tctf: TcTransferFrame + * @return uin16_t + * @note エンディアンは既に考慮されている (ccsds は big endian) + */ uint16_t TCTF_get_fecw(const TcTransferFrame* tctf); +/** + * @brief TcSegment を取得 + * @param[in] tctf: TcTransferFrame + * @return TcSegment* + */ const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf); -uint16_t TCTF_calc_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 From 4b81de3a2a1c9d95b9131de89a199c0fb985eab4 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Fri, 11 Mar 2022 16:50:30 +0900 Subject: [PATCH 16/31] add blanks --- .../src/src_user/TlmCmd/Ccsds/tc_transfer_frame.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 index 07c5b7176..bf03b6039 100644 --- 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 @@ -33,11 +33,11 @@ #include "../../Library/stdint.h" #include "tc_segment.h" -#define TCTF_MAX_LEN (1024) +#define TCTF_MAX_LEN (1024) #define TCTF_HEADER_SIZE (5) -#define TCTF_FECF_SIZE (2) +#define TCTF_FECF_SIZE (2) -#define TCTF_BC_CMD_CODE_UNLOCK (0x00) +#define TCTF_BC_CMD_CODE_UNLOCK (0x00) #define TCTF_BC_CMD_CODE_SET_VR_0 (0x82) #define TCTF_BC_CMD_CODE_SET_VR_1 (0x00) From 19f60c71ca3b4eec389633af822f029138e6637c Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Fri, 11 Mar 2022 23:59:01 +0900 Subject: [PATCH 17/31] change struct --- .../Applications/UserDefined/debug_apps.c | 2 +- .../src/src_user/Drivers/Com/gs.c | 62 +++++----- .../src/src_user/Drivers/Com/gs.h | 36 +++--- .../DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv | 88 +++++++------- .../DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_HK.csv | 6 +- .../TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv | 16 +-- .../calced_data/SAMPLE_MOBC_TLM_DB_GS.csv | 88 +++++++------- .../calced_data/SAMPLE_MOBC_TLM_DB_HK.csv | 6 +- .../calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv | 16 +-- .../src_user/TlmCmd/telemetry_definitions.c | 110 +++++++++--------- 10 files changed, 221 insertions(+), 209 deletions(-) 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/Com/gs.c b/Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.c index 98021f316..7aa151569 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 @@ -98,19 +98,21 @@ 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_tctf_type = TCTF_TYPE_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].tctf_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].tctf.last_rec_tctf_type = TCTF_TYPE_UNKNOWN; + gs_driver->info[i].tctf.tctf_validate_status = GS_VALIDATE_ERR_OK; + gs_driver->info[i].tctf.ad_rec_status = DS_ERR_CODE_OK; + gs_driver->info[i].tctf.bd_rec_status = DS_ERR_CODE_OK; + gs_driver->info[i].tctf.bd_rec_status = DS_ERR_CODE_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) @@ -179,10 +181,10 @@ int GS_rec_tctf(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) { @@ -191,7 +193,7 @@ int GS_rec_tctf(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, stream, gs_driver); + gs_driver->info[i].rx.rec_status = DS_analyze_rec_data(ds, stream, gs_driver); } } @@ -218,8 +220,8 @@ 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].tctf_validate_status = GS_validate_tctf(tctf); - if (gs_driver->info[driver_index].tctf_validate_status == GS_VALIDATE_ERR_OK) + gs_driver->info[driver_index].tctf.tctf_validate_status = GS_validate_tctf(tctf); + if (gs_driver->info[driver_index].tctf.tctf_validate_status == GS_VALIDATE_ERR_OK) { rec = DS_ERR_CODE_OK; } @@ -228,19 +230,19 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* rec = DS_ERR_CODE_ERR; } - gs_driver->info[driver_index].last_rec_tctf_type = TCTF_get_type(tctf); - switch (gs_driver->info[driver_index].last_rec_tctf_type) + gs_driver->info[driver_index].tctf.last_rec_tctf_type = TCTF_get_type(tctf); + switch (gs_driver->info[driver_index].tctf.last_rec_tctf_type) { case TCTF_TYPE_AD: - gs_driver->info[driver_index].ad_rec_status = rec; + gs_driver->info[driver_index].tctf.ad_rec_status = rec; break; case TCTF_TYPE_BC: - gs_driver->info[driver_index].bc_rec_status = rec; + gs_driver->info[driver_index].tctf.bc_rec_status = rec; break; case TCTF_TYPE_BD: - gs_driver->info[driver_index].bd_rec_status = rec; + gs_driver->info[driver_index].tctf.bd_rec_status = rec; break; default: @@ -252,9 +254,9 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* tcs = TCTF_get_tc_segment(tctf); csp = TCS_get_command_space_packet(tcs); - gs_driver->info[driver_index].last_dest_type = CSP_get_dest_type(csp); - gs_driver->info[driver_index].last_rec_time = TMGR_get_master_total_cycle(); - gs_driver->info[driver_index].cmd_ack = PH_analyze_cmd_packet(csp); // 受信コマンドパケット解析 + 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; } @@ -289,9 +291,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 3427b2f93..fba085f5c 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 @@ -31,20 +31,30 @@ typedef enum */ typedef struct { - DS_ERR_CODE rec_status; //!< DriverSuper からの受信結果 - TCTF_TYPE last_rec_tctf_type; //!< 最後に受信した tctf のタイプ - 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 tctf_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 の実行結果 + } rx; - cycle_t send_cycle; //!< 最後に送信したときの時刻 - VCDU_VCID vcid; //!< 送信した TLM のタイプ - uint32_t vcdu_counter; //!< VCDU counter + struct + { + TCTF_TYPE last_rec_tctf_type; //!< 最後に受信した tctf のタイプ + GS_VALIDATE_ERR tctf_validate_status; //!< TC Frame の検証結果 + 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 結果 + } tctf; + + struct + { + cycle_t send_cycle; //!< 最後に送信したときの時刻 + VCDU_VCID vcid; //!< 送信した TLM のタイプ + uint32_t vcdu_counter; //!< VCDU counter + } tx; } GS_Info; /** 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 4850a4368..258c6e59d 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,50 +20,50 @@ 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@@ 1=ERROR,, -,CCSDS_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tctf_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@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, -,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@@ 1=ERROR,, -,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@@ 1=ERROR,, -,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@@ 1=ERROR,, -,CCSDS_TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tctf_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@@ 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_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)))),NONE,,,,,,,,, -,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)))),STATUS,,,,,,,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)))),NONE,,,,,,,,, -,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@@ 1=ERROR,, -,UART_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tctf_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@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, -,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@@ 1=ERROR,, -,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@@ 1=ERROR,, -,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@@ 1=ERROR,, -,UART_TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tctf_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@@ 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_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)))),NONE,,,,,,,,, -,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)))),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_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,,,,,,,,, +,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].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.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.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@@ 1=ERROR,, +,CCSDS.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.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@@ 1=ERROR,, +,CCSDS.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.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@@ 1=ERROR,, +,CCSDS.TX.IS_VALID,uint8_t,gs_driver->is_ccsds_tx_valid,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=INVALID@@ 1=VALID,, +,CCSDS.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].tx.send_cycle,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.TX.VCID,uint8_t,(uint8_t)gs_driver->info[0].tx.vcid,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,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, +,CCSDS.TX.VCDU_COUNTER,uint32_t,gs_driver->info[0].tx.vcdu_counter,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,,,,,,,,, +,CCSDS.TX.BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,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.CH,uint8_t,gs_driver->driver_uart.uart_config.ch,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.BAUDRATE,uint32_t,gs_driver->driver_uart.uart_config.baudrate,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,,,,,,,,, +,UART.PARITY,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.parity_settings,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=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,=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=7bit@@ 1 =8bit,, +,UART.STOP_BIT,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.stop_bit,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=1bit@@ 1=1.5bit@@ 2=2bit,, +,UART.RX.REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.rec_status,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=OK@@ 1=ERROR,, +,UART.RX.RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->info[1].rx.ret_from_if_rx,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,,,,,,,,, +,UART.RX.LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.last_dest_type,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=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,=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,,,,,,,,, +,UART.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].rx.cmd_ack,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@@ 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].tctf.last_rec_tctf_type,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=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, +,UART.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.ad_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=OK@@ 1=ERROR,, +,UART.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.bc_rec_status,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=OK@@ 1=ERROR,, +,UART.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.bd_rec_status,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=OK@@ 1=ERROR,, +,UART.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[1].tx.send_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,,,,,,,,, +,UART.TX.VCID,uint8_t,(uint8_t)gs_driver->info[1].tx.vcid,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,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, +,UART.TX.VCDU_COUNTER,uint32_t,gs_driver->info[1].tx.vcdu_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.TYPE_A_COUNTER,uint8_t,gs_validate_info->type_a_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,,,,,,,,, +,COP-1.TYPE_B_COUNTER,uint8_t,gs_validate_info->type_b_counter,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.LOCKOUT_FLAG,uint8_t,gs_validate_info->lockout_flag,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,,,,,,,,, +,COP-1.RETRANSMIT_FLAG,uint8_t,gs_validate_info->retransmit_flag,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,,,,,,,,, +,COP-1.POSITIVE_WINDOW_WIDTH,uint8_t,gs_validate_info->positive_window_width,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.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,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,,,,,,,,, +,MS_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,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,,,,,,,,, +,MS_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_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,,,,,,,,, +,RP_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,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,,,,,,,,, +,RP_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,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,,,,,,,,, +,RP_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,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,,,,,,,,, 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 4021ab91d..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_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_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 f953f5be9..5b4d0427b 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,12 +31,12 @@ 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,,,,,,,,, -,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, +,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_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->tctf.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->rx.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, +,TCP_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rx.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, @@ -106,10 +106,10 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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_CYCLE,uint32_t,(uint32_t)gs_driver->latest_info->tx.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^, +,TCI_VCID,uint8_t,(uint8_t)gs_driver->latest_info->tx.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->tx.vcdu_counter,PACKET,=F111+INT((G111+H111)/8),=MOD((G111+H111)@@8),=IF(OR(EXACT(C112@@"uint8_t")@@EXACT(C112@@"int8_t"))@@8@@IF(OR(EXACT(C112@@"uint16_t")@@EXACT(C112@@"int16_t"))@@16@@IF(OR(EXACT(C112@@"uint32_t")@@EXACT(C112@@"int32_t")@@EXACT(C112@@"float"))@@32@@IF(EXACT(C112@@"double")@@64)))),NONE,,,,,,,,Z::oVCDUJE^, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/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 70d7fd33b..e701431e4 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,50 +20,50 @@ 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@@ 1=ERROR,, -,CCSDS_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[0].last_rec_tctf_type,PACKET,35,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, -,CCSDS_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].ad_rec_status,PACKET,36,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,CCSDS_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bc_rec_status,PACKET,37,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,CCSDS_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].bd_rec_status,PACKET,38,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,CCSDS_TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tctf_validate_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_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,NONE,,,,,,,,, -,CCSDS_VCID,uint8_t,(uint8_t)gs_driver->info[0].vcid,PACKET,54,0,8,STATUS,,,,,,,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,NONE,,,,,,,,, -,UART_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rec_status,PACKET,60,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART_LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].last_rec_tctf_type,PACKET,61,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, -,UART_AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].ad_rec_status,PACKET,62,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART_BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bc_rec_status,PACKET,63,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART_BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].bd_rec_status,PACKET,64,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART_TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tctf_validate_status),PACKET,65,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_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,NONE,,,,,,,,, -,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,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_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,,,,,,,,, +,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].tctf.last_rec_tctf_type,PACKET,37,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, +,CCSDS.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.ad_rec_status,PACKET,39,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.bc_rec_status,PACKET,40,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.bd_rec_status,PACKET,41,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS.TX.IS_VALID,uint8_t,gs_driver->is_ccsds_tx_valid,PACKET,42,0,8,STATUS,,,,,,,0=INVALID@@ 1=VALID,, +,CCSDS.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].tx.send_cycle,PACKET,43,0,32,NONE,,,,,,,,, +,CCSDS.TX.VCID,uint8_t,(uint8_t)gs_driver->info[0].tx.vcid,PACKET,47,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, +,CCSDS.TX.VCDU_COUNTER,uint32_t,gs_driver->info[0].tx.vcdu_counter,PACKET,48,0,32,NONE,,,,,,,,, +,CCSDS.TX.BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,52,0,8,NONE,,,,,,,,, +,UART.CH,uint8_t,gs_driver->driver_uart.uart_config.ch,PACKET,53,0,8,NONE,,,,,,,,, +,UART.BAUDRATE,uint32_t,gs_driver->driver_uart.uart_config.baudrate,PACKET,54,0,32,NONE,,,,,,,,, +,UART.PARITY,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.parity_settings,PACKET,58,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,59,0,8,STATUS,,,,,,,0=7bit@@ 1 =8bit,, +,UART.STOP_BIT,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.stop_bit,PACKET,60,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,61,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,62,0,32,NONE,,,,,,,,, +,UART.RX.LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.last_dest_type,PACKET,66,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,67,0,32,NONE,,,,,,,,, +,UART.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].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,, +,UART.TCTF.LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].tctf.last_rec_tctf_type,PACKET,72,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, +,UART.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.ad_rec_status,PACKET,74,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.bc_rec_status,PACKET,75,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.bd_rec_status,PACKET,76,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[1].tx.send_cycle,PACKET,77,0,32,NONE,,,,,,,,, +,UART.TX.VCID,uint8_t,(uint8_t)gs_driver->info[1].tx.vcid,PACKET,81,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, +,UART.TX.VCDU_COUNTER,uint32_t,gs_driver->info[1].tx.vcdu_counter,PACKET,82,0,32,NONE,,,,,,,,, +,COP-1.TYPE_A_COUNTER,uint8_t,gs_validate_info->type_a_counter,PACKET,86,0,8,NONE,,,,,,,,, +,COP-1.TYPE_B_COUNTER,uint8_t,gs_validate_info->type_b_counter,PACKET,87,0,8,NONE,,,,,,,,, +,COP-1.LOCKOUT_FLAG,uint8_t,gs_validate_info->lockout_flag,PACKET,88,0,8,NONE,,,,,,,,, +,COP-1.RETRANSMIT_FLAG,uint8_t,gs_validate_info->retransmit_flag,PACKET,89,0,8,NONE,,,,,,,,, +,COP-1.POSITIVE_WINDOW_WIDTH,uint8_t,gs_validate_info->positive_window_width,PACKET,90,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,91,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,95,0,32,NONE,,,,,,,,, +,MS_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter,PACKET,99,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,103,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,107,0,32,NONE,,,,,,,,, +,RP_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,PACKET,111,0,32,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,,,,,,,,, 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 4eca46e81..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_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_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 c0b87f471..056f89aa8 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,12 +31,12 @@ 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,,,,,,,,, -,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, +,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_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->tctf.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->rx.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, +,TCP_LAST_RECV_ACK,uint8_t,(uint8_t)gs_driver->latest_info->rx.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, @@ -106,10 +106,10 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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_CYCLE,uint32_t,(uint32_t)gs_driver->latest_info->tx.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^, +,TCI_VCID,uint8_t,(uint8_t)gs_driver->latest_info->tx.vcid,PACKET,281,0,8,NONE,,,,,,,,\::oVCID, +,TCI_VCDU_COUNTER,uint32_t,gs_driver->latest_info->tx.vcdu_counter,PACKET,282,0,32,NONE,,,,,,,,Z::oVCDUJE^, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, 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 20644e65e..ba281490f 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 @@ -81,12 +81,12 @@ 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->tctf_validate_status); - TF_copy_u32(&packet[67], (uint32_t)gs_driver->latest_info->last_rec_time); + 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_u8(&packet[66], (uint8_t)gs_driver->latest_info->tctf.tctf_validate_status); + TF_copy_u32(&packet[67], (uint32_t)gs_driver->latest_info->rx.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[72], (uint8_t)gs_driver->latest_info->rx.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)); @@ -156,10 +156,10 @@ static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_le 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[273], (uint32_t)gs_driver->latest_info->tx.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_u8(&packet[281], (uint8_t)gs_driver->latest_info->tx.vcid); + TF_copy_u32(&packet[282], gs_driver->latest_info->tx.vcdu_counter); #endif *len = 286; @@ -3107,50 +3107,50 @@ 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; #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_tctf_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].tctf_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_tctf_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].tctf_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_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].tctf.last_rec_tctf_type); + TF_copy_u8(&packet[38], (uint8_t)(gs_driver->info[0].tctf.tctf_validate_status)); + TF_copy_u8(&packet[39], (uint8_t)gs_driver->info[0].tctf.ad_rec_status); + TF_copy_u8(&packet[40], (uint8_t)gs_driver->info[0].tctf.bc_rec_status); + TF_copy_u8(&packet[41], (uint8_t)gs_driver->info[0].tctf.bd_rec_status); + TF_copy_u8(&packet[42], gs_driver->is_ccsds_tx_valid); + TF_copy_u32(&packet[43], (uint32_t)gs_driver->info[0].tx.send_cycle); + TF_copy_u8(&packet[47], (uint8_t)gs_driver->info[0].tx.vcid); + TF_copy_u32(&packet[48], gs_driver->info[0].tx.vcdu_counter); + TF_copy_u8(&packet[52], gs_driver->ccsds_info.buffer_num); + TF_copy_u8(&packet[53], gs_driver->driver_uart.uart_config.ch); + TF_copy_u32(&packet[54], gs_driver->driver_uart.uart_config.baudrate); + TF_copy_u8(&packet[58], (uint8_t)gs_driver->driver_uart.uart_config.parity_settings); + TF_copy_u8(&packet[59], (uint8_t)gs_driver->driver_uart.uart_config.data_length); + TF_copy_u8(&packet[60], (uint8_t)gs_driver->driver_uart.uart_config.stop_bit); + TF_copy_u8(&packet[61], (uint8_t)gs_driver->info[1].rx.rec_status); + TF_copy_i32(&packet[62], (int32_t)gs_driver->info[1].rx.ret_from_if_rx); + TF_copy_u8(&packet[66], (uint8_t)gs_driver->info[1].rx.last_dest_type); + TF_copy_u32(&packet[67], (uint32_t)gs_driver->info[1].rx.last_rec_time); + TF_copy_u8(&packet[71], (uint8_t)gs_driver->info[1].rx.cmd_ack); + TF_copy_u8(&packet[72], (uint8_t)gs_driver->info[1].tctf.last_rec_tctf_type); + TF_copy_u8(&packet[73], (uint8_t)(gs_driver->info[1].tctf.tctf_validate_status)); + TF_copy_u8(&packet[74], (uint8_t)gs_driver->info[1].tctf.ad_rec_status); + TF_copy_u8(&packet[75], (uint8_t)gs_driver->info[1].tctf.bc_rec_status); + TF_copy_u8(&packet[76], (uint8_t)gs_driver->info[1].tctf.bd_rec_status); + TF_copy_u32(&packet[77], (uint32_t)gs_driver->info[1].tx.send_cycle); + TF_copy_u8(&packet[81], (uint8_t)gs_driver->info[1].tx.vcid); + TF_copy_u32(&packet[82], gs_driver->info[1].tx.vcdu_counter); + TF_copy_u8(&packet[86], gs_validate_info->type_a_counter); + TF_copy_u8(&packet[87], gs_validate_info->type_b_counter); + TF_copy_u8(&packet[88], gs_validate_info->lockout_flag); + TF_copy_u8(&packet[89], gs_validate_info->retransmit_flag); + TF_copy_u8(&packet[90], gs_validate_info->positive_window_width); + TF_copy_u32(&packet[91], (uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); + TF_copy_u32(&packet[95], (uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); + TF_copy_u32(&packet[99], (uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter); + TF_copy_u32(&packet[103], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); + TF_copy_u32(&packet[107], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); + TF_copy_u32(&packet[111], (uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter); 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]); @@ -3173,9 +3173,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)); From 67f887dd2da47e767d3d5d0a069e8f2307e8e034 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Sun, 13 Mar 2022 01:34:00 +0900 Subject: [PATCH 18/31] modify comments --- .../src/src_user/Drivers/Com/gs.c | 40 +++++++++---------- .../src/src_user/Drivers/Com/gs.h | 18 ++++----- .../src/src_user/Drivers/Com/gs_validate.c | 10 ++--- .../src/src_user/TlmCmd/Ccsds/tc_segment.h | 10 +++-- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.c | 2 +- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.h | 28 ++++++++----- 6 files changed, 59 insertions(+), 49 deletions(-) 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 7aa151569..d716393d1 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 @@ -15,7 +15,6 @@ #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 で @@ -23,7 +22,7 @@ #define GS_RX_HEADER_SAMPLE_SCID (0x35C) #if GS_RX_HEADER_NUM > DS_STREAM_MAX - #error GS RX HEADER NUM TOO MANY +#error GS RX HEADER NUM TOO MANY #endif // それぞれ AD, BD, BC @@ -76,12 +75,13 @@ 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; - GS_rx_header_[0][0] |= ((uint16_t)TCTF_TYPE_AD << 4); - GS_rx_header_[1][0] |= ((uint16_t)TCTF_TYPE_BD << 4); - GS_rx_header_[2][0] |= ((uint16_t)TCTF_TYPE_BC << 4); + 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)(GS_RX_HEADER_SAMPLE_SCID >> 8); + GS_rx_header_[i][0] |= (uint8_t)((GS_RX_HEADER_SAMPLE_SCID & 0xffff) >> 8); GS_rx_header_[i][1] |= (uint8_t)(GS_RX_HEADER_SAMPLE_SCID & 0xff); } @@ -104,11 +104,11 @@ int GS_init(GS_Driver* gs_driver, uint8_t uart_ch) gs_driver->info[i].rx.last_rec_time = 0; gs_driver->info[i].rx.cmd_ack = PH_ACK_SUCCESS; - gs_driver->info[i].tctf.last_rec_tctf_type = TCTF_TYPE_UNKNOWN; - gs_driver->info[i].tctf.tctf_validate_status = GS_VALIDATE_ERR_OK; - gs_driver->info[i].tctf.ad_rec_status = DS_ERR_CODE_OK; - gs_driver->info[i].tctf.bd_rec_status = DS_ERR_CODE_OK; - gs_driver->info[i].tctf.bd_rec_status = DS_ERR_CODE_OK; + gs_driver->info[i].rx.tctf.last_rec_tctf_type = TCTF_TYPE_UNKNOWN; + gs_driver->info[i].rx.tctf.tctf_validate_status = GS_VALIDATE_ERR_OK; + gs_driver->info[i].rx.tctf.ad_rec_status = DS_ERR_CODE_OK; + gs_driver->info[i].rx.tctf.bd_rec_status = DS_ERR_CODE_OK; + gs_driver->info[i].rx.tctf.bd_rec_status = DS_ERR_CODE_OK; gs_driver->info[i].tx.send_cycle = 0; gs_driver->info[i].tx.vcid = VCDU_VCID_UNKNOWN; @@ -155,7 +155,7 @@ 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); // TCTF の framelength は 0 起算 @@ -220,8 +220,8 @@ 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].tctf.tctf_validate_status = GS_validate_tctf(tctf); - if (gs_driver->info[driver_index].tctf.tctf_validate_status == GS_VALIDATE_ERR_OK) + gs_driver->info[driver_index].rx.tctf.tctf_validate_status = GS_validate_tctf(tctf); + if (gs_driver->info[driver_index].rx.tctf.tctf_validate_status == GS_VALIDATE_ERR_OK) { rec = DS_ERR_CODE_OK; } @@ -230,19 +230,19 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* rec = DS_ERR_CODE_ERR; } - gs_driver->info[driver_index].tctf.last_rec_tctf_type = TCTF_get_type(tctf); - switch (gs_driver->info[driver_index].tctf.last_rec_tctf_type) + 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) { case TCTF_TYPE_AD: - gs_driver->info[driver_index].tctf.ad_rec_status = rec; + gs_driver->info[driver_index].rx.tctf.ad_rec_status = rec; break; case TCTF_TYPE_BC: - gs_driver->info[driver_index].tctf.bc_rec_status = rec; + gs_driver->info[driver_index].rx.tctf.bc_rec_status = rec; break; case TCTF_TYPE_BD: - gs_driver->info[driver_index].tctf.bd_rec_status = rec; + gs_driver->info[driver_index].rx.tctf.bd_rec_status = rec; break; default: @@ -250,7 +250,7 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* break; } - if (rec == DS_ERR_CODE_ERR) return rec; + if (rec != DS_ERR_CODE_OK) return rec; tcs = TCTF_get_tc_segment(tctf); csp = TCS_get_command_space_packet(tcs); 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 fba085f5c..4326f9671 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 @@ -38,16 +38,16 @@ typedef struct CCP_DEST_TYPE last_dest_type; //!< 最後に受信したパケットの dest type cycle_t last_rec_time; //!< 最後に受信した時刻 PH_ACK cmd_ack; //!< 受信した CMD の実行結果 - } rx; - struct - { - TCTF_TYPE last_rec_tctf_type; //!< 最後に受信した tctf のタイプ - GS_VALIDATE_ERR tctf_validate_status; //!< TC Frame の検証結果 - 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 結果 - } tctf; + struct + { + TCTF_TYPE last_rec_tctf_type; //!< 最後に受信した TC Transfer Frame のタイプ + GS_VALIDATE_ERR tctf_validate_status; //!< TC Transfer Frame の検証結果 + 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 結果 + } tctf; + } rx; struct { 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 cc26f35a1..5b7372916 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 @@ -168,7 +168,7 @@ static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ack; const TcSegment* tc_segment = TCTF_get_tc_segment(tctf); - int16_t seq_diff = (int16_t)((GS_RECEIVE_WINDOW + (int)TCTF_get_frame_seq_num(tctf) - (int)gs_validate_info_.type_a_counter) % GS_RECEIVE_WINDOW); + int16_t seq_diff = (int16_t)((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; @@ -221,8 +221,8 @@ static GS_VALIDATE_ERR GS_check_bd_cmd_(const TcTransferFrame* tctf) // BCコマンドの種別を判定し、処理する static GS_VALIDATE_ERR GS_check_bc_cmd_(const TcTransferFrame* tctf) { - size_t length = TCTF_get_frame_len(tctf); - size_t offset = TCTF_HEADER_SIZE + TCTF_FECF_SIZE; + 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 制御の制御用コマンドで特殊なため少し構造が異なる @@ -235,8 +235,8 @@ static GS_VALIDATE_ERR GS_check_bc_cmd_(const TcTransferFrame* tctf) ++gs_validate_info_.type_b_counter; } // SET V(R) - else if (tc_segment->packet[0] == TCTF_BC_CMD_CODE_SET_VR_0 && - tc_segment->packet[1] == TCTF_BC_CMD_CODE_SET_VR_1 && + 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) { if (gs_validate_info_.lockout_flag == 0) 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 index fcaeca136..e3225aa59 100644 --- 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 @@ -36,8 +36,9 @@ typedef struct } TcSegment; /** - * @brief TCS_SEQ_FLAG - * @note uint8_t + * @enum TCS_SEQ_FLAG + * @brief Sequential Flag + * @note 2 bit */ typedef enum { @@ -48,8 +49,9 @@ typedef enum } TCS_SEQ_FLAG; /** - * @brief TCS_MAP_ID - * @note uint8_t + * @enum TCS_MAP_ID + * @brief Multiplexer Access Point ID + * @note 6 bit */ typedef enum { 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 index f446534e4..940ef7e28 100644 --- 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 @@ -101,7 +101,7 @@ uint8_t TCTF_get_frame_seq_num(const TcTransferFrame* tctf) const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf) { - return (const TcSegment*)&tctf->packet[TCTF_HEADER_SIZE]; + return (const TcSegment*)(&tctf->packet[TCTF_HEADER_SIZE]); } uint16_t TCTF_get_fecw(const TcTransferFrame* tctf) 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 index bf03b6039..e305fcf64 100644 --- 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 @@ -38,8 +38,12 @@ #define TCTF_FECF_SIZE (2) #define TCTF_BC_CMD_CODE_UNLOCK (0x00) -#define TCTF_BC_CMD_CODE_SET_VR_0 (0x82) -#define TCTF_BC_CMD_CODE_SET_VR_1 (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 @@ -51,8 +55,9 @@ typedef struct } TcTransferFrame; /** - * @enum TCTF_VER - * @note 8 bit + * @enum TCTF_VER + * @brief Version + * @note 2 bit */ typedef enum { @@ -61,8 +66,9 @@ typedef enum } TCTF_VER; /** - * @enum TCTF_TYPE_UNKNOWN - * @note 8 bit + * @enum TCTF_TYPE + * @brief Type + * @note 2 bit */ typedef enum { @@ -73,8 +79,9 @@ typedef enum } TCTF_TYPE; /** - * @enum TCTF_SCID - * @note 16 bit + * @enum TCTF_SCID + * @brief Spacecraft ID + * @note 10 bit */ typedef enum { @@ -83,8 +90,9 @@ typedef enum } TCTF_SCID; /** - * @enum TCTF_VCID - * @note 8 bit + * @enum TCTF_VCID + * @brief Virtual Channel ID + * @note 6 bit */ typedef enum { From e3880c15067bc5fe0dd8284580a7c448a44e75f7 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Sun, 13 Mar 2022 19:18:41 +0900 Subject: [PATCH 19/31] modify tlm def --- .../DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv | 20 ++++++++--------- .../TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv | 2 +- .../calced_data/SAMPLE_MOBC_TLM_DB_GS.csv | 20 ++++++++--------- .../calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv | 2 +- .../src_user/TlmCmd/telemetry_definitions.c | 22 +++++++++---------- 5 files changed, 33 insertions(+), 33 deletions(-) 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 258c6e59d..071f7fdff 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 @@ -25,11 +25,11 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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].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.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.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@@ 1=ERROR,, -,CCSDS.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.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@@ 1=ERROR,, -,CCSDS.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.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@@ 1=ERROR,, +,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.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.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@@ 1=ERROR,, +,CCSDS.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.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@@ 1=ERROR,, +,CCSDS.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.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@@ 1=ERROR,, ,CCSDS.TX.IS_VALID,uint8_t,gs_driver->is_ccsds_tx_valid,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=INVALID@@ 1=VALID,, ,CCSDS.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].tx.send_cycle,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.TX.VCID,uint8_t,(uint8_t)gs_driver->info[0].tx.vcid,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,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, @@ -45,11 +45,11 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,UART.RX.LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.last_dest_type,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=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,=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,,,,,,,,, ,UART.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].rx.cmd_ack,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@@ 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].tctf.last_rec_tctf_type,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=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, -,UART.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.ad_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=OK@@ 1=ERROR,, -,UART.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.bc_rec_status,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=OK@@ 1=ERROR,, -,UART.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.bd_rec_status,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=OK@@ 1=ERROR,, +,UART.TCTF.LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.last_rec_tctf_type,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=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, +,UART.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.ad_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=OK@@ 1=ERROR,, +,UART.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status,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=OK@@ 1=ERROR,, +,UART.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bd_rec_status,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=OK@@ 1=ERROR,, ,UART.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[1].tx.send_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,,,,,,,,, ,UART.TX.VCID,uint8_t,(uint8_t)gs_driver->info[1].tx.vcid,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,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, ,UART.TX.VCDU_COUNTER,uint32_t,gs_driver->info[1].tx.vcdu_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,,,,,,,,, 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 5b4d0427b..9d985f9f7 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 @@ -33,7 +33,7 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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->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_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->tctf.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_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->rx.tctf.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->rx.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->rx.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, 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 e701431e4..e8c43ef0e 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 @@ -25,11 +25,11 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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].tctf.last_rec_tctf_type,PACKET,37,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, -,CCSDS.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.ad_rec_status,PACKET,39,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,CCSDS.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.bc_rec_status,PACKET,40,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,CCSDS.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].tctf.bd_rec_status,PACKET,41,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,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.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.ad_rec_status,PACKET,39,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bc_rec_status,PACKET,40,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bd_rec_status,PACKET,41,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, ,CCSDS.TX.IS_VALID,uint8_t,gs_driver->is_ccsds_tx_valid,PACKET,42,0,8,STATUS,,,,,,,0=INVALID@@ 1=VALID,, ,CCSDS.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].tx.send_cycle,PACKET,43,0,32,NONE,,,,,,,,, ,CCSDS.TX.VCID,uint8_t,(uint8_t)gs_driver->info[0].tx.vcid,PACKET,47,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, @@ -45,11 +45,11 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,UART.RX.LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.last_dest_type,PACKET,66,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,67,0,32,NONE,,,,,,,,, ,UART.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].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,, -,UART.TCTF.LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].tctf.last_rec_tctf_type,PACKET,72,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, -,UART.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.ad_rec_status,PACKET,74,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.bc_rec_status,PACKET,75,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].tctf.bd_rec_status,PACKET,76,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART.TCTF.LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.last_rec_tctf_type,PACKET,72,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, +,UART.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.ad_rec_status,PACKET,74,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status,PACKET,75,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bd_rec_status,PACKET,76,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, ,UART.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[1].tx.send_cycle,PACKET,77,0,32,NONE,,,,,,,,, ,UART.TX.VCID,uint8_t,(uint8_t)gs_driver->info[1].tx.vcid,PACKET,81,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, ,UART.TX.VCDU_COUNTER,uint32_t,gs_driver->info[1].tx.vcdu_counter,PACKET,82,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_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 056f89aa8..e2f2b86a9 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 @@ -33,7 +33,7 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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->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_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->tctf.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_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->rx.tctf.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->rx.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->rx.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, 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 ba281490f..d6357892e 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 @@ -83,7 +83,7 @@ static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_le TF_copy_i32(&packet[57], (int32_t)(TDSP_info->tskd.prev_err.sts)); 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_u8(&packet[66], (uint8_t)gs_driver->latest_info->tctf.tctf_validate_status); + TF_copy_u8(&packet[66], (uint8_t)gs_driver->latest_info->rx.tctf.tctf_validate_status); TF_copy_u32(&packet[67], (uint32_t)gs_driver->latest_info->rx.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->rx.cmd_ack); @@ -3112,11 +3112,11 @@ static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t* packet, uint16_t* len, uint16_t max_len) 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].tctf.last_rec_tctf_type); - TF_copy_u8(&packet[38], (uint8_t)(gs_driver->info[0].tctf.tctf_validate_status)); - TF_copy_u8(&packet[39], (uint8_t)gs_driver->info[0].tctf.ad_rec_status); - TF_copy_u8(&packet[40], (uint8_t)gs_driver->info[0].tctf.bc_rec_status); - TF_copy_u8(&packet[41], (uint8_t)gs_driver->info[0].tctf.bd_rec_status); + 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.tctf_validate_status)); + TF_copy_u8(&packet[39], (uint8_t)gs_driver->info[0].rx.tctf.ad_rec_status); + TF_copy_u8(&packet[40], (uint8_t)gs_driver->info[0].rx.tctf.bc_rec_status); + TF_copy_u8(&packet[41], (uint8_t)gs_driver->info[0].rx.tctf.bd_rec_status); TF_copy_u8(&packet[42], gs_driver->is_ccsds_tx_valid); TF_copy_u32(&packet[43], (uint32_t)gs_driver->info[0].tx.send_cycle); TF_copy_u8(&packet[47], (uint8_t)gs_driver->info[0].tx.vcid); @@ -3132,11 +3132,11 @@ static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t* packet, uint16_t* len, uint16_t max_len) TF_copy_u8(&packet[66], (uint8_t)gs_driver->info[1].rx.last_dest_type); TF_copy_u32(&packet[67], (uint32_t)gs_driver->info[1].rx.last_rec_time); TF_copy_u8(&packet[71], (uint8_t)gs_driver->info[1].rx.cmd_ack); - TF_copy_u8(&packet[72], (uint8_t)gs_driver->info[1].tctf.last_rec_tctf_type); - TF_copy_u8(&packet[73], (uint8_t)(gs_driver->info[1].tctf.tctf_validate_status)); - TF_copy_u8(&packet[74], (uint8_t)gs_driver->info[1].tctf.ad_rec_status); - TF_copy_u8(&packet[75], (uint8_t)gs_driver->info[1].tctf.bc_rec_status); - TF_copy_u8(&packet[76], (uint8_t)gs_driver->info[1].tctf.bd_rec_status); + TF_copy_u8(&packet[72], (uint8_t)gs_driver->info[1].rx.tctf.last_rec_tctf_type); + TF_copy_u8(&packet[73], (uint8_t)(gs_driver->info[1].rx.tctf.tctf_validate_status)); + TF_copy_u8(&packet[74], (uint8_t)gs_driver->info[1].rx.tctf.ad_rec_status); + TF_copy_u8(&packet[75], (uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status); + TF_copy_u8(&packet[76], (uint8_t)gs_driver->info[1].rx.tctf.bd_rec_status); TF_copy_u32(&packet[77], (uint32_t)gs_driver->info[1].tx.send_cycle); TF_copy_u8(&packet[81], (uint8_t)gs_driver->info[1].tx.vcid); TF_copy_u32(&packet[82], gs_driver->info[1].tx.vcdu_counter); From 86796a82e9b5c11e15a1cd8778865eeaa6b4a63c Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Sun, 13 Mar 2022 19:56:37 +0900 Subject: [PATCH 20/31] fix comments --- .../src/src_user/Drivers/Com/gs.c | 2 +- .../src/src_user/Drivers/Com/gs_validate.c | 15 +++------------ .../src/src_user/Drivers/Com/gs_validate.h | 1 - .../src/src_user/TlmCmd/Ccsds/tc_transfer_frame.c | 9 ++++++++- .../src/src_user/TlmCmd/Ccsds/tc_transfer_frame.h | 7 +++++++ 5 files changed, 19 insertions(+), 15 deletions(-) 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 d716393d1..214afdfed 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 @@ -81,7 +81,7 @@ int GS_init(GS_Driver* gs_driver, uint8_t uart_ch) 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)((GS_RX_HEADER_SAMPLE_SCID & 0xffff) >> 8); + GS_rx_header_[i][0] |= (uint8_t)((GS_RX_HEADER_SAMPLE_SCID & 0x3ff) >> 8); GS_rx_header_[i][1] |= (uint8_t)(GS_RX_HEADER_SAMPLE_SCID & 0xff); } 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 5b7372916..94ca723bf 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 @@ -7,7 +7,6 @@ #include "gs_validate.h" #include "../../TlmCmd/Ccsds/tc_segment.h" #include -#include #define GS_RECEIVE_WINDOW (256) #define GS_POSITIVE_WINDOW_WIDTH_DEFAULT (64) // FIXME: 要検討 @@ -17,7 +16,6 @@ // 以下検証関数. 名前通り static GS_VALIDATE_ERR GS_check_tctf_header_(const TcTransferFrame* tctf); -static GS_VALIDATE_ERR GS_check_fecw_(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); @@ -53,12 +51,13 @@ void GS_validate_init(void) GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ret; + uint8_t crc_ret; TCTF_TYPE tctf_type; ret = GS_check_tctf_header_(tctf); if (ret != GS_VALIDATE_ERR_OK) return ret; - ret = GS_check_fecw_(tctf); - if (ret != GS_VALIDATE_ERR_OK) return ret; + crc_ret = TCTF_check_fecw(tctf); + if (crc_ret != 0) return GS_VALIDATE_ERR_FECW_MISSMATCH; tctf_type = TCTF_get_type(tctf); switch (tctf_type) @@ -156,14 +155,6 @@ static GS_VALIDATE_ERR GS_check_cmd_space_packet_headers_(const CmdSpacePacket* return GS_VALIDATE_ERR_OK; } -static GS_VALIDATE_ERR GS_check_fecw_(const TcTransferFrame* tctf) -{ - uint16_t len = TCTF_get_frame_len(tctf); - if (crc_16_ccitt_left(0xffff, (const unsigned char*)tctf, len, 0) != 0) return GS_VALIDATE_ERR_FECW_MISSMATCH; - - return GS_VALIDATE_ERR_OK; -} - static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ack; 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 4317885d8..f5da6fe16 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 @@ -22,7 +22,6 @@ typedef enum { GS_VALIDATE_ERR_OK = 0, - GS_VALIDATE_ERR_TCTF_VER, GS_VALIDATE_ERR_TCTF_SCID, GS_VALIDATE_ERR_TCTF_VCID, 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 index 940ef7e28..8b0511d30 100644 --- 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 @@ -5,7 +5,8 @@ */ #include "tc_transfer_frame.h" -#include // for memcpy +#include +#include TCTF_VER TCTF_get_ver(const TcTransferFrame* tctf) { @@ -115,6 +116,12 @@ uint16_t TCTF_get_fecw(const TcTransferFrame* tctf) return fecw; } +uint8_t TCTF_check_fecw(const TcTransferFrame* tctf) +{ + uint16_t len = TCTF_get_frame_len(tctf); + return crc_16_ccitt_left(0xffff, (const unsigned char*)tctf, len, 0); +} + const TcTransferFrame* TCTF_convert_from_bytes_to_tctf(const uint8_t* byte) { return (const TcTransferFrame*)byte; 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 index e305fcf64..d6b444e95 100644 --- 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 @@ -157,6 +157,13 @@ uint16_t TCTF_get_fecw(const TcTransferFrame* tctf); */ const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf); +/** + * @brief TCTF fecw のチェック + * @param[in] tctf: TcTransferFrame + * @return uint8_t: 計算結果 + */ +uint8_t TCTF_check_fecw(const TcTransferFrame* tctf); + /** * @brief 受信 byte 列を TcTransferFrame* に変換 * @param[in] byte: 受信 byte 列 From 4a651a3fb3b4f8330c95aa1b1655173d2eb6cde8 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Sun, 13 Mar 2022 20:38:00 +0900 Subject: [PATCH 21/31] =?UTF-8?q?=E4=B8=8D=E5=BF=85=E8=A6=81=E3=81=AA?= =?UTF-8?q?=E6=83=85=E5=A0=B1=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/src_user/Drivers/Com/gs.c | 4 ---- .../src/src_user/IfWrapper/Sils/ccsds_sils.cpp | 8 -------- .../src/src_user/IfWrapper/ccsds_user.h | 9 --------- .../TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv | 12 ++++++------ .../TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_GS.csv | 12 ++++++------ .../src/src_user/TlmCmd/telemetry_definitions.c | 10 ++-------- 6 files changed, 14 insertions(+), 41 deletions(-) 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 214afdfed..b21afc8e3 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 @@ -115,10 +115,6 @@ int GS_init(GS_Driver* gs_driver, uint8_t uart_ch) 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; 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..278c8eb7f 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 @@ -32,18 +32,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/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 071f7fdff..2bcad728c 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 @@ -64,12 +64,12 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,RP_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,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,,,,,,,,, ,RP_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,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,,,,,,,,, ,RP_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,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,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, 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 e8c43ef0e..0ab5fab45 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 @@ -64,12 +64,12 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,RP_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,103,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,107,0,32,NONE,,,,,,,,, ,RP_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,PACKET,111,0,32,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,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, 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 d6357892e..84ddd8f37 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 @@ -3104,7 +3104,7 @@ 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 (115 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; #ifndef BUILD_SETTINGS_FAST_BUILD TF_copy_u8(&packet[26], (uint8_t)gs_driver->info[0].rx.rec_status); @@ -3151,15 +3151,9 @@ static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t* packet, uint16_t* len, uint16_t max_len) TF_copy_u32(&packet[103], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); TF_copy_u32(&packet[107], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); TF_copy_u32(&packet[111], (uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter); - 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]); #endif - *len = 139; + *len = 115; return TF_TLM_FUNC_ACK_SUCCESS; } From 9535d2448a44179ec08bd1841bd428ed9c06ba73 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Sun, 13 Mar 2022 20:46:54 +0900 Subject: [PATCH 22/31] =?UTF-8?q?=E3=82=A2=E3=83=97=E3=83=AA=E5=81=B4?= =?UTF-8?q?=E3=81=A7=E4=B8=8D=E5=BF=85=E8=A6=81=E3=81=AA=E6=83=85=E5=A0=B1?= =?UTF-8?q?=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Applications/DriverInstances/di_gs.c | 20 ----------------- .../Applications/DriverInstances/di_gs.h | 1 - .../CMD_DB/SAMPLE_MOBC_CMD_DB_CMD_DB.csv | 22 +++++++++---------- .../src/src_user/TlmCmd/command_definitions.c | 1 - .../src/src_user/TlmCmd/command_definitions.h | 21 +++++++++--------- 5 files changed, 21 insertions(+), 44 deletions(-) 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 aa0687f87..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_tctf(&gs_driver_); - - // Tlm更新 - for (select = 0; select < CCSDS_SELECT_NUM; ++select) - { - CCSDS_read_sequence((uint32_t)select, &gs_driver_.ccsds_info.uip_stat[select]); - } // 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/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/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, From cdaa4e825853fc21d1f56379a3a0641176f0bd1c Mon Sep 17 00:00:00 2001 From: Ryo Suzumoto Date: Mon, 14 Mar 2022 01:16:16 +0900 Subject: [PATCH 23/31] add comment --- .../minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.h | 1 + 1 file changed, 1 insertion(+) 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 f5da6fe16..067b03600 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 @@ -18,6 +18,7 @@ /** * @enum GS_VALIDATE_ERR * @brief gs_validate 関数の返り値 + * @note uint8_t を想定 */ typedef enum { From e34166b405ed2afa1eb5c74a367ef54429c02b7d Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Mon, 14 Mar 2022 01:24:38 +0900 Subject: [PATCH 24/31] modify type --- .../src/src_user/TlmCmd/Ccsds/tc_segment.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 index 31f474b10..e44720dd9 100644 --- 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 @@ -7,7 +7,7 @@ TCS_SEQ_FLAG TCS_get_seq_flag(const TcSegment* tcs) { - unsigned int pos = 0; + uint8_t pos = 0; uint8_t mask = 0xc0; // 1100 0000b return (TCS_SEQ_FLAG)((tcs->packet[pos] & mask) >> 6); @@ -15,7 +15,7 @@ TCS_SEQ_FLAG TCS_get_seq_flag(const TcSegment* tcs) TCS_MAP_ID TCS_get_map_id(const TcSegment* tcs) { - unsigned int pos = 0; + uint8_t pos = 0; uint8_t mask = 0x3f; // 0011 1111b TCS_MAP_ID map_id = (TCS_MAP_ID)(tcs->packet[pos] & mask); From 3a3e5103af155e2356ea437a281c60d25de8b50d Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Mon, 14 Mar 2022 12:04:56 +0900 Subject: [PATCH 25/31] =?UTF-8?q?=E7=B4=B0=E3=81=8B=E3=81=84=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/src_user/Drivers/Com/gs.c | 28 ++++++------------- .../src/src_user/Drivers/Com/gs.h | 6 ++-- .../src/src_user/Drivers/Com/gs_validate.c | 8 +++--- .../DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv | 12 ++++---- .../calced_data/SAMPLE_MOBC_TLM_DB_GS.csv | 12 ++++---- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.c | 5 +++- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.h | 5 ++-- 7 files changed, 35 insertions(+), 41 deletions(-) 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 b21afc8e3..32687583f 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 @@ -19,7 +19,6 @@ #define GS_TX_stream (0) // どれでも良いがとりあえず 0 で #define GS_RX_HEADER_NUM (3) -#define GS_RX_HEADER_SAMPLE_SCID (0x35C) #if GS_RX_HEADER_NUM > DS_STREAM_MAX #error GS RX HEADER NUM TOO MANY @@ -81,8 +80,8 @@ int GS_init(GS_Driver* gs_driver, uint8_t uart_ch) 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)((GS_RX_HEADER_SAMPLE_SCID & 0x3ff) >> 8); - GS_rx_header_[i][1] |= (uint8_t)(GS_RX_HEADER_SAMPLE_SCID & 0xff); + 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_); @@ -106,9 +105,9 @@ int GS_init(GS_Driver* gs_driver, uint8_t uart_ch) gs_driver->info[i].rx.tctf.last_rec_tctf_type = TCTF_TYPE_UNKNOWN; gs_driver->info[i].rx.tctf.tctf_validate_status = GS_VALIDATE_ERR_OK; - gs_driver->info[i].rx.tctf.ad_rec_status = DS_ERR_CODE_OK; - gs_driver->info[i].rx.tctf.bd_rec_status = DS_ERR_CODE_OK; - gs_driver->info[i].rx.tctf.bd_rec_status = DS_ERR_CODE_OK; + 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; @@ -204,7 +203,6 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* GS_PORT_TYPE driver_index; const TcSegment* tcs; const CmdSpacePacket* csp; - DS_ERR_CODE rec; // アドレス計算で CCSDS か UART か判別 if ((uint32_t)p_stream_config < (uint32_t)&gs_driver->driver_uart) @@ -217,28 +215,20 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* } gs_driver->info[driver_index].rx.tctf.tctf_validate_status = GS_validate_tctf(tctf); - if (gs_driver->info[driver_index].rx.tctf.tctf_validate_status == GS_VALIDATE_ERR_OK) - { - rec = DS_ERR_CODE_OK; - } - else - { - rec = DS_ERR_CODE_ERR; - } 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) { case TCTF_TYPE_AD: - gs_driver->info[driver_index].rx.tctf.ad_rec_status = rec; + gs_driver->info[driver_index].rx.tctf.ad_rec_status = gs_driver->info[driver_index].rx.tctf.tctf_validate_status; break; case TCTF_TYPE_BC: - gs_driver->info[driver_index].rx.tctf.bc_rec_status = rec; + gs_driver->info[driver_index].rx.tctf.bc_rec_status = gs_driver->info[driver_index].rx.tctf.tctf_validate_status; break; case TCTF_TYPE_BD: - gs_driver->info[driver_index].rx.tctf.bd_rec_status = rec; + gs_driver->info[driver_index].rx.tctf.bd_rec_status = gs_driver->info[driver_index].rx.tctf.tctf_validate_status; break; default: @@ -246,7 +236,7 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* break; } - if (rec != DS_ERR_CODE_OK) return rec; + if (gs_driver->info[driver_index].rx.tctf.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); 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 4326f9671..d2bace334 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 @@ -43,9 +43,9 @@ typedef struct { TCTF_TYPE last_rec_tctf_type; //!< 最後に受信した TC Transfer Frame のタイプ GS_VALIDATE_ERR tctf_validate_status; //!< TC Transfer Frame の検証結果 - 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 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; 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 94ca723bf..831f17807 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 @@ -51,13 +51,13 @@ void GS_validate_init(void) GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ret; - uint8_t crc_ret; + uint8_t is_frame_error; TCTF_TYPE tctf_type; ret = GS_check_tctf_header_(tctf); if (ret != GS_VALIDATE_ERR_OK) return ret; - crc_ret = TCTF_check_fecw(tctf); - if (crc_ret != 0) return GS_VALIDATE_ERR_FECW_MISSMATCH; + is_frame_error = TCTF_check_fecw(tctf); + if (is_frame_error) return GS_VALIDATE_ERR_FECW_MISSMATCH; tctf_type = TCTF_get_type(tctf); switch (tctf_type) @@ -159,7 +159,7 @@ static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame* tctf) { GS_VALIDATE_ERR ack; const TcSegment* tc_segment = TCTF_get_tc_segment(tctf); - int16_t seq_diff = (int16_t)((GS_RECEIVE_WINDOW + TCTF_get_frame_seq_num(tctf) - gs_validate_info_.type_a_counter) % GS_RECEIVE_WINDOW); + 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; 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 2bcad728c..aa590094c 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 @@ -27,9 +27,9 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.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@@ 1=ERROR,, -,CCSDS.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.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@@ 1=ERROR,, -,CCSDS.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.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@@ 1=ERROR,, +,CCSDS.TCTF.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.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=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,=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.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.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=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,=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=INVALID@@ 1=VALID,, ,CCSDS.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].tx.send_cycle,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.TX.VCID,uint8_t,(uint8_t)gs_driver->info[0].tx.vcid,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,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, @@ -47,9 +47,9 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,UART.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].rx.cmd_ack,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@@ 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,=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=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, ,UART.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.ad_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=OK@@ 1=ERROR,, -,UART.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status,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=OK@@ 1=ERROR,, -,UART.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bd_rec_status,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=OK@@ 1=ERROR,, +,UART.TCTF.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.ad_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.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status,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=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,=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=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,=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,,,,,,,,, ,UART.TX.VCID,uint8_t,(uint8_t)gs_driver->info[1].tx.vcid,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,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, ,UART.TX.VCDU_COUNTER,uint32_t,gs_driver->info[1].tx.vcdu_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,,,,,,,,, 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 0ab5fab45..dd86164ad 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 @@ -27,9 +27,9 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.ad_rec_status,PACKET,39,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,CCSDS.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bc_rec_status,PACKET,40,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,CCSDS.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bd_rec_status,PACKET,41,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,CCSDS.TCTF.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.ad_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.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bc_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.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bd_rec_status,PACKET,41,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,42,0,8,STATUS,,,,,,,0=INVALID@@ 1=VALID,, ,CCSDS.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].tx.send_cycle,PACKET,43,0,32,NONE,,,,,,,,, ,CCSDS.TX.VCID,uint8_t,(uint8_t)gs_driver->info[0].tx.vcid,PACKET,47,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, @@ -47,9 +47,9 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,UART.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].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,, ,UART.TCTF.LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.last_rec_tctf_type,PACKET,72,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, ,UART.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.ad_rec_status,PACKET,74,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status,PACKET,75,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, -,UART.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bd_rec_status,PACKET,76,0,8,STATUS,,,,,,,0=OK@@ 1=ERROR,, +,UART.TCTF.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.ad_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.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status,PACKET,75,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,76,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,77,0,32,NONE,,,,,,,,, ,UART.TX.VCID,uint8_t,(uint8_t)gs_driver->info[1].tx.vcid,PACKET,81,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, ,UART.TX.VCDU_COUNTER,uint32_t,gs_driver->info[1].tx.vcdu_counter,PACKET,82,0,32,NONE,,,,,,,,, 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 index 8b0511d30..1317138b8 100644 --- 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 @@ -119,7 +119,10 @@ uint16_t TCTF_get_fecw(const TcTransferFrame* tctf) uint8_t TCTF_check_fecw(const TcTransferFrame* tctf) { uint16_t len = TCTF_get_frame_len(tctf); - return crc_16_ccitt_left(0xffff, (const unsigned char*)tctf, len, 0); + uint16_t result = crc_16_ccitt_left(0xffff, (const unsigned char*)tctf, len, 0); + if (result) return 1; + + return 0; } const TcTransferFrame* TCTF_convert_from_bytes_to_tctf(const uint8_t* byte) 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 index d6b444e95..5c17fda83 100644 --- 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 @@ -85,7 +85,7 @@ typedef enum */ typedef enum { - TCTF_SCID_SAMPLE_SATELLITE = 0x00, // SCID for command of sample satellite + TCTF_SCID_SAMPLE_SATELLITE = 0x35C, // SCID for command of sample satellite TCTF_SCID_UNKNOWN } TCTF_SCID; @@ -160,7 +160,8 @@ const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf); /** * @brief TCTF fecw のチェック * @param[in] tctf: TcTransferFrame - * @return uint8_t: 計算結果 + * @return bool: 0: ok, 1: error + * @note ここでは標準として CRC-16-CCITT を採用している */ uint8_t TCTF_check_fecw(const TcTransferFrame* tctf); From 1f75e34bd575a44aa99ae5ef5b1157eb0c7102e4 Mon Sep 17 00:00:00 2001 From: Ryo Suzumoto Date: Thu, 17 Mar 2022 01:23:02 +0900 Subject: [PATCH 26/31] fix indent --- Examples/minimum_user_for_s2e/src/src_user/Drivers/Com/gs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 d2bace334..83a79c87f 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 @@ -43,9 +43,9 @@ typedef struct { TCTF_TYPE last_rec_tctf_type; //!< 最後に受信した TC Transfer Frame のタイプ GS_VALIDATE_ERR tctf_validate_status; //!< 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 結果 + 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; From 31b1f094ccea483ec43421b7ac01b2a1b91e865e Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Sun, 20 Mar 2022 20:50:07 +0900 Subject: [PATCH 27/31] =?UTF-8?q?=E5=BE=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/src_user/Drivers/Com/gs.c | 12 +- .../src/src_user/Drivers/Com/gs.h | 1 - .../src/src_user/Drivers/Com/gs_validate.c | 2 +- .../src/src_user/Drivers/Com/gs_validate.h | 4 +- .../DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv | 76 +++--- .../TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv | 154 ++++++------ .../calced_data/SAMPLE_MOBC_TLM_DB_GS.csv | 76 +++--- .../calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv | 154 ++++++------ .../src_user/TlmCmd/Ccsds/tc_transfer_frame.c | 3 +- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.h | 2 +- .../src_user/TlmCmd/telemetry_definitions.c | 235 +++++++++--------- 11 files changed, 356 insertions(+), 363 deletions(-) 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 32687583f..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 @@ -104,7 +104,6 @@ int GS_init(GS_Driver* gs_driver, uint8_t uart_ch) 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.tctf_validate_status = GS_VALIDATE_ERR_OK; 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; @@ -201,6 +200,7 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* 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; @@ -214,21 +214,21 @@ 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].rx.tctf.tctf_validate_status = GS_validate_tctf(tctf); + 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) { case TCTF_TYPE_AD: - gs_driver->info[driver_index].rx.tctf.ad_rec_status = gs_driver->info[driver_index].rx.tctf.tctf_validate_status; + 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 = gs_driver->info[driver_index].rx.tctf.tctf_validate_status; + 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 = gs_driver->info[driver_index].rx.tctf.tctf_validate_status; + gs_driver->info[driver_index].rx.tctf.bd_rec_status = tctf_validate_status; break; default: @@ -236,7 +236,7 @@ static DS_ERR_CODE GS_analyze_rec_data_(DS_StreamConfig* p_stream_config, void* break; } - if (gs_driver->info[driver_index].rx.tctf.tctf_validate_status != GS_VALIDATE_ERR_OK) return DS_ERR_CODE_ERR; + 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); 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 83a79c87f..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 @@ -42,7 +42,6 @@ typedef struct struct { TCTF_TYPE last_rec_tctf_type; //!< 最後に受信した TC Transfer Frame のタイプ - GS_VALIDATE_ERR tctf_validate_status; //!< 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 結果 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 831f17807..24c9e4fa2 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 @@ -84,7 +84,7 @@ GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf) static GS_VALIDATE_ERR GS_check_tctf_header_(const TcTransferFrame* tctf) { 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; // FIXME: テスト用に一旦コメントアウト + if (TCTF_get_scid(tctf) != TCTF_SCID_SAMPLE_SATELLITE) return GS_VALIDATE_ERR_TCTF_SCID; // FIXME: テスト用に一旦コメントアウト if (TCTF_get_vcid(tctf) != TCTF_VCID_REALTIME) return GS_VALIDATE_ERR_TCTF_VCID; return GS_VALIDATE_ERR_OK; 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 067b03600..dc17c9260 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 @@ -73,9 +73,7 @@ GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf); /** * @brief テレメ用の clcw の作成 - * @return clcw - * @note この CLCW は endian を考慮していないためこれが little endian 環境で動く場合 CCSDS (big endian) に - * 適用する際に Byte 順を逆転させる必要がある + * @return uit32_t: clcw */ uint32_t GS_form_clcw(void); 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 aa590094c..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 @@ -26,44 +26,44 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.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=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,=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.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.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=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,=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=INVALID@@ 1=VALID,, -,CCSDS.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].tx.send_cycle,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.TX.VCID,uint8_t,(uint8_t)gs_driver->info[0].tx.vcid,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,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, -,CCSDS.TX.VCDU_COUNTER,uint32_t,gs_driver->info[0].tx.vcdu_counter,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,,,,,,,,, -,CCSDS.TX.BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,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.CH,uint8_t,gs_driver->driver_uart.uart_config.ch,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.BAUDRATE,uint32_t,gs_driver->driver_uart.uart_config.baudrate,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,,,,,,,,, -,UART.PARITY,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.parity_settings,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=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,=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=7bit@@ 1 =8bit,, -,UART.STOP_BIT,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.stop_bit,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=1bit@@ 1=1.5bit@@ 2=2bit,, -,UART.RX.REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.rec_status,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=OK@@ 1=ERROR,, -,UART.RX.RET_FROM_IF_RX,int32_t,(int32_t)gs_driver->info[1].rx.ret_from_if_rx,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,,,,,,,,, -,UART.RX.LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.last_dest_type,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=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,=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,,,,,,,,, -,UART.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].rx.cmd_ack,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@@ 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,=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=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, -,UART.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.ad_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.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status,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=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,=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=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,=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,,,,,,,,, -,UART.TX.VCID,uint8_t,(uint8_t)gs_driver->info[1].tx.vcid,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,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, -,UART.TX.VCDU_COUNTER,uint32_t,gs_driver->info[1].tx.vcdu_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.TYPE_A_COUNTER,uint8_t,gs_validate_info->type_a_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,,,,,,,,, -,COP-1.TYPE_B_COUNTER,uint8_t,gs_validate_info->type_b_counter,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.LOCKOUT_FLAG,uint8_t,gs_validate_info->lockout_flag,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,,,,,,,,, -,COP-1.RETRANSMIT_FLAG,uint8_t,gs_validate_info->retransmit_flag,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,,,,,,,,, -,COP-1.POSITIVE_WINDOW_WIDTH,uint8_t,gs_validate_info->positive_window_width,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.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,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,,,,,,,,, -,MS_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,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,,,,,,,,, -,MS_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_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,,,,,,,,, -,RP_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,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,,,,,,,,, -,RP_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,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,,,,,,,,, -,RP_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,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,,,,,,,,, +,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_MOBC.csv b/Examples/minimum_user_for_s2e/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv index 9d985f9f7..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 @@ -33,83 +33,83 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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->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_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->rx.tctf.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->rx.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->rx.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->tx.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->latest_info->tx.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->tx.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^, +,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 dd86164ad..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 @@ -26,44 +26,44 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[0].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.ad_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.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bc_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.TCTF.BD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[0].rx.tctf.bd_rec_status,PACKET,41,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,42,0,8,STATUS,,,,,,,0=INVALID@@ 1=VALID,, -,CCSDS.TX.SEND_CYCLE,uint32_t,(uint32_t)gs_driver->info[0].tx.send_cycle,PACKET,43,0,32,NONE,,,,,,,,, -,CCSDS.TX.VCID,uint8_t,(uint8_t)gs_driver->info[0].tx.vcid,PACKET,47,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, -,CCSDS.TX.VCDU_COUNTER,uint32_t,gs_driver->info[0].tx.vcdu_counter,PACKET,48,0,32,NONE,,,,,,,,, -,CCSDS.TX.BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,52,0,8,NONE,,,,,,,,, -,UART.CH,uint8_t,gs_driver->driver_uart.uart_config.ch,PACKET,53,0,8,NONE,,,,,,,,, -,UART.BAUDRATE,uint32_t,gs_driver->driver_uart.uart_config.baudrate,PACKET,54,0,32,NONE,,,,,,,,, -,UART.PARITY,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.parity_settings,PACKET,58,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,59,0,8,STATUS,,,,,,,0=7bit@@ 1 =8bit,, -,UART.STOP_BIT,uint8_t,(uint8_t)gs_driver->driver_uart.uart_config.stop_bit,PACKET,60,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,61,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,62,0,32,NONE,,,,,,,,, -,UART.RX.LAST_DEST_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.last_dest_type,PACKET,66,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,67,0,32,NONE,,,,,,,,, -,UART.RX.CMD_ACK,uint8_t,(uint8_t)gs_driver->info[1].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,, -,UART.TCTF.LAST_REC_TCTF_TYPE,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.last_rec_tctf_type,PACKET,72,0,8,STATUS,,,,,,,0=AD@@ 2=BD@@ 3=BC@@ *=UNKNOWN,, -,UART.TCTF.TCTF_VALIDATE_STATUS,uint8_t,(uint8_t)(gs_driver->info[1].rx.tctf.tctf_validate_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.AD_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.ad_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.TCTF.BC_REC_STATUS,uint8_t,(uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status,PACKET,75,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,76,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,77,0,32,NONE,,,,,,,,, -,UART.TX.VCID,uint8_t,(uint8_t)gs_driver->info[1].tx.vcid,PACKET,81,0,8,STATUS,,,,,,,1=REALTIME@@2=REPLAY@@63=FILL@@*=UNKNOWN,, -,UART.TX.VCDU_COUNTER,uint32_t,gs_driver->info[1].tx.vcdu_counter,PACKET,82,0,32,NONE,,,,,,,,, -,COP-1.TYPE_A_COUNTER,uint8_t,gs_validate_info->type_a_counter,PACKET,86,0,8,NONE,,,,,,,,, -,COP-1.TYPE_B_COUNTER,uint8_t,gs_validate_info->type_b_counter,PACKET,87,0,8,NONE,,,,,,,,, -,COP-1.LOCKOUT_FLAG,uint8_t,gs_validate_info->lockout_flag,PACKET,88,0,8,NONE,,,,,,,,, -,COP-1.RETRANSMIT_FLAG,uint8_t,gs_validate_info->retransmit_flag,PACKET,89,0,8,NONE,,,,,,,,, -,COP-1.POSITIVE_WINDOW_WIDTH,uint8_t,gs_validate_info->positive_window_width,PACKET,90,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,91,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,95,0,32,NONE,,,,,,,,, -,MS_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter,PACKET,99,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,103,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,107,0,32,NONE,,,,,,,,, -,RP_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,PACKET,111,0,32,NONE,,,,,,,,, +,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_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 e2f2b86a9..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 @@ -33,83 +33,83 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,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->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_VALIDATE_STATUS,uint8_t,(uint8_t)gs_driver->latest_info->rx.tctf.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->rx.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->rx.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->tx.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->latest_info->tx.vcid,PACKET,281,0,8,NONE,,,,,,,,\::oVCID, -,TCI_VCDU_COUNTER,uint32_t,gs_driver->latest_info->tx.vcdu_counter,PACKET,282,0,32,NONE,,,,,,,,Z::oVCDUJE^, +,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/TlmCmd/Ccsds/tc_transfer_frame.c b/Examples/minimum_user_for_s2e/src/src_user/TlmCmd/Ccsds/tc_transfer_frame.c index 1317138b8..fb1165ff5 100644 --- 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 @@ -120,9 +120,8 @@ 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); - if (result) return 1; - return 0; + return !result; } const TcTransferFrame* TCTF_convert_from_bytes_to_tctf(const uint8_t* byte) 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 index 5c17fda83..cb44c6c91 100644 --- 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 @@ -160,7 +160,7 @@ const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf); /** * @brief TCTF fecw のチェック * @param[in] tctf: TcTransferFrame - * @return bool: 0: ok, 1: error + * @return bool: 1: ok, 0: error * @note ここでは標準として CRC-16-CCITT を採用している */ uint8_t TCTF_check_fecw(const TcTransferFrame* tctf); 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 84ddd8f37..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)); @@ -83,86 +83,85 @@ static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_le TF_copy_i32(&packet[57], (int32_t)(TDSP_info->tskd.prev_err.sts)); 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_u8(&packet[66], (uint8_t)gs_driver->latest_info->rx.tctf.tctf_validate_status); - TF_copy_u32(&packet[67], (uint32_t)gs_driver->latest_info->rx.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->rx.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->tx.send_cycle); - TF_copy_u32(&packet[277], gs_driver->driver_ccsds.ccsds_config.bitrate); - TF_copy_u8(&packet[281], (uint8_t)gs_driver->latest_info->tx.vcid); - TF_copy_u32(&packet[282], gs_driver->latest_info->tx.vcdu_counter); + 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,7 +3103,7 @@ 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 (115 > 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], (uint8_t)gs_driver->info[0].rx.rec_status); @@ -3113,47 +3112,45 @@ static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t* packet, uint16_t* len, uint16_t max_len) 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.tctf_validate_status)); - TF_copy_u8(&packet[39], (uint8_t)gs_driver->info[0].rx.tctf.ad_rec_status); - TF_copy_u8(&packet[40], (uint8_t)gs_driver->info[0].rx.tctf.bc_rec_status); - TF_copy_u8(&packet[41], (uint8_t)gs_driver->info[0].rx.tctf.bd_rec_status); - TF_copy_u8(&packet[42], gs_driver->is_ccsds_tx_valid); - TF_copy_u32(&packet[43], (uint32_t)gs_driver->info[0].tx.send_cycle); - TF_copy_u8(&packet[47], (uint8_t)gs_driver->info[0].tx.vcid); - TF_copy_u32(&packet[48], gs_driver->info[0].tx.vcdu_counter); - TF_copy_u8(&packet[52], gs_driver->ccsds_info.buffer_num); - TF_copy_u8(&packet[53], gs_driver->driver_uart.uart_config.ch); - TF_copy_u32(&packet[54], gs_driver->driver_uart.uart_config.baudrate); - TF_copy_u8(&packet[58], (uint8_t)gs_driver->driver_uart.uart_config.parity_settings); - TF_copy_u8(&packet[59], (uint8_t)gs_driver->driver_uart.uart_config.data_length); - TF_copy_u8(&packet[60], (uint8_t)gs_driver->driver_uart.uart_config.stop_bit); - TF_copy_u8(&packet[61], (uint8_t)gs_driver->info[1].rx.rec_status); - TF_copy_i32(&packet[62], (int32_t)gs_driver->info[1].rx.ret_from_if_rx); - TF_copy_u8(&packet[66], (uint8_t)gs_driver->info[1].rx.last_dest_type); - TF_copy_u32(&packet[67], (uint32_t)gs_driver->info[1].rx.last_rec_time); - TF_copy_u8(&packet[71], (uint8_t)gs_driver->info[1].rx.cmd_ack); - TF_copy_u8(&packet[72], (uint8_t)gs_driver->info[1].rx.tctf.last_rec_tctf_type); - TF_copy_u8(&packet[73], (uint8_t)(gs_driver->info[1].rx.tctf.tctf_validate_status)); - TF_copy_u8(&packet[74], (uint8_t)gs_driver->info[1].rx.tctf.ad_rec_status); - TF_copy_u8(&packet[75], (uint8_t)gs_driver->info[1].rx.tctf.bc_rec_status); - TF_copy_u8(&packet[76], (uint8_t)gs_driver->info[1].rx.tctf.bd_rec_status); - TF_copy_u32(&packet[77], (uint32_t)gs_driver->info[1].tx.send_cycle); - TF_copy_u8(&packet[81], (uint8_t)gs_driver->info[1].tx.vcid); - TF_copy_u32(&packet[82], gs_driver->info[1].tx.vcdu_counter); - TF_copy_u8(&packet[86], gs_validate_info->type_a_counter); - TF_copy_u8(&packet[87], gs_validate_info->type_b_counter); - TF_copy_u8(&packet[88], gs_validate_info->lockout_flag); - TF_copy_u8(&packet[89], gs_validate_info->retransmit_flag); - TF_copy_u8(&packet[90], gs_validate_info->positive_window_width); - TF_copy_u32(&packet[91], (uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); - TF_copy_u32(&packet[95], (uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); - TF_copy_u32(&packet[99], (uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter); - TF_copy_u32(&packet[103], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); - TF_copy_u32(&packet[107], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); - TF_copy_u32(&packet[111], (uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter); + 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 = 115; + *len = 113; return TF_TLM_FUNC_ACK_SUCCESS; } From a7a06a26ffeaf46d3db6b796fcfe5dade924e033 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Tue, 22 Mar 2022 00:12:33 +0900 Subject: [PATCH 28/31] fix bug --- .../minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 24c9e4fa2..f216d0ab2 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 @@ -57,7 +57,7 @@ GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf) 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; + if (!is_frame_error) return GS_VALIDATE_ERR_FECW_MISSMATCH; tctf_type = TCTF_get_type(tctf); switch (tctf_type) From f041e35242fcdb7a74c49577d5689773e711f757 Mon Sep 17 00:00:00 2001 From: Ryo Suzumoto Date: Tue, 22 Mar 2022 02:59:58 +0900 Subject: [PATCH 29/31] fix small --- .../src/src_user/Drivers/Com/gs_validate.h | 5 +- .../src/src_user/TlmCmd/Ccsds/tc_segment.h | 2 +- .../src_user/TlmCmd/Ccsds/tc_transfer_frame.h | 62 +++++++++---------- 3 files changed, 35 insertions(+), 34 deletions(-) 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 dc17c9260..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 @@ -61,6 +61,7 @@ extern const GS_ValiateInfo* const gs_validate_info; /** * @brief GS_ValiateInfo の初期化 + * @return void */ void GS_validate_init(void); @@ -72,8 +73,8 @@ void GS_validate_init(void); GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf); /** - * @brief テレメ用の clcw の作成 - * @return uit32_t: clcw + * @brief テレメ用の CLCW の作成 + * @return CLCW */ uint32_t GS_form_clcw(void); 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 index e3225aa59..0ba52404e 100644 --- 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 @@ -3,7 +3,7 @@ * @brief CCSDS で規定される TC Segment の実装 * @note packet 構造 * |---------+-------+-------+-----------------------------| - * | Pos | Pos | size | name | + * | Pos | Pos | Size | Name | * | [octet] | [bit] | [bit] | | * |---------+-------+-------+-----------------------------| * | === Primary Header ===================================| 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 index cb44c6c91..8219230ca 100644 --- 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 @@ -2,28 +2,28 @@ * @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 | | - * |---------+-------+-------+-----------------------| + * |---------+-------+-------+--------------------------| + * | 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_ @@ -129,36 +129,36 @@ TCTF_SCID TCTF_get_scid(const TcTransferFrame* tctf); TCTF_VCID TCTF_get_vcid(const TcTransferFrame* tctf); /** - * @brief length を取得 + * @brief Frame Length を取得 * @param[in] tctf: TcTransferFrame - * @return uint16_t + * @return Frame Length */ uint16_t TCTF_get_frame_len(const TcTransferFrame* tctf); /** - * @brief length を取得 + * @brief Frame Sequence Number を取得 * @param[in] tctf: TcTransferFrame - * @return uint8_t + * @return Frame Sequence Number */ uint8_t TCTF_get_frame_seq_num(const TcTransferFrame* tctf); /** - * @brief fecw を取得 + * @brief FECW を取得 * @param[in] tctf: TcTransferFrame - * @return uin16_t + * @return FECW * @note エンディアンは既に考慮されている (ccsds は big endian) */ uint16_t TCTF_get_fecw(const TcTransferFrame* tctf); /** - * @brief TcSegment を取得 + * @brief TC Segment を取得 * @param[in] tctf: TcTransferFrame - * @return TcSegment* + * @return TC Segment */ const TcSegment* TCTF_get_tc_segment(const TcTransferFrame* tctf); /** - * @brief TCTF fecw のチェック + * @brief TCTF FECW のチェック * @param[in] tctf: TcTransferFrame * @return bool: 1: ok, 0: error * @note ここでは標準として CRC-16-CCITT を採用している From 0e9d43e42d553708b59efdc687a97b8cc13e4d76 Mon Sep 17 00:00:00 2001 From: Ryo Suzumoto Date: Tue, 22 Mar 2022 03:00:58 +0900 Subject: [PATCH 30/31] fix comment --- .../minimum_user_for_s2e/src/src_user/Drivers/Com/gs_validate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f216d0ab2..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 @@ -84,7 +84,7 @@ GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame* tctf) static GS_VALIDATE_ERR GS_check_tctf_header_(const TcTransferFrame* tctf) { 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; // FIXME: テスト用に一旦コメントアウト + 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; From b4a3716389868d23eab660a707ee6e5251669c60 Mon Sep 17 00:00:00 2001 From: Yoshinari Gyu <50069930+yngyu@users.noreply.github.com> Date: Tue, 22 Mar 2022 11:52:12 +0900 Subject: [PATCH 31/31] =?UTF-8?q?=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../minimum_user_for_s2e/src/src_user/IfWrapper/ccsds_user.h | 1 - 1 file changed, 1 deletion(-) 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 278c8eb7f..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