/* 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; }