LoRaRadio
Wrapper C++ pour la LMIC (LoraMAC-in-C) développée par IBM et adaptée par matthijskooijman. Fonctionne avec les puces semtech SX1272 et SX1276.
Fonctions membres publiques | Amis | Liste de tous les membres
Référence de la classe LoRaRadio

La classe LoRaRadio permet de manipuler le module radio. Plus de détails...

#include <LoRaRadio.h>

Fonctions membres publiques

 LoRaRadio (PinMap pinMap, dr_t dataRate=DR_SF7, s1_t txPower=23)
 
void init ()
 
void setTTNSession (u4_t channelId, devaddr_t deviceAddress, xref2u1_t networkSystemKey, xref2u1_t applicationSystemKey, bit_t linkCheckMode=0)
 
void setRadioEUChannels ()
 
void setMCUClockError (u2_t percent=30)
 
void send (u1_t port, uint8_t *data, uint8_t length, u1_t confirmed=false)
 
void run ()
 
void setDownlinkHandler (void(*funcP)(u1_t, u1_t, u1_t *))
 
void setSendCompleteHandler (void(*funcP)(void))
 
void disableEUChannel (u1_t channel)
 
void disableAllEUChannelsBut (u1_t channel)
 

Amis

void onEvent (ev_t ev)
 

Description détaillée

La classe LoRaRadio permet de manipuler le module radio.

Documentation des constructeurs et destructeur

◆ LoRaRadio()

LoRaRadio::LoRaRadio ( PinMap  pinMap,
dr_t  dataRate = DR_SF7,
s1_t  txPower = 23 
)

Le constructeur de la classe prend en paramètres :

Paramètres
pinMap: un objet de type PinMap créé préalablement.
dataRate: de type dr_t indiquant quel spreading factor utiliser lors des envoies de données. Les valeurs possibles : DR_SF7B, DR_SF7, DR_SF8, DR_SF9, DR_SF10, DR_SF11, DR_SF12, DR_FSK et DR_NONE. Plus le SF choisi est faible, plus le débit est élevé mais plus l'imunité face au bruit est mauvaise.
txPower: puissance d'émission comprise entre 7 et 27 inclu (à vérifier).

Documentation des fonctions membres

◆ disableAllEUChannelsBut()

void LoRaRadio::disableAllEUChannelsBut ( u1_t  channel)

Permet de désactiver tous les canaux sauf un.

Paramètres
channel: le canal à laisser actif.

◆ disableEUChannel()

void LoRaRadio::disableEUChannel ( u1_t  channel)

Permet de désactiver un canal et donc une fréquence d'envoie.

Paramètres
channel: le canal en question.

◆ init()

void LoRaRadio::init ( )

Initialise le SX127X. Cette méthode doit obligatoirement être appelée en premier.

◆ run()

void LoRaRadio::run ( )

Méthode à appeler dans la boucle principale afin que le module opère correctement.

◆ send()

void LoRaRadio::send ( u1_t  port,
uint8_t *  data,
uint8_t  length,
u1_t  confirmed = false 
)

Envoi une trame à la gateway LoRa.

Paramètres
port: port de réception de la trame dans la console TTN. Peut prendre la valeur 1,2,3,4,5...
*data: pointeur sur un tableau d'uint8_t contenant les données à envoyer. La longueur maximale des données et de 51 octets/trame quelque soit le spreading factor selectionné.
length: le nombre d'octets de données.
confirmed: demander un accusé de réception lors de l'envoi.

◆ setDownlinkHandler()

void LoRaRadio::setDownlinkHandler ( void(*)(u1_t, u1_t, u1_t *)  funcP)

Méthode qui enregistre un callback (pointeur de fonction) qui sera appelé lors de la réception d'un downlink.

Paramètres
*funcP: un pointeur sur fonction qui prend 3 paramètres. la longueur de la données reçu, l'indice de la première donnée dans le buffer et un pointeur sur le buffer.

◆ setMCUClockError()

void LoRaRadio::setMCUClockError ( u2_t  percent = 30)

Directive permettant de compenser les imprécisions dû au cristal en alongeant la fenêtre de réception. Cette méthode est à utiliser si le downlink n'est pas reçu par le noeud.

Paramètres
percent: l'erreur de précision en % à corriger.

◆ setRadioEUChannels()

void LoRaRadio::setRadioEUChannels ( )

Paramètre la radio pour utiliser les fréquences européennes comprises entre 867.1Mhz et 868.1Mhz.

◆ setSendCompleteHandler()

void LoRaRadio::setSendCompleteHandler ( void(*)(void)  funcP)

Méthode qui enregistre un callback (pointeur de fonction) qui sera appelé lorsque les donnée auront fini d'être envoyées suite à un appel à send().

Paramètres
*funcP: un pointeur sur fonction qui ne prend pas de paramètre.

◆ setTTNSession()

void LoRaRadio::setTTNSession ( u4_t  channelId,
devaddr_t  deviceAddress,
xref2u1_t  networkSystemKey,
xref2u1_t  applicationSystemKey,
bit_t  linkCheckMode = 0 
)

Permet de renseigner les informations de la session TTN à utiliser.

Paramètres
channelId: l'id du canal
deviceAddress: l'adresse unique du noeud LoRa. Information disponible dans la console TTN.
networkSystemKey: la clef de chiffrement réseau. Information disponible dans la console TTN.
applicationSystemKey: la clef de chiffrement application. Information disponible dans la console TTN.
linkCheckMode: Active ou désactive la vérification périodique du lien.

Documentation des fonctions amies et associées

◆ onEvent

void onEvent ( ev_t  ev)
friend

Définition du prototype de la fonction nécessaire au bon fonctionnement de la LMIC.


La documentation de cette classe a été générée à partir des fichiers suivants :