Leider keine Verbesserung:
struct PACKET {
uint8_t header;
uint8_t length;
uint8_t function;
uint8_t multivar;
uint8_t source[4];
uint8_t destination[4];
uint8_t *payload;
};
void setup()
{
Serial3.begin(57600);
}
void loop()
{
struct PACKET packet;
packet.payload = (uint8_t *)malloc(12 * sizeof(uint8_t));
packet.header = 1;
packet.length = 2;
packet.function = 3;
packet.multivar = 4;
packet.source[0] = 5;
packet.source[1] = 6;
packet.source[2] = 7;
packet.source[3] = 8;
packet.destination[0] = 9;
packet.destination[1] = 10;
packet.destination[2] = 11;
packet.destination[3] = 12;
// Bis hier ist die Ausgabe noch OK
packet.payload[0] = 13;
packet.payload[1] = 14;
packet.payload[2] = 15;
packet.payload[3] = 16;
packet.payload[4] = 17;
packet.payload[5] = 18;
uint8_t packetSize = sizeof(packet);
uint8_t bufferSize = packetSize;
uint8_t outBuffer[bufferSize];
memcpy(outBuffer, &packet, packetSize);
for(int i = 0; i<sizeof(packet);i++) {
Serial3.print(outBuffer[i]);
}
Serial3.println();
free(packet.payload);
}
Ausgabe:
12345678910111215214225531