1/* Encodes a float value into a double on the wire. 2 * Used to emit doubles from AVR code, which doesn't support double directly. 3 */ 4 5#include <stdio.h> 6#include <pb_encode.h> 7#include "double_conversion.h" 8#include "doubleproto.pb.h" 9 10int main() 11{ 12 AVRDoubleMessage message = { 13 float_to_double(1234.5678f), 14 float_to_double(0.00001f) 15 }; 16 17 uint8_t buffer[32]; 18 pb_ostream_t stream = pb_ostream_from_buffer(buffer, sizeof(buffer)); 19 20 pb_encode(&stream, AVRDoubleMessage_fields, &message); 21 fwrite(buffer, 1, stream.bytes_written, stdout); 22 23 return 0; 24} 25 26