#include "Arduino.h"
// Define your custom struct
struct MyStruct
{
int data1;
float data2;
char data3[15];
};
struct MyStruct2
{
char [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 your custom struct
MyStruct myData = {42, 3.14f, "Hello"};
// Define a buffer for the serialized data
uint8_t buffer[sizeof(MyStruct)];
serializeData(myData, buffer);
MyStruct receivedData;
deserializeData(buffer, receivedData);
Serial.println(receivedData.data1);
Serial.println(receivedData.data2);
Serial.println(receivedData.data3);
// Now 'receivedData' contains the original struct
}
void exampleUsage() {
// Create an instance of your custom struct
MyStruct2 myData = {"ELO ELO MOWIL DO WAS CIALIS PRZY MIKROFONIE"};
// Define a buffer for the serialized data
uint8_t buffer[sizeof(MyStruct)];
serializeData(myData, buffer);
MyStruct2 receivedData;
deserializeData(buffer, receivedData);
Serial.println(receivedData.data1);
Serial.println(receivedData.data2);
Serial.println(receivedData.data3);
// Now 'receivedData' contains the original struct
}
void setup()
{
Serial.begin(115200);
exampleUsage();
exampleUsage2();
}
void loop(){}