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