RF24 Array übertragung

Dennoch weiß ich nicht, warum das ganze momentan mit den Zahlen, die im Code stehen, nicht funktioniert. Darum gehts mir in erster Linie.

Ich habe deinen Sender mal aufgeräumt!
Testen kann ich nicht....
Und auf Sinnhaftigkeit habe ich auch nicht geprüft.

//Sender

#include <SPI.h>
#include <printf.h>
#include <RF24.h>

using ArrayType = unsigned long [40];

unsigned long starttime;
ArrayType dataset;



RF24 radio(7,8);
/**********************************************************/
byte addresses[][6] = {"1Node","2Node"};
/**********************************************************/
void setup()
{
  Serial.begin(57600);
  printf_begin();
  radio.begin();
  radio.setPALevel(RF24_PA_HIGH);
  radio.setDataRate(RF24_250KBPS); 
  radio.setAutoAck(1);
  radio.enableDynamicPayloads(); 
  radio.setCRCLength(RF24_CRC_8); 
  radio.enableAckPayload();
  radio.setRetries(0,30);
  radio.setPayloadSize(32);
  radio.openWritingPipe(addresses[1]);
  radio.openReadingPipe(1,addresses[0]);  
  radio.powerUp();
  radio.startListening();
  radio.printDetails();
}

void loop()
{
  starttime=millis();
  getData();
}

void getData()
{
  unsigned long payload;
  double data=0;

  payload=millis()-starttime;  //Zeitstempel
  radio.powerUp();
  radio.stopListening();
  dataset[0]=payload;
  payload=(unsigned int)(1);
  dataset[1]=payload;
  payload=(unsigned int)(2);
  dataset[2]=payload;
  for(int i=0;i<16;i++)
  {
    payload=(unsigned int)(3+i);
    if(payload>0)  dataset[3+i]=payload;
  }
  payload=(unsigned int)(20);
  if(payload!=36172) dataset[19]=payload;

  for(int i=0;i<16;i++)
  {
    payload=(unsigned int)(20+i);
    if(payload>0) dataset[20+i]=payload;
  }
  
  payload=(unsigned int)(37);
  if(payload!=36172) dataset[36]=payload;
  dataset[37]=payload;
  dataset[38]=payload;
  dataset[39]=123;

  for(int i=0;i<16;i++)
  {
    data=(double)dataset[i];
    Serial.print(data);
  }
  sendDataset(dataset);
  radio.powerDown();
}
 

void sendDataset(const ArrayType &load)
{
  size_t zusendende = sizeof(load);
  byte *ptr = (byte*)load;
  while(zusendende)
  {
    size_t blocksize = min(32,zusendende);
    radio.writeFast(ptr,blocksize);
    radio.txStandBy();
    zusendende -= blocksize;
    ptr += blocksize;
  }
}