Skip to content

Commit 4319185

Browse files
LiPing07clippinglee
LiPing07
authored andcommitted
fix microcontroller no real bool type issue
Signed-off-by: clipping <clippinglp@qq.com>
1 parent ed4fd51 commit 4319185

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

src/c/types/basic.c

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@
1919
// -------------------------------------------------------------------
2020
// SERIALIZE MACROS
2121
// -------------------------------------------------------------------
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+
2234
#define UCDR_SERIALIZE_BYTE_1(TYPE, ENDIAN) \
2335
(void)ENDIAN; \
2436
if (ucdr_check_final_buffer_behavior(ub, 1)) \
@@ -139,6 +151,17 @@
139151
// -------------------------------------------------------------------
140152
// DESERIALIZE MACROS
141153
// -------------------------------------------------------------------
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+
142165
#define UCDR_DESERIALIZE_BYTE_1(TYPE, ENDIAN) \
143166
(void)ENDIAN; \
144167
if (ucdr_check_final_buffer_behavior(ub, 1)) \
@@ -268,7 +291,7 @@
268291
// PUBLIC DE-SERIALIZATION IMPLEMENTATIONS
269292
// -------------------------------------------------------------------
270293
UCDR_BASIC_TYPE_DEFINITIONS(_char, char, 1)
271-
UCDR_BASIC_TYPE_DEFINITIONS(_bool, bool, 1)
294+
UCDR_BASIC_TYPE_DEFINITIONS(_bool, bool, BOOL)
272295
UCDR_BASIC_TYPE_DEFINITIONS(_uint8_t, uint8_t, 1)
273296
UCDR_BASIC_TYPE_DEFINITIONS(_uint16_t, uint16_t, 2)
274297
UCDR_BASIC_TYPE_DEFINITIONS(_uint32_t, uint32_t, 4)

0 commit comments

Comments
 (0)