52 #ifndef TLM_SPACE_PACKET_H_
53 #define TLM_SPACE_PACKET_H_
68 #define TSP_SND_HDR_LEN (20)
69 #define TSP_2ND_HDR_VER_TO_USE (TSP_2ND_HDR_VER_1)
78 #include "../common_tlm_packet.h"
80 #if TSP_MAX_LEN <= SP_PRM_HDR_LEN
81 #error TSP_MAX_LEN is too small
APID
Application Process ID
uint8_t ctp_dest_flags_t
CTP_DEST_FLAG の & をとったフラグのための型
CCSDS で規定される Space Packet の実装
SP_2ND_HDR_FLAG
Space Packet Secandary Header Flag
SP_SEQ_FLAG
Space Packet Sequence Flag
SP_VER
Space Packet Version Number
SpacePacket 類 と CommonTlmCmdPacket 類が相互参照するのを回避するためのヘッダ
APID TSP_get_apid(const TlmSpacePacket *tsp)
APID を取得
void TSP_set_2nd_hdr_flag(TlmSpacePacket *tsp, SP_2ND_HDR_FLAG flag)
Secondary Header Flag を設定
void TSP_setup_primary_hdr(TlmSpacePacket *tsp, APID apid, uint16_t seq_count, uint16_t packet_len)
Primary Header を構築
SP_VER TSP_get_ver(const TlmSpacePacket *tsp)
Version No を取得
void TSP_set_type(TlmSpacePacket *tsp, SP_TYPE type)
Packet Type を設定
uint8_t TSP_get_dest_info(const TlmSpacePacket *tsp)
Dest Info を取得
void TSP_set_seq_flag(TlmSpacePacket *tsp, SP_SEQ_FLAG flag)
Sequence Flag を設定
uint32_t TSP_get_on_board_subnet_time(const TlmSpacePacket *tsp)
On-Board Subnetwork Time を取得
void TSP_set_2nd_hdr_ver(TlmSpacePacket *tsp, TSP_2ND_HDR_VER ver)
Secondary Header Version No を設定
ctp_dest_flags_t TSP_get_dest_flags(const TlmSpacePacket *tsp)
Destination Flags を取得
uint16_t TSP_get_packet_len(const TlmSpacePacket *tsp)
Packet Length を取得
uint16_t TSP_get_seq_count(const TlmSpacePacket *tsp)
Sequence Count を取得
SP_2ND_HDR_FLAG TSP_get_2nd_hdr_flag(const TlmSpacePacket *tsp)
Secondary Header Flag を取得
double TSP_get_global_time(const TlmSpacePacket *tsp)
Global Time を取得
void TSP_set_dest_info(TlmSpacePacket *tsp, uint8_t info)
Dest Info を設定
void TSP_setup_fill_packet(TlmSpacePacket *tsp, uint16_t fill_size)
パケット全体を 0x00 クリアし, fill_size に等しいサイズのパケットを生成する
void TSP_set_ver(TlmSpacePacket *tsp, SP_VER ver)
Version No を設定
void TSP_set_apid(TlmSpacePacket *tsp, APID apid)
APID を設定
SP_TYPE TSP_get_type(const TlmSpacePacket *tsp)
Packet Type を取得
SP_SEQ_FLAG TSP_get_seq_flag(const TlmSpacePacket *tsp)
Sequence Flag を取得
uint16_t TSP_get_packet_data_len(const TlmSpacePacket *tsp)
Packet Data Length を取得
TLM_CODE TSP_get_tlm_id(const TlmSpacePacket *tsp)
Tlm ID を取得
TSP_2ND_HDR_VER
Secondary Header Version No
@ TSP_2ND_HDR_VER_UNKNOWN
バージョン不定
@ TSP_2ND_HDR_VER_1
Version-1
void TSP_set_global_time(TlmSpacePacket *tsp, double time)
Global Time を設定
void TSP_copy_packet(TlmSpacePacket *dest, const TlmSpacePacket *src)
TlmSpacePacket をコピー
void TSP_set_on_board_subnet_time(TlmSpacePacket *tsp, uint32_t time)
On-Board Subnetwork Time を設定
void TSP_set_common_hdr(TlmSpacePacket *tsp)
共通部分の Header を構築
void TSP_set_packet_data_len(TlmSpacePacket *tsp, uint16_t len)
Packet Data Length を設定
uint32_t TSP_get_board_time(const TlmSpacePacket *tsp)
Board Time を取得
void TSP_set_board_time(TlmSpacePacket *tsp, uint32_t time)
Board Time を設定
void TSP_set_packet_len(TlmSpacePacket *tsp, uint16_t len)
Packet Length を設定
void TSP_set_seq_count(TlmSpacePacket *tsp, uint16_t count)
Sequence Count を設定
TSP_2ND_HDR_VER TSP_get_2nd_hdr_ver(const TlmSpacePacket *tsp)
Secondary Header Version No を取得
void TSP_set_dest_flags(TlmSpacePacket *tsp, ctp_dest_flags_t flags)
Destination Flags を設定
uint8_t * TSP_get_user_data_head(const TlmSpacePacket *tsp)
User Data Field の先頭ポインタを取得
void TSP_set_tlm_id(TlmSpacePacket *tsp, TLM_CODE id)
Tlm ID を設定