bootloader: protobuf - add pb_add_bytes

pull/25/head
Pavol Rusnak 7 years ago
parent 6fd52dd36e
commit f345de1a4f
No known key found for this signature in database
GPG Key ID: 91F3B339B9A02A3D

@ -49,22 +49,24 @@ static void pb_varint(PB_CTX *ctx, uint32_t val)
void pb_add_bool(PB_CTX *ctx, uint32_t field_number, bool val) void pb_add_bool(PB_CTX *ctx, uint32_t field_number, bool val)
{ {
field_number = (field_number << 3) | 0; pb_add_varint(ctx, field_number, val);
pb_varint(ctx, field_number);
pb_append(ctx, val);
} }
void pb_add_string(PB_CTX *ctx, uint32_t field_number, const char *val) void pb_add_bytes(PB_CTX *ctx, uint32_t field_number, const uint8_t *val, uint32_t len)
{ {
field_number = (field_number << 3) | 2; field_number = (field_number << 3) | 2;
pb_varint(ctx, field_number); pb_varint(ctx, field_number);
size_t len = strlen(val);
pb_varint(ctx, len); pb_varint(ctx, len);
for (size_t i = 0; i < len; i++) { for (uint32_t i = 0; i < len; i++) {
pb_append(ctx, val[i]); pb_append(ctx, val[i]);
} }
} }
void pb_add_string(PB_CTX *ctx, uint32_t field_number, const char *val)
{
pb_add_bytes(ctx, field_number, (const uint8_t *)val, strlen(val));
}
void pb_add_varint(PB_CTX *ctx, uint32_t field_number, uint32_t val) void pb_add_varint(PB_CTX *ctx, uint32_t field_number, uint32_t val)
{ {
field_number = (field_number << 3) | 0; field_number = (field_number << 3) | 0;

@ -16,6 +16,7 @@ void pb_start(PB_CTX *ctx, uint16_t msg_id);
void pb_end(PB_CTX *ctx); void pb_end(PB_CTX *ctx);
void pb_add_bool(PB_CTX *ctx, uint32_t field_number, bool val); void pb_add_bool(PB_CTX *ctx, uint32_t field_number, bool val);
void pb_add_bytes(PB_CTX *ctx, uint32_t field_number, const uint8_t *val, uint32_t len);
void pb_add_string(PB_CTX *ctx, uint32_t field_number, const char *val); void pb_add_string(PB_CTX *ctx, uint32_t field_number, const char *val);
void pb_add_varint(PB_CTX *ctx, uint32_t field_number, uint32_t val); void pb_add_varint(PB_CTX *ctx, uint32_t field_number, uint32_t val);

Loading…
Cancel
Save