8 #include "../../TlmCmd/Ccsds/tc_segment.h"
11 #define GS_RECEIVE_WINDOW (256)
12 #define GS_POSITIVE_WINDOW_WIDTH_DEFAULT (64)
13 #if 2 * GS_POSITIVE_WINDOW_WIDTH_DEFAULT >= GS_RECEIVE_WINDOW
14 #error POSITIVE WINDOW SETTINGS IS WRONG
54 uint8_t is_frame_error;
231 length == offset + 3)
290 if (positive_window_width < 1 || positive_window_width > 127)
APID
Application Process ID
@ APID_AOBC_CMD
01000010001b: APID for AOBC 宛の CMD
@ APID_MOBC_CMD
01000010000b: APID for MOBC 宛の CMD
@ APID_TOBC_CMD
01000010010b: APID for TOBC 宛の CMD
SP_VER CSP_get_ver(const CmdSpacePacket *csp)
Version No を取得
SP_SEQ_FLAG CSP_get_seq_flag(const CmdSpacePacket *csp)
Sequence Flag を取得
APID CSP_get_apid(const CmdSpacePacket *csp)
APID を取得
SP_TYPE CSP_get_type(const CmdSpacePacket *csp)
Packet Type を取得
SP_2ND_HDR_FLAG CSP_get_2nd_hdr_flag(const CmdSpacePacket *csp)
Secondary Header Flag を取得
static GS_VALIDATE_ERR GS_check_tctf_header_(const TcTransferFrame *tctf)
#define GS_POSITIVE_WINDOW_WIDTH_DEFAULT
static GS_VALIDATE_ERR GS_check_bc_cmd_(const TcTransferFrame *tctf)
static GS_VALIDATE_ERR GS_check_ad_cmd_(const TcTransferFrame *tctf)
const GS_ValiateInfo *const gs_validate_info
static GS_ValiateInfo gs_validate_info_
void GS_validate_init(void)
GS_ValiateInfo の初期化
static GS_VALIDATE_ERR GS_check_tc_segment_(const TcSegment *tc_segment)
#define GS_RECEIVE_WINDOW
static GS_VALIDATE_ERR GS_check_cmd_space_packet_headers_(const CmdSpacePacket *csp)
GS_VALIDATE_ERR GS_set_farm_pw(uint8_t positive_window_width)
Positive Window Width の設定
static GS_VALIDATE_ERR GS_check_tcs_headers_(const TcSegment *tc_segment)
GS_VALIDATE_ERR GS_validate_tctf(const TcTransferFrame *tctf)
tctf の検証
uint32_t GS_form_clcw(void)
テレメ用の CLCW の作成
static GS_VALIDATE_ERR GS_check_bd_cmd_(const TcTransferFrame *tctf)
受信した TC Transfer Frame, TC Segment の検証を行う
GS_VALIDATE_ERR
gs_validate 関数の返り値
@ GS_VALIDATE_ERR_FARM1_POSITIVE_WINDOW_AREA
@ GS_VALIDATE_ERR_FARM1_LOCKOUT_AREA
@ GS_VALIDATE_ERR_TCTF_VCID
@ GS_VALIDATE_ERR_CSP_2ND_HDR_FLAG
@ GS_VALIDATE_ERR_TCS_SEQ_FLAG
@ GS_VALIDATE_ERR_TCTF_SCID
@ GS_VALIDATE_ERR_CSP_SEQ_IS_NOT_SINGLE
@ GS_VALIDATE_ERR_TCTF_TYPE
@ GS_VALIDATE_ERR_CSP_VER
@ GS_VALIDATE_ERR_FARM1_NEGATIVE_WINDOW_AREA
@ GS_VALIDATE_ERR_TCTF_VER
@ GS_VALIDATE_ERR_IN_LOCKOUT
@ GS_VALIDATE_ERR_FECW_MISSMATCH
@ GS_VALIDATE_ERR_INVALID_BC_CMD
@ GS_VALIDATE_ERR_UNKNOWN
@ GS_VALIDATE_ERR_CSP_TYPE_IS_NOT_CMD
@ SP_2ND_HDR_FLAG_PRESENT
1b: Secondary Header Present
@ SP_SEQ_FLAG_SINGLE
11b: Standalone packet
@ SP_VER_1
000b: Version-1
SpacePacket 類 と CommonTlmCmdPacket 類が相互参照するのを回避するためのヘッダ
uint8_t positive_window_width
uint8_t packet[TCS_PACKET_MAX_LENGTH]
TC Transfer Frame のパケット構造体
const CmdSpacePacket * TCS_get_command_space_packet(const TcSegment *tcs)
Command space packet 開始ポインタを取得
TCS_SEQ_FLAG TCS_get_seq_flag(const TcSegment *tcs)
sequence flag を取得
const TcSegment * TCTF_get_tc_segment(const TcTransferFrame *tctf)
TC Segment を取得
uint8_t TCTF_check_fecw(const TcTransferFrame *tctf)
TCTF FECW のチェック
uint16_t TCTF_get_frame_len(const TcTransferFrame *tctf)
Frame Length を取得
TCTF_TYPE TCTF_get_type(const TcTransferFrame *tctf)
command type を取得
TCTF_SCID TCTF_get_scid(const TcTransferFrame *tctf)
SCID を取得
TCTF_VER TCTF_get_ver(const TcTransferFrame *tctf)
version を取得
uint8_t TCTF_get_frame_seq_num(const TcTransferFrame *tctf)
Frame Sequence Number を取得
TCTF_VCID TCTF_get_vcid(const TcTransferFrame *tctf)
VCID を取得
#define TCTF_BC_CMD_CODE_SET_VR_2ND_BYTE
@ TCTF_SCID_SAMPLE_SATELLITE
#define TCTF_BC_CMD_CODE_SET_VR_1ST_BYTE
#define TCTF_BC_CMD_CODE_UNLOCK