#include "Arduino.h"
// Define your custom struct
struct MyStruct
{
int data1;
float data2;
char data3[25];
};
struct MyStruct2
{
char data[250];
};
// Function to convert a struct to a byte array
template <typename T>
void serializeData(const T& inputStruct, uint8_t* outputBytes)
{
memcpy(outputBytes, &inputStruct, sizeof(T));
}
// Function to convert a byte array to a struct
template <typename T>
void deserializeData(const uint8_t* inputBytes, T& outputStruct)
{
memcpy(&outputStruct, inputBytes, sizeof(T));
}
void exampleUsage()
{
// Create an instance of data structure
MyStruct myData = {42, 3.14f, "Hello World\n"};
// Define a buffer for the serialized data
uint8_t buffer[sizeof(MyStruct)];
serializeData(myData, buffer);
/// HERE DATA IS SEND TO ANOTHER BOARD
MyStruct receivedData;
deserializeData(buffer, receivedData);
Serial.println(receivedData.data1);
Serial.println(receivedData.data2);
Serial.println(receivedData.data3);
}
void exampleUsage2()
{
MyStruct2 myData = {"ELO ELO TU CIALIS NA MIKROFONIE\nZAPIERDALAM JAK PO MEFEDRONIE\nJEBNIJ BASEM\nJEBNIJ BASEM SYNU"};
uint8_t buffer[sizeof(MyStruct)];
serializeData(myData, buffer);
/// HERE DATA IS SEND TO ANOTHER BOARD
MyStruct2 receivedData;
deserializeData(buffer, receivedData);
Serial.println(receivedData.data);
}
void setup()
{
Serial.begin(115200);
exampleUsage();
exampleUsage2();
}
void loop(){}