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