Creé un paso de LoRa a USB a través de Arduino para usarlo como una puerta de enlace temporal para fines de desarrollo. Entonces, de alguna manera, necesito saber qué tan grande es un paquete LoRa que incluye encabezados PHY, para determinar cuánto tiempo tomará mi software leer y enviar los datos en la parte superior de un USB.
En palabras, mi arquitectura será la siguiente:
Por lo tanto, la PC / computadora portátil necesitará "saber" qué tan grande será el paquete LoRa para no recibir a través de USB innumerables números de bytes.
Respuestas:
¿Supongo que te refieres al encabezado MAC? Después de que un chip LoRa haya demodulado las señales de radio LoRa por usted, le dará la carga útil LoRa PHY. Para un enlace ascendente LoRaWAN, dicha carga útil PHY contiene un encabezado MAC, carga útil MAC y MIC.
Para 1.0.x, la regla general parece ser que un paquete LoRaWAN es al menos 13 bytes más grande que la carga útil de la aplicación:
La carga útil máxima de la aplicación depende de la velocidad de datos seleccionada. Si un nodo debe poder operar en las peores condiciones, entonces uno debe asumir la peor velocidad de datos, SF12, donde el nodo no debe enviar más de aproximadamente 51 bytes. (Donde, en las mejores condiciones, SF7, eso podría ser 222 bytes). Creo que todo eso también depende de la región. (Y las cosas podrían ser mejores cuando el nodo LoRaWAN no usa LoRa, sino FSK).
Entonces, para su caso de uso, trataría de no depender de una longitud máxima a través de USB. En lugar:
Puede convertir fácilmente el paquete binario LoRaWAN a texto sin formato con Base64 . A continuación, puede enviar como texto a través de USB y terminar con un salto de línea o un NULL -character dejar que sus habilidades receptor cuando el mensaje USB es completa. Incluso puede enviar metadatos adicionales en esa línea de texto si elige un separador que no está en el juego de caracteres Base64.
Por ejemplo, el protocolo UDP Semtech entre puertas de enlace y servidores utiliza mensajes de texto JSON, lo que también le permite pasar metadatos adicionales. En el texto JSON, el paquete binario LoRaWAN también se codifica utilizando Base64. Si el texto JSON está bastante formateado para incluir nuevas líneas, aún puede terminar dicho mensaje de texto con un carácter NULL y su receptor no se confundirá.
fuente