Add an example of handling doubles on AVR platform.

This commit is contained in:
Petteri Aimonen
2013-01-29 22:10:37 +02:00
parent 2392d25574
commit e4b55179d1
8 changed files with 320 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
/* 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;
}