#include #include #include "pb_common.h" #include "pb.h" #include "pb_encode.h" #include "pb_decode.h" #include "gateway/message.pb.h" /* * Try to get repeating element to work with nanopb * for coordinates */ using namespace std; void print_buffer(uint8_t *buffer, int size) { for(int i=0;iarray_size); // bool eof; // uint32_t tag; // pb_wire_type_t t = PB_WT_STRING; // pb_decode_tag(stream, &t, &tag, &eof); // Fenceless_Coordinate coord; // int err = pb_decode(stream, Fenceless_Coordinate_fields, &coord); // assert(err); // printf("%d %d", coord.x,coord.y); // return false; //}; //stream0 = pb_istream_from_buffer(buffer, stream.bytes_written); //err = pb_decode(&stream0, Fenceless_Coordinates_fields, &coords0); //assert(err); /* Reference Protobuff data #define TYPE_STRING 0x0A #define TYPE_VARIANT 0x10 #define PROTO_LEN 0x0A #define FIELD_ONE_FLOAT 0x0D #define FIELD_TWO_FLOAT 0x15 #define FIELD_TWO_VARIANT 0x10 #define FIELD_ONE_VARIANT 0x08 #define FIELD_TWO_STRING 0x12 #define FIELD_THREE_STRING 0x1A #define FIELD_FOUR_STRING 0x22 #define FIELD_FIVE_STRING 0x2A #define FIELD_SIX_STRING 0x32 #define FIELD_SEVEN_STRING 0x3A #define FIELD_EIGHT_STRING 0x42 #define FIELD_NINE_STRING 0x4A #define FIELD_TEN_STRING 0x52 #define FIELD_ELEVEN_STRING 0x5A uint8_t buffer0[] { FIELD_ONE_VARIANT, 0x01, FIELD_TWO_STRING, 0x0A, FIELD_ONE_FLOAT, 0x1B, 0x91, 0xF6, 0xC2, FIELD_TWO_FLOAT, 0x00, 0x00, 0x00, 0x40, FIELD_THREE_STRING, 0x0A, FIELD_ONE_FLOAT, 0xB5, 0x3B, 0x32, 0x42, FIELD_TWO_FLOAT, 0x00, 0x00, 0x00, 0x40, FIELD_FOUR_STRING, 0x0A, FIELD_ONE_FLOAT, 0x00, 0x00, 0x80, 0x3F, FIELD_TWO_FLOAT, 0x00, 0x00, 0x00, 0x40, FIELD_FIVE_STRING, 0x0A, FIELD_ONE_FLOAT, 0x00, 0x00, 0x80, 0x3F, FIELD_TWO_FLOAT, 0x00, 0x00, 0x00, 0x40, FIELD_SIX_STRING, 0x0A, FIELD_ONE_FLOAT, 0x00, 0x00, 0x80, 0x3F, FIELD_TWO_FLOAT, 0x00, 0x00, 0x00, 0x40, FIELD_SEVEN_STRING, 0x0A, FIELD_ONE_FLOAT, 0x00, 0x00, 0x80, 0x3F, FIELD_TWO_FLOAT, 0x00, 0x00, 0x00, 0x40, FIELD_EIGHT_STRING, 0x0A, FIELD_ONE_FLOAT, 0x00, 0x00, 0x80, 0x3F, FIELD_TWO_FLOAT, 0x00, 0x00, 0x00, 0x40, FIELD_NINE_STRING, 0x0A, FIELD_ONE_FLOAT, 0x00, 0x00, 0x80, 0x3F, FIELD_TWO_FLOAT, 0x00, 0x00, 0x00, 0x40, FIELD_TEN_STRING, 0x0A, FIELD_ONE_FLOAT, 0x00, 0x00, 0x80, 0x3F, FIELD_TWO_FLOAT, 0x00, 0x00, 0x00, 0x40, FIELD_ELEVEN_STRING, 0x0A, FIELD_ONE_FLOAT, 0x00, 0x00, 0x80, 0x3F, FIELD_TWO_FLOAT, 0x00, 0x00, 0x00, 0x40 };*/ return 0; }