Eine plattformunabhängige eingebettete C-Bibliothek für das Micchip RN2483 LORA-Modul.
Hinweis: Dieses Repo ist derzeit nicht aufrechterhalten und wurde gegen V1.0 der Lorawan -Spezifikation geschrieben. Betrachten Sie es vorerst abgeschrieben. Lemme weiß, ob du willst
Dies ist eine eingebettete C -Bibliothek für die Interaktion mit dem Microchip RN2483 LORA -Modul. Ziel ist es, einfach und modular zu sein (genug, um das Portieren auf verschiedenen Plattformen einfach zu machen).
Eine der Hauptmerkmale dieser Bibliothek ist die Portabilität. Eine eingebettete Bibliothek mit E/A kann niemals wirklich tragbar sein, sodass bestimmte Plattformen in separaten Zweigen des Repositorys unterstützt werden. Der Master- Zweig dieses Repo ist der kernplattformunabhängige Code. Die einzelnen Zweige (z. B. platform/mbit ) sind das, was Sie tatsächlich verwenden möchten, wenn Sie versuchen, dies für die Verwendung auf einer Plattform bereitzustellen.
Die einzige hardwarespezifische Funktionalität, die von dieser Bibliothek wiedergegeben wird, ist die Fähigkeit, R/W über UART zum RN2483-Modul zu räumen. Infolgedessen wird dies von einem Wrapper -Funktionen behandelt: read und write . In der Master -Zweigstelle sind diese einfach mit #Error gefüllt, die Sie bei der Zusammenstellung implementieren sollen.
Weitere Informationen zum Hinzufügen von Unterstützung für eine bestimmte Plattform finden Sie unter 6. Addplatformen .
Beispiele für spezifische Plattformunterstützung finden Sie unter 5 unterstützten Plattformen .
Es gibt Doxygen -Dokumentation , führen Sie Doxygen Doxycfg im Hauptverzeichnis aus und generieren den DOCS/ den Ordner. Alle Kommentare sollten Doxygen-kompatibel sein und ich habe versucht, so gründlich wie möglich zu sein, aber ich werde hier einen kurzen Überblick darüber geben, um die Nutzung zugänglich zu machen.
Die Bibliothek ist in Standard C (C99) geschrieben und bietet die volle Funktionalität des RN2483 -Moduls.
Es gibt eine command , mit der Sie einen beliebigen gültigen Befehl in das Modul schreiben können (siehe Befehlsreferenz für gültige Befehle).
Es gibt einen initMAC Befehl, der Einstellungen verwendet, die in der rn2483.cfg Datei (die von Makefile in config.h geschrieben werden) alle Lorawan-spezifischen Einstellungen, die Sie benötigen, um das Toa Lorawan-Netzwerk erfolgreich anzustellen, initialisieren.
Abgesehen davon sind die anderen bemerkenswerten Funktionen join (Join a Network) und tx (Daten über verbundenes Netzwerk übertragen), die den Lorawan -Handshake für Sie verarbeiten.
Hinweis: Ich möchte diese Bibliothek in Zukunft erweitern und sie aufräumen.
Überprüfen Sie die RN2483.CFG
Das Setup hängt von Ihrer Plattform ab. Daher sehen Sie die Readme der spezifischen Plattform. Es gibt keine Init -Funktion oder irgendetwas, um die Pins zu erstellen, über die man sich Sorgen machen soll - das ist alles in den read und write (von Ihnen implementiert, für Ihre Usecase).
In der Master -Niederlassung hatte ich zunächst printf und getc -Funktionen dafür ( mit der Absicht, den Benutzer den Stdin- und Stdout -Stream umzuleiten oder die Funktionen mit Makros neu zu definieren).
Abgesehen vom Setup sollte die allgemeine Verwendung gehen:
Denken Sie daran, dass Sie über die Funktion RN2483_Command () auf jede andere Funktionalität des RN2483 zugreifen können
Siehe Branch: Plattform/Mbit von Readme.md.
Ich habe versucht, die Änderungen zu modularisieren, die erforderlich sind, um eine Plattform so weit wie möglich hinzuzufügen. Dies geschieht hauptsächlich über die Lesen/Schreib -Wrapper -Funktionen in RN2483.C. Wenn Sie sich jedoch das BBC Micro: Bit -Zweig ansehen, werden Sie in einigen Fällen mehr ändern (siehe die Readme dieses Zweigs für Details).
Funktionen, die sich in rn2483.c ändern müssen :
Offensichtlich ist es nie so einfach, also könnten Sie auf einige Straßensperren stoßen, die weitere Änderungen erfordern. Zum Beispiel musste ich in der Plattform-/Mbit -Zweigstelle Zeiger an das Serienobjekt des Mikrobits weitergeben.