#include #include #include #include #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 typedef struct { float x,y; } coord; int main() { uint8_t send_buffer[] = { TYPE_STRING, PROTO_LEN, FIELD_ONE_FLOAT, 0x00, 0x00, 0x48, 0x43, FIELD_TWO_FLOAT, 0x00, 0x00, 0xc8, 0x42, FIELD_TWO_VARIANT, 0}; printf("SIZEOF : %d\n", sizeof(send_buffer)); printf("Testing encode:"); float latitude = 200; float longitude = 100; uint8_t buffer[14] = { TYPE_STRING, PROTO_LEN, FIELD_ONE_FLOAT, 0x00, 0x00, 0x48, 0x43, FIELD_TWO_FLOAT, 0x00, 0x00, 0xc8, 0x42, FIELD_TWO_VARIANT, 0}; memcpy(buffer+3, (void*)&latitude, 4); memcpy(buffer+8, (void*)&longitude, 4); for(int i=0;i>(8*i)); } printf("\n"); // memcpy(coordinates[0].x, buffer0 + i+0+7, 4); // memcpy(coordinates[0].y, buffer0 + i+5+7, 4); // memcpy(coordinates[1].x, buffer0 + i+12+7, 4); // memcpy(coordinates[1].y, buffer0 + i+17+7, 4); // // memcpy(coordinates[2].x, buffer0 + i+24+7, 4); // memcpy(coordinates[2].y, buffer0 + i+29+7, 4); return 0; }