Une bibliothèque C intégrée indépendante de la plate-forme pour le module Micrchip RN2483 LORA.
Remarque: Ce dépôt n'est actuellement pas maintenu et a été écrit contre V1.0 de la spécification Lorawan. Considérez-le déprécié pour l'instant . Lemme savoir si tu veux
Il s'agit d'une bibliothèque C intégrée pour interagir avec le module Microchip RN2483 LORA. Il vise à être simple et modulaire (assez pour faciliter le portage sur différentes plates-formes).
L'une des principales caractéristiques de cette bibliothèque est sa portabilité. Une bibliothèque embarquée avec n'importe quelle E / S ne peut jamais être vraiment portable, de sorte que les plates-formes spécifiques sont prises en charge dans les branches séparées du référentiel. La branche principale de ce dépôt est le code de base de la plate-forme. Les branches individuelles (par exemple platform/mbit ), sont ce que vous voudrez réellement utiliser si vous essayez de le déployer pour une utilisation sur une plate-forme.
La seule fonctionnalité spécifique au matériel requise par cette bibliothèque est la possibilité de R / W sur UART au module RN2483. Par conséquent, cela est géré par un wrapper Fonctions: read et write . Dans la branche principale , celles-ci sont simplement remplies de #Error qui vous indiquent de les implémenter sur la compilation.
Pour plus de détails sur l'ajout de prise en charge d'une plate-forme spécifique, voir 6. AddingPlatForms .
Pour des exemples de support de plate-forme spécifique, voir 5. Plateformes prises en charge .
Il y a une documentation de doxygen , il suffit d'exécuter le doxygen doxyCFG dans le répertoire principal et cela générera le dossier DOCS /. Tous les commentaires devraient être compatibles au doxygen et j'ai essayé d'être aussi approfondi que possible, mais je donnerai un bref aperçu de celui-ci ici pour une facilité d'utilisation.
La bibliothèque est écrite en norme C (C99) et fournit une fonctionnalité complète du module RN2483.
Il existe une fonction command qui vous permet d'écrire n'importe quelle commande valide sur le module (voir la référence de commande pour les commandes valides)
Il existe une commande initMAC qui utilise des paramètres définis dans le fichier rn2483.cfg (qui est écrit sur config.h par makefile ) pour initialiser tous les paramètres spécifiques à Lorawan dont vous avez besoin pour connecter avec succès le réseau Lorawan.
En plus de cela, les autres fonctions notables sont join (rejoindre un réseau) et tx (transmettre des données sur le réseau connecté), qui gèrent la poignée de main Lorawan pour vous.
Remarque: je cherche à étendre cette bibliothèque à l'avenir et à la ranger.
Assurez-vous de vérifier le fichier RN2483.cfg pour configurer vos paramètres Lorawan et exécuter le makefile
La configuration va dépendre de votre plate-forme, donc pour cela, voir la lecture de la branche de la plate-forme spécifique. Il n'y a pas de fonction d'init ou quoi que ce soit pour la configuration des épingles à craindre - tout cela est fait dans les fonctions read et write (implémentées par vous, pour votre usecase).
Dans la branche principale , j'ai eu initialement des fonctions printf et getc pour cela (avec l'intention de laisser l'utilisateur rediriser le flux Stdin et STDOUT ou de redéfinir les fonctions avec des macros), mais après avoir connu le processus de construction CMake de BBC Micro: Bit, j'ai décidé qu'il était plus facile de décider simplement d'utiliser des fonctions de wrapper qui sont modifiées pour chaque plateforme.
Mis à part la configuration, l'utilisation générale devrait aller:
N'oubliez pas que vous pouvez accéder à toute autre fonctionnalité du RN2483 via la fonction RN2483_Command ()
Voir Branch: Readme.md de Platform / Mbit .
J'ai essayé de moduler les modifications nécessaires pour ajouter une plate-forme autant que possible. Cela se fait principalement via les fonctions de wrapper en lecture / écriture dans RN2483.c, mais si vous regardez la branche BBC Micro: Bit, vous verrez que dans certains cas, vous devrez changer plus que cela (voir la lecture de cette branche pour plus de détails).
Fonctions qui nécessitent un changement dans rn2483.c :
De toute évidence, ce n'est jamais aussi simple, vous pourriez donc rencontrer des barrages routiers qui nécessitent d'autres modifications. Par exemple, dans la branche de plate-forme / MBIT, j'ai dû faire passer les pointeurs vers l'objet série du microbit.