32 size_t tcp_len, tcp_left, m_pdu_left, write_len;
47 if (delta < tcp_to_m_pdu->flush_interval)
76 tcp_left = tcp_len - tcp_to_m_pdu->
tcp_rp;
78 write_len = (tcp_left > m_pdu_left) ? m_pdu_left : tcp_left;
96 tcp_to_m_pdu->
tcp_rp += write_len;
103 if (tcp_to_m_pdu->
tcp_rp == tcp_len)
void M_PDU_set_1st_hdr_ptr(M_PDU *m_pdu, uint16_t ptr)
void M_PDU_set_data(M_PDU *m_pdu, const uint8_t *data, size_t offset, size_t len)
cycle_t OBCT_sec2cycle(uint32_t sec)
秒を cycle に変換する
const PL_Node * PL_get_head(const PacketList *pl)
PacketList の active な先頭 Node を取得
PL_ACK PL_drop_executed(PacketList *pl)
先頭 Node を落とす
PL_ACK PL_push_back(PacketList *pl, const void *packet)
PacketList の末尾に packet を挿入
int PL_is_empty(const PacketList *pl)
PacketList が空かどうか
void * packet
片方向リストに格納される packet. どのような型でも良いように, void.(基本的には CTCP, CTP, CCP を想定)
TCPacket を M_PDU に変換するときに必要なパラメータ
uint8_t packet[TSP_MAX_LEN]
void T2M_initialize(TcpToMPdu *tcp_to_m_pdu)
T2M 構造体の初期化
T2M_ACK T2M_form_m_pdu(TcpToMPdu *tcp_to_m_pdu, PacketList *pl, M_PDU *m_pdu)
TCPacket を M_PDU に変換する
PacketList から TCPacket を取ってきてそれを送信可能な M_PDU へと変換する
cycle_t TMGR_get_master_total_cycle(void)
現在の total_cycle を返す
uint16_t TSP_get_packet_len(const TlmSpacePacket *tsp)
Packet Length を取得
void TSP_setup_fill_packet(TlmSpacePacket *tsp, uint16_t fill_size)
パケット全体を 0x00 クリアし, fill_size に等しいサイズのパケットを生成する
CCSDS で規定される Space Packet の テレメ版の実装