|
19 | 19 | // -------------------------------------------------------------------
|
20 | 20 | // SERIALIZE MACROS
|
21 | 21 | // -------------------------------------------------------------------
|
| 22 | +#define UCDR_SERIALIZE_BYTE_BOOL(TYPE, ENDIAN) \ |
| 23 | + (void)ENDIAN; \ |
| 24 | + if (ucdr_check_final_buffer_behavior(ub, 1)) \ |
| 25 | + { \ |
| 26 | + *ub->iterator = (uint8_t)((value)?0x01:0x00); \ |
| 27 | + ub->iterator += 1; \ |
| 28 | + ub->offset += 1; \ |
| 29 | + ub->last_data_size = 1; \ |
| 30 | + } \ |
| 31 | + return !ub->error; |
| 32 | + |
| 33 | + |
22 | 34 | #define UCDR_SERIALIZE_BYTE_1(TYPE, ENDIAN) \
|
23 | 35 | (void)ENDIAN; \
|
24 | 36 | if (ucdr_check_final_buffer_behavior(ub, 1)) \
|
|
139 | 151 | // -------------------------------------------------------------------
|
140 | 152 | // DESERIALIZE MACROS
|
141 | 153 | // -------------------------------------------------------------------
|
| 154 | +#define UCDR_DESERIALIZE_BYTE_BOOL(TYPE, ENDIAN) \ |
| 155 | + (void)ENDIAN; \ |
| 156 | + if (ucdr_check_final_buffer_behavior(ub, 1)) \ |
| 157 | + { \ |
| 158 | + *value = (TYPE)((*ub->iterator)?0x01:0x00); \ |
| 159 | + ub->iterator += 1; \ |
| 160 | + ub->offset += 1; \ |
| 161 | + ub->last_data_size = 1; \ |
| 162 | + } \ |
| 163 | + return !ub->error; |
| 164 | + |
142 | 165 | #define UCDR_DESERIALIZE_BYTE_1(TYPE, ENDIAN) \
|
143 | 166 | (void)ENDIAN; \
|
144 | 167 | if (ucdr_check_final_buffer_behavior(ub, 1)) \
|
|
268 | 291 | // PUBLIC DE-SERIALIZATION IMPLEMENTATIONS
|
269 | 292 | // -------------------------------------------------------------------
|
270 | 293 | UCDR_BASIC_TYPE_DEFINITIONS(_char, char, 1)
|
271 |
| -UCDR_BASIC_TYPE_DEFINITIONS(_bool, bool, 1) |
| 294 | +UCDR_BASIC_TYPE_DEFINITIONS(_bool, bool, BOOL) |
272 | 295 | UCDR_BASIC_TYPE_DEFINITIONS(_uint8_t, uint8_t, 1)
|
273 | 296 | UCDR_BASIC_TYPE_DEFINITIONS(_uint16_t, uint16_t, 2)
|
274 | 297 | UCDR_BASIC_TYPE_DEFINITIONS(_uint32_t, uint32_t, 4)
|
|
0 commit comments