C2A_Core
common_tlm_packet.c
[詳解]
1 #pragma section REPRO
10 #include <string.h>
11 
12 
14 {
15  if (packet == NULL) return 0;
16  if ( CTP_get_packet_len(packet) > CTP_MAX_LEN ) return 0;
17 
18  return 1;
19 }
20 
22 {
23  return TSP_get_apid(packet);
24 }
25 
26 void CTP_set_apid(CommonTlmPacket* packet, APID apid)
27 {
28  TSP_set_apid(packet, apid);
29 }
30 
31 double CTP_get_global_time(const CommonTlmPacket* packet)
32 {
33  return TSP_get_global_time(packet);
34 }
35 
37 {
38  // 何を設定するかはユーザー定義
39  // TMGR_get_curret_unixtime() で現在の unixtime を入れたり, gps 時刻 を入れたり, など
40  TSP_set_global_time(packet, 0.0);
41 }
42 
44 {
45  return TSP_get_on_board_subnet_time(packet);
46 }
47 
49 {
50  // 何を設定するかはユーザー定義
51  // MOBC では主に TI を,2nd OBC では主に 0xffffffff を
53 }
54 
56 {
57  return TSP_get_dest_flags(packet);
58 }
59 
61 {
62  TSP_set_dest_flags(packet, flags);
63 }
64 
66 {
67  return TSP_get_tlm_id(packet);
68 }
69 
71 {
72  TSP_set_tlm_id(packet, id);
73 }
74 
75 uint16_t CTP_get_packet_len(const CommonTlmPacket* packet)
76 {
77  return TSP_get_packet_len(packet);
78 }
79 
81 {
82  return TSP_get_user_data_head(packet);
83 }
84 
86 {
87  TSP_copy_packet(dest, src);
88 }
89 
90 #pragma section
APID
Application Process ID
Definition: apid_define.h:17
uint8_t * CTP_get_user_data_head(CommonTlmPacket *packet)
ADU 分割なしの場合の User Data 先頭のポインタを取得
int CTP_is_valid_packet(const CommonTlmPacket *packet)
有効なパケットかチェックする
void CTP_set_apid(CommonTlmPacket *packet, APID apid)
APID を設定
void CTP_set_global_time(CommonTlmPacket *packet)
現在の Global Time を設定
ctp_dest_flags_t CTP_get_dest_flags(const CommonTlmPacket *packet)
CTP_DEST_FLAG の & を取った flags を取得
uint32_t CTP_get_on_board_subnet_time(const CommonTlmPacket *packet)
On-Board Subnetwork Time を取得
void CTP_copy_packet(CommonTlmPacket *dest, const CommonTlmPacket *src)
CommonTlmPacket をコピー
void CTP_set_on_board_subnet_time(CommonTlmPacket *packet)
現在の On-Board Subnetwork Time を設定
uint16_t CTP_get_packet_len(const CommonTlmPacket *packet)
パケット長を取得
APID CTP_get_apid(const CommonTlmPacket *packet)
APID を取得
double CTP_get_global_time(const CommonTlmPacket *packet)
Global Time を取得
TLM_CODE CTP_get_id(const CommonTlmPacket *packet)
TLM ID を取得
void CTP_set_id(CommonTlmPacket *packet, TLM_CODE id)
TLM ID を設定
void CTP_set_dest_flags(CommonTlmPacket *packet, ctp_dest_flags_t flags)
CTP_DEST_FLAG の & を取った flags を設定
CTP 関連基本関数の宣言
uint8_t ctp_dest_flags_t
CTP_DEST_FLAG の & をとったフラグのための型
#define CTP_MAX_LEN
Space Packet (テレメ用)
cycle_t TMGR_get_master_total_cycle(void)
現在の total_cycle を返す
Definition: time_manager.c:97
OBC時刻のカウントアップと,各種衛星時刻関連処理
APID TSP_get_apid(const TlmSpacePacket *tsp)
APID を取得
uint32_t TSP_get_on_board_subnet_time(const TlmSpacePacket *tsp)
On-Board Subnetwork Time を取得
ctp_dest_flags_t TSP_get_dest_flags(const TlmSpacePacket *tsp)
Destination Flags を取得
uint16_t TSP_get_packet_len(const TlmSpacePacket *tsp)
Packet Length を取得
double TSP_get_global_time(const TlmSpacePacket *tsp)
Global Time を取得
void TSP_set_apid(TlmSpacePacket *tsp, APID apid)
APID を設定
TLM_CODE TSP_get_tlm_id(const TlmSpacePacket *tsp)
Tlm ID を取得
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_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 を設定
CCSDS で規定される Space Packet の テレメ版の実装