#include "protocol.h" #include "stdio.h" int main(){ // union convert_float sample; // sample.fVal = 135; // union convert_float sample2; // for(int i = 0; i < sizeof sample.buf; i++){ // printf("buffer %d: %d\n", i, sample.buf[i]); // sample2.buf[i] = sample.buf[i]; // } // // printf("float: %f\n", sample2.fVal); // union convert_char sample; // sample.cVal = "world_word_z"; // union convert_char sample2; // for(int i = 0; i < sizeof sample.buf; i++){ // printf("buffer %d: %d\n", i, sample.buf[i]); // sample2.buf[i] = sample.buf[i]; // } // // printf("char: %s\n", sample2.cVal); // char a[64]; // float f = 3.14159; // number to start with // // snprintf(a, sizeof a, "%f", f); // point a to f's location // // float num = atof(a); // // printf("%s\n", a); // printf("%f", num); // // // print float & byte array as hex // printf("float: %f\n", f); // printf("byte array: %hhX:%hhX:%hhX:%hhX\n", \ // a[0], a[1], a[2], a[3]); // uint8_t num; // sscanf(a, "%s", &num); // float s = atof(a); // printf("%f\n", s); // float vIn = -1.07231; // char *vOut[4]; // _gcvt_s(vOut,sizeof(vOut),vIn,9); // // float vA = (float)strtod(vOut,NULL); // // printf("\n%f", vA); printf("Test number\n"); struct message messNum; messNum.numbers[0] = 12.134; messNum.numbers[1] = 135.123; messNum.numbers[2] = 5214.12; messNum.numbers[3] = 12345.12345; messNum.len_str = 0; messNum.len_numbers = 4; uint8_t buffer_number[] = {}; size_t len_buffer_number; protocol_encode(messNum, buffer_number, &len_buffer_number); for (int i = 0; i < len_buffer_number; i++){ printf("buffer %d: %d\n", i, buffer_number[i]); } printf("---------------------------------------\n"); struct message respNum; protocol_decode(buffer_number, len_buffer_number, &respNum); for (int i = 0; i < 4; i++){ printf("number %d: %f\n", i, respNum.numbers[i]); } printf("\nTest word\n"); struct message messStr; messStr.str = "word_war"; messStr.len_str = sizeof messStr.str; messStr.len_numbers = 0; uint8_t bufferStr[] = {}; size_t len_bufferStr; protocol_encode(messStr, bufferStr, &len_bufferStr); for (int i = 0; i < len_bufferStr; i++){ printf("buffer %d: %d\n", i, bufferStr[i]); } printf("---------------------------------------\n"); struct message respStr; protocol_decode(bufferStr, len_bufferStr, &respStr); printf("message: %s\n", respStr.str); printf("\nTest number + word\n"); struct message mess; mess.numbers[0] = 12.134; mess.numbers[1] = 135.123; mess.len_numbers = 2; mess.str = "word_war_sas"; mess.len_str = sizeof mess.str; uint8_t buffer[] = {}; size_t len_buffer; protocol_encode(mess, buffer, &len_buffer); for (int i = 0; i < len_buffer; i++){ printf("buffer %d: %d\n", i, buffer[i]); } printf("---------------------------------------\n"); struct message resp; protocol_decode(buffer, len_buffer, &resp); for (int i = 0; i < resp.len_numbers; i++){ printf("numbers %d: %f\n", i, resp.numbers[i]); } printf("message: %s\n", resp.str); }