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