firmware/extra/nanopb/examples/using_double_on_avr/encode_double.c
Patrick Moessler 0c83634f42 Initial commit
2019-10-13 00:37:11 +02:00

25 lines
599 B
C

/* Encodes a float value into a double on the wire.
* Used to emit doubles from AVR code, which doesn't support double directly.
*/
#include <stdio.h>
#include <pb_encode.h>
#include "double_conversion.h"
#include "doubleproto.pb.h"
int main()
{
AVRDoubleMessage message = {
float_to_double(1234.5678f),
float_to_double(0.00001f)
};
uint8_t buffer[32];
pb_ostream_t stream = pb_ostream_from_buffer(buffer, sizeof(buffer));
pb_encode(&stream, AVRDoubleMessage_fields, &message);
fwrite(buffer, 1, stream.bytes_written, stdout);
return 0;
}