No le daré una respuesta profesional ya que no estoy en el campo de RF, pero ... ¿el spam envía un número entero una y otra vez? ¿Interferencia? Esa no es manera de hacer comunicación. Usted debe enviar datos junto con la meta-información.
Supongamos que tienes 4 dispositivos que envían información. Eso significa que necesita 2 bits de información sobre el dispositivo. Así que los dos primeros bytes contendrán información sobre qué dispositivo lo envió. 00 - primer dispositivo, 01 - segundo, 10 - tercero, 11 - cuarto.
No deberías transmitir datos todo el tiempo, también. Su hardware debe estar protegido contra el ruido hasta cierto punto, por lo que no necesita cien mil bytes redundantes enviados a través del enlace de RF. Un solo byte enviado a través de UART < - > RF debería llevarle un par de decenas de microsegundos. Si no necesita altas velocidades, puede darse el lujo de intentar enviar estos datos varias veces.
La transferencia de datos debe ir así:
- El dispositivo # 1 envía un byte de datos al dispositivo # 2
- El ruido impide que el byte se envíe con éxito, el dispositivo # 2 simplemente se queda ahí sin prestar atención al hecho.
- El dispositivo # 1 espera un poco la respuesta del dispositivo # 2. Si se excede el tiempo de espera, se realiza otro intento.
- Digamos que el dispositivo # 2 recibió un byte, pero la suma de control no se suma. Ahora envía un byte de error predefinido.
- El dispositivo # 1 recibió una señal de error, por lo que envía el mismo byte nuevamente.
- El dispositivo # 2 recibió el byte correcto, por lo que envía un byte de control reconocido.
- ¡El ruido interrumpe la transferencia una vez más! Así que el dispositivo # 1 envía el byte una vez más. Tal vez debería incluir una identificación? De esta manera, el dispositivo # 2 no interpretará esto como un byte completamente nuevo.
Esta es una descripción muy caótica de lo que imagino que debería suceder en un sistema de comunicación muy rudimentario que es propenso a errores. Para crear un sistema confiable desde cero, debe crear su propio protocolo. La redundancia es solo una de las formas de lograr esto.
Si tiene la intención de enviar una gran cantidad de datos, y la transferencia demora unos pocos milisegundos, es posible que otro dispositivo intente iniciar su propia transferencia. Sin embargo, ese dispositivo también debe ser capaz de verificar si el 'éter' está libre. Si detecta una transmisión, debe esperar hasta que finalice.
Este es un tema tan fascinante que alguien, en algún lugar, probablemente ha creado un protocolo muy bien pensado. Probablemente haya una biblioteca en avrfreaks que se ajuste a esta aplicación. Tal vez hay soluciones industriales que podrías imitar. Lo cierto es que esto no es un asunto simple.