C2A_Core
m_pdu.h
[詳解]
1 #ifndef M_PDU_H_
2 #define M_PDU_H_
3 
4 
5 #include <stddef.h>
6 #include <stdint.h>
7 
8 
9 #define M_PDU_HEADER_SIZE (2u)
10 #define M_PDU_DATA_SIZE (432u)
11 #define M_PDU_LEN (M_PDU_HEADER_SIZE + M_PDU_DATA_SIZE)
12 
13 typedef struct
14 {
15  uint8_t header[M_PDU_HEADER_SIZE];
16  uint8_t data[M_PDU_DATA_SIZE];
17 } M_PDU;
18 
19 typedef enum
20 {
21  M_PDU_PTR_NO_HDR = 0x07ff, // 11111111111b
22  M_PDU_PTR_IDLE = 0x7fe // 11111111110b
24 
25 void M_PDU_generate_byte_stream(const M_PDU* m_pdu,
26  uint8_t byte_stream[M_PDU_LEN]);
27 
28 void M_PDU_setup_idle_m_pdu(M_PDU* m_pdu);
29 
30 uint16_t M_PDU_get_1st_hdr_ptr(const M_PDU* m_pdu);
31 
32 void M_PDU_set_1st_hdr_ptr(M_PDU* m_pdu,
33  uint16_t ptr);
34 
35 const uint8_t* M_PDU_get_data_head(const M_PDU* m_pdu);
36 
37 void M_PDU_set_data(M_PDU* m_pdu,
38  const uint8_t* data,
39  size_t offset,
40  size_t len);
41 
42 #endif // M_PDU_H_
void M_PDU_set_1st_hdr_ptr(M_PDU *m_pdu, uint16_t ptr)
Definition: m_pdu.c:73
void M_PDU_set_data(M_PDU *m_pdu, const uint8_t *data, size_t offset, size_t len)
Definition: m_pdu.c:84
void M_PDU_setup_idle_m_pdu(M_PDU *m_pdu)
Definition: m_pdu.c:17
#define M_PDU_DATA_SIZE
Definition: m_pdu.h:10
#define M_PDU_HEADER_SIZE
Definition: m_pdu.h:9
M_PDU_PTR
Definition: m_pdu.h:20
@ M_PDU_PTR_NO_HDR
Definition: m_pdu.h:21
@ M_PDU_PTR_IDLE
Definition: m_pdu.h:22
#define M_PDU_LEN
Definition: m_pdu.h:11
uint16_t M_PDU_get_1st_hdr_ptr(const M_PDU *m_pdu)
Definition: m_pdu.c:61
void M_PDU_generate_byte_stream(const M_PDU *m_pdu, uint8_t byte_stream[M_PDU_LEN])
Definition: m_pdu.c:8
const uint8_t * M_PDU_get_data_head(const M_PDU *m_pdu)
C89 環境用 stdint.h
Definition: m_pdu.h:14