You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
599 B
26 lines
599 B
/* 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;
|
|
}
|
|
|