C API for BALTECH SDK
frames.h
Go to the documentation of this file.
1 
12 #ifndef __FRAMES_H__
13 #define __FRAMES_H__
14 
15 
16 
17 #include "common.h"
18 
19 
20 #define BRP_FRAME_INVALID_SIZE ((size_t) -1)
21 
22 
36 typedef struct brp_frame_t
37 {
38  brp_buf ptr;
39  size_t act_size;
40  size_t total_size;
41 } * brp_frame;
42 
43 
47 #define BRP_FRAME_PTR(frm) ((frm)->ptr)
48 
49 
53 #define BRP_FRAME_SIZE(frm) ((frm)->act_size)
54 
55 
56 
61 typedef struct brp_frame_reader_t
62 {
63  brp_frame frame;
64  brp_buf ptr;
65  bool err;
66 } brp_frame_reader;
67 
68 
72 BRP_LIB void brp_frame_reader_start
73 (
74  brp_frame_reader * frame_rdr,
75  brp_frame frame
76 );
77 
78 
82 BRP_LIB brp_buf brp_frame_reader_next
83 (
84  brp_frame_reader * frame_rdr,
85  size_t block_size
86 );
87 
88 
92 BRP_LIB void brp_frame_init(brp_frame frame);
93 
94 
98 BRP_LIB void brp_frame_deinit(brp_frame frame);
99 
100 
110 BRP_LIB void brp_frame_write_start(brp_frame frame);
111 
112 
117 BRP_LIB bool brp_frame_write_err(brp_frame frame);
118 
119 
124 BRP_LIB void brp_frame_write(brp_frame frame, brp_buf data, size_t data_len);
125 
126 
131 BRP_LIB void brp_frame_write_int8(brp_frame frame, unsigned value);
132 
133 
138 BRP_LIB void brp_frame_write_int16(brp_frame frame, unsigned value);
139 
140 
145 BRP_LIB void brp_frame_write_int24(brp_frame frame, unsigned value);
146 
147 
152 BRP_LIB void brp_frame_write_int32(brp_frame frame, unsigned value);
153 
154 
159 BRP_LIB void brp_frame_write_frm(
160  brp_frame dst_frame, brp_frame_reader * src_frame_rdr, size_t cnt);
161 
162 
167 BRP_LIB void brp_frame_write_frm_rest(
168  brp_frame dst_frame, brp_frame_reader * src_frame_rdr);
169 
170 
174 BRP_LIB void brp_frame_write_fill(brp_frame frame, int val, size_t cnt);
175 
176 
186 BRP_LIB brp_buf brp_frame_write_buf
187 (
188  brp_frame frame,
189  size_t add_size
191 );
192 
193 
197 BRP_LIB void brp_frame_read_start(brp_frame_reader *frame_rdr, brp_frame frame);
198 
199 
204 BRP_LIB void brp_frame_read(
205  brp_frame_reader * frame_rdr, brp_buf data, size_t data_len);
206 
207 
212 BRP_LIB void brp_frame_read_var(brp_frame_reader * frame_rdr, brp_buf data,
213  size_t max_data_len, size_t * data_len_ptr);
214 
215 
219 BRP_LIB void brp_frame_skip(brp_frame_reader * frame_rdr, size_t cnt);
220 
221 
226 BRP_LIB unsigned brp_frame_read_int8(brp_frame_reader * frame_rdr);
227 
228 
233 BRP_LIB unsigned brp_frame_read_int16(brp_frame_reader * frame_rdr);
234 
235 
240 BRP_LIB unsigned brp_frame_read_int24(brp_frame_reader * frame_rdr);
241 
242 
247 BRP_LIB unsigned brp_frame_read_int32(brp_frame_reader * frame_rdr);
248 
249 
254 BRP_LIB void brp_frame_read_frm(
255  brp_frame_reader * frame_rdr, brp_frame dst_frame, size_t cnt);
256 
257 
262 BRP_LIB void brp_frame_read_frm_rest(
263  brp_frame_reader * frame_rdr, brp_frame dst_frame);
264 
265 
269 BRP_LIB bool brp_frame_read_err(brp_frame_reader * frame_rdr);
270 
271 
275 BRP_LIB size_t brp_frame_rest(brp_frame_reader * frame_rdr);
276 
277 
281 BRP_LIB bool brp_frame_read_eof(brp_frame_reader * frame_rdr);
282 
283 
287 BRP_LIB size_t brp_frame_read_diff(
288  brp_frame_reader * new_rdr, brp_frame_reader * old_rdr);
289 
290 
294 BRP_LIB void brp_frame_unread(brp_frame_reader * frame_rdr, size_t byte_cnt);
295 
296 
304 #endif
305  // end of defgroup brp_lib
Contains the basic defines that are required throughout the BRP library.
unsigned char * brp_buf
represents a pointer to a protocol data buffer.
Definition: common.h:61