on fct_returning EV.PayloadPreSendInd
{
const int bufferSize = 200;
byte payloadBuffer[bufferSize];
writeLineEx(-3,1,"PayloadPreSendInd for message %d with payloadLength %d", this.messageID, this.payloadLength);
if(bufferSize < this.payloadLength)
{
// Payload bigger than buffer, skipping manipulation
return;
}
// Copy data to buffer to allow manipulation
memcpy(payloadBuffer, this.payload);
// Manipulate first byte of header
payloadBuffer[0] = payloadBuffer[0] + 1;
// Copy manipulated data back to inout parameter, so that values are sent
memcpy(this.payload, payloadBuffer, this.payloadLength);
if(this.payloadLength + 1 <= bufferSize)
{
// payload shorter than buffer, appending one byte
payloadBuffer[this.payloadLength] = 5;
// Copy manipulated and extended data back to inout parameter, so that values are sent
memcpy(this.payload, payloadBuffer, this.payloadLength + 1);
}
else // payload fills buffer completely, not extending
{
// Copy manipulated data back to inout parameter, so that values are sent
memcpy(this.payload, payloadBuffer, this.payloadLength);
}
}