Site icon Renzo Mischianti

Comunicazione Bidirezionale con LoRa tra Client e Server

Ciao a tutti, vorrei realizzare una interfaccia radio-web bidirezionale tra due dispositivi radio basati su LoRa con funzioni di client e server. L'utilizzo immaginato è il seguente: 1. Il client invia una richiesta al server. 2. Il server, ricevuta la richiesta, effettua una chiamata HTTP, processa i dati ricevuti e ne effettua il parsing. 3. Il server invia al client i dati formattati come risposta. Nella realizzazione sono emerse due criticità: 1. Auto-ricezione del messaggio: Ho notato che il server "vede" il messaggio trasmesso. C'è un modo efficace per evitare che il server riceva il suo stesso messaggio? In particolare, il problema è qui (server):
while True:
  if lora.available() > 0:
    data = parse_incoming(..)
    res = fetch(data)
    lora.send_transparent_message(res)
Forse il destination address? 2. Dati troncati: Quando il server riceve una trasmissione dal client, ho notato che questi dati vengono spesso troncati o non arrivano completi. Come posso garantire che i dati vengano ricevuti integralmente e in modo corretto? Il problema sembra essere nel file lora_e22.py alla riga 657 time.sleep(0.08) # wait for the rest of the message Aumentando lo sleep time, l'errors di ricezione viene spostato più avanti nel messaggio. Lorem ipsum dolor sit amet, consectetur adipiscig elit. La parola dovrebbe essere adipiscing, ma invece una lettera è stata omessa. Modificando lo sleep time a 0.10s il messaggio è ricevuto per intero, ma non credo sia il modo corretto di risolvere il problema. Sono certo si ripresenterebbe in caso di pacchetti dati più pesanti. Grazie in anticipo per qualsiasi aiuto o suggerimento.
Exit mobile version