Buongiorno a tutti, sono alle prime armi con i trasmettitori LoRa e sto provando come test ad inviare 3 dati diversi tra di loro ( un "Array", un "int" ed un "byte"). Ho strutturato il pacchetto send in questo modo:
//Send LoRa packet to receiver
LoRa.beginPacket();
LoRa.write((byte*)&myArray,sizeof(myArray));
LoRa.write(myInteger);
LoRa.write(myByte);
LoRa.endPacket();
Il pacchetto ricevitore in questo modo:
int packetSize = LoRa.parsePacket();
if (packetSize) {
for (int i = 0; i < arraySize; i++) {
myArray[i] = LoRa.read();
}
myInteger = LoRa.read();
myByte = LoRa.read();
}
La trasmissione funziona , l'array e il valore del byte li vedo correttamente mentre il valore dell'integer mi da problemi. Fino a valori di trasmissione di 255 il ricevitore è preciso mentre oltre quel valore va in roll over e vedo il valore - 255. E' come se ricevesse al posto di un intero un solo byte. Qualcuno mi puoi dire dove sbaglio?
Dato che spesso le librerie (scritte gratuitamente da volontari) sono scarsamente documentate, è sempre una buona cosa dare un'occhiata hai sorgenti per capire se quello che si vuole fare è possibile o meno