C2A_Core
telemetry_frame.h
[詳解]
1 
5 #ifndef TELEMETRY_FRAME_H_
6 #define TELEMETRY_FRAME_H_
7 
8 #include "./common_cmd_packet.h"
10 
11 #define TF_TLM_PAGE_SIZE (64)
12 #define TF_TLM_PAGE_MAX (4)
13 #define TF_MAX_TLMS (TF_TLM_PAGE_SIZE * TF_TLM_PAGE_MAX)
14 
16 
22 typedef enum
23 {
30 
35 typedef struct
36 {
37  TF_TLM_FUNC_ACK (*tlm_func)(uint8_t*, uint16_t*, uint16_t);
38 } TF_TlmInfo;
39 
44 typedef struct
45 {
46  TF_TlmInfo tlm_table[TF_MAX_TLMS];
47  uint8_t tlm_page_no;
49 
50 extern const TelemetryFrame* const telemetry_frame;
51 
52 
58 void TF_initialize(void);
59 
69  uint8_t* packet,
70  uint16_t* len,
71  uint16_t max_len);
72 
80 
82 
84 
86 
87 void TF_copy_u8(uint8_t* ptr, uint8_t data);
88 
89 void TF_copy_u16(uint8_t* ptr, uint16_t data);
90 
91 void TF_copy_u32(uint8_t* ptr, uint32_t data);
92 
93 void TF_copy_i8(uint8_t* ptr, int8_t data);
94 
95 void TF_copy_i16(uint8_t* ptr, int16_t data);
96 
97 void TF_copy_i32(uint8_t* ptr, int32_t data);
98 
99 void TF_copy_float(uint8_t* ptr, float data);
100 
101 void TF_copy_double(uint8_t* ptr, double data);
102 
103 #endif
CCP 関連基本関数の宣言
コマンド返り値
Space Packet (コマンド用)
tlm の情報
TelemetryFrame の Info 構造体
uint8_t tlm_page_no
テレメで使うページ数
テレメトリ定義
void TF_copy_i16(uint8_t *ptr, int16_t data)
void TF_copy_u8(uint8_t *ptr, uint8_t data)
void TF_copy_u32(uint8_t *ptr, uint32_t data)
void TF_copy_double(uint8_t *ptr, double data)
CCP_CmdRet Cmd_TF_INIT(const CommonCmdPacket *packet)
TF_TLM_FUNC_ACK TF_generate_contents(TLM_CODE tlm_id, uint8_t *packet, uint16_t *len, uint16_t max_len)
テレメを実際に生成する関数
CCP_CmdRet Cmd_TF_SET_PAGE_FOR_TLM(const CommonCmdPacket *packet)
void TF_initialize(void)
TF の初期化
#define TF_MAX_TLMS
テレメテーブルサイズ.すなわち登録できる最大テレメ数
void TF_copy_u16(uint8_t *ptr, uint16_t data)
void TF_load_tlm_table(TF_TlmInfo tlm_table[TF_MAX_TLMS])
Tlm Tableのロード
CCP_CmdRet Cmd_TF_REGISTER_TLM(const CommonCmdPacket *packet)
void TF_copy_i8(uint8_t *ptr, int8_t data)
void TF_copy_float(uint8_t *ptr, float data)
const TelemetryFrame *const telemetry_frame
TF_TLM_FUNC_ACK
tlm_func の返り値につかう
@ TF_TLM_FUNC_ACK_NULL_PACKET
2nd OBC などのテレメを生成する時,まだ1つもそのテレメパケットを 2nd OBC から受信していない
@ TF_TLM_FUNC_ACK_TOO_SHORT_LEN
CommonTlmPacket が,生成されるテレメに比べて小さすぎる(定義されたテレメが大きすぎる)
@ TF_TLM_FUNC_ACK_UNKNOWN_ERR
その他のエラー
@ TF_TLM_FUNC_ACK_SUCCESS
成功
@ TF_TLM_FUNC_ACK_NOT_DEFINED
定義されてないテレメ
void TF_copy_i32(uint8_t *ptr, int32_t data)
TFのCoreTlmパラメタのオーバーライド用ヘッダー