Una biblioteca C incrustada independiente de la plataforma para el módulo Lora MicRCHIP RN2483.
Nota: Este repositorio no se mantiene actualmente y se escribió contra V1.0 de la especificación de Lorawan. Considérelo depreciado por ahora . Déjame saber si quieres
Esta es una biblioteca C incrustada para interactuar con el módulo Lora Microchip RN2483. Su objetivo es ser simple y modular (lo suficiente como para facilitar la portación de diferentes plataformas).
Una de las principales características de esta biblioteca es su portabilidad. Una biblioteca integrada con ninguna E/S nunca puede ser verdaderamente portátil, por lo que las plataformas específicas son compatibles con ramas separadas del repositorio. La rama maestra de este repositorio es el código independiente de la plataforma central. Las ramas individuales (por ejemplo platform/mbit ) son lo que realmente querrá usar si está tratando de implementar esto para usar en una plataforma.
La única funcionalidad específica de hardware reitivada por esta biblioteca es la capacidad de R/W sobre UART al módulo RN2483. En consecuencia, esto es manejado por un envoltorio funciones: read y write . En la rama maestra , estos simplemente están llenos de #Error que le indica que los implemente en la compilación.
Para obtener detalles sobre cómo agregar soporte para una plataforma específica, consulte 6. Agregar Platforms .
Para ejemplos de soporte de plataforma específico, ver 5. Plataformas compatibles .
Hay documentación de Doxygen , solo ejecute doxygen doxycfg en el directorio principal y generará los documentos/ carpetas. Todos los comentarios deben ser compatibles con Doxygen y he tratado de ser lo más minucioso posible, pero aquí le daré una breve descripción de ello por el bien de la facilidad de uso.
La biblioteca está escrita en el estándar C (C99) y proporciona una funcionalidad completa del módulo RN2483.
Hay una función command que le permite escribir cualquier comando válido en el módulo (consulte la referencia de comandos para comandos válidos)
Hay un comando initMAC que utiliza configuraciones definidas en el archivo rn2483.cfg (que se escribe en config.h por makefile ) para inicializar todas las configuraciones específicas de Lorawan que necesita para conectar con éxito la red Toa Lorawan.
Además de esto, las otras funciones notables son join (unirse a una red) y tx (transmita datos a través de la red conectada), que manejan el apretón de manos de Lorawan para usted.
Nota: Estoy buscando expandir esta biblioteca en el futuro y ordenarla.
Asegúrese de verificar el archivo RN2483.CFG para configurar su configuración de Lorawan y ejecutar MakFile
La configuración dependerá de su plataforma, así que para eso consulte el ReadMe de la rama de la plataforma específica. No hay una función inicial ni nada para configurar los alfileres de los que preocuparse, todo se hace en las funciones read y write (implementadas por usted, para su USECase).
En la rama maestra , inicialmente tenía funciones printf y getc para esto (con la intención de dejar que el usuario reduzca la transmisión Stdin y Stdout o redefinir las funciones con las macros), pero después de experimentar la BBC Micro: el proceso de construcción CMake de BIT, decidí que es más fácil simplemente decidido solo usar las funciones de envoltura que están modificadas para cada plataforma.
Aparte de la configuración, el uso general debe ir:
Recuerde que puede acceder a cualquier otra funcionalidad del RN2483 a través de la función RN2483_Command ()
Ver Rama: Readme.md de Plataforma/MBIT .
He intentado modularizar los cambios necesarios para agregar una plataforma tanto como sea posible. Esto se realiza principalmente a través de las funciones de lectura/envoltorio de lectura en RN2483.C, pero si observa la rama BBC Micro: Bit, verá que en algunos casos necesitará cambiar más que esto (consulte el Readme de esa rama para más detalles).
Funciones que necesitan cambiar en rn2483.c :
Obviamente, nunca es tan simple, por lo que puede encontrarse con algunos obstáculos que requieren más modificaciones. Por ejemplo, en la rama de la plataforma/MBIT tuve que pasar alrededor de punteros al objeto serie del microbit.