136 lines
3.5 KiB
C
136 lines
3.5 KiB
C
|
#include <stdlib.h>
|
||
|
#include <stdio.h>
|
||
|
#include <string.h>
|
||
|
#include <stdint.h>
|
||
|
|
||
|
#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<sizeof(buffer);i++)
|
||
|
{
|
||
|
printf("%02x - ", buffer[i]);
|
||
|
}
|
||
|
printf("\n");
|
||
|
|
||
|
#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
|
||
|
|
||
|
int32_t isr;
|
||
|
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
|
||
|
};
|
||
|
|
||
|
printf("size: %d\n", sizeof(buffer0));
|
||
|
/*
|
||
|
*
|
||
|
* this stuff does not work yet
|
||
|
*
|
||
|
*/
|
||
|
coord coordinates[10];
|
||
|
isr = 0;
|
||
|
isr = buffer0[1];
|
||
|
|
||
|
uint8_t *ptr = buffer0+5;
|
||
|
for(int i=0;i<10;i++)
|
||
|
{
|
||
|
memcpy(&coordinates[i].x, ptr + i*12, 4);
|
||
|
memcpy(&coordinates[i].y, ptr + i*12+5, 4);
|
||
|
}
|
||
|
|
||
|
printf("isr: %d\n", isr);
|
||
|
for(int i=0;i<10;i++)
|
||
|
{
|
||
|
printf("%f, %f\n", coordinates[i].x, coordinates[i].y);
|
||
|
}
|
||
|
printf("\n");
|
||
|
|
||
|
uint32_t test = 9999;
|
||
|
for(int i=0;i<4;i++)
|
||
|
{
|
||
|
printf("%02x - ", (uint8_t)test>>(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;
|
||
|
}
|