SysIo  1.9.0
Embedded Library and tools
rf69.h
1 
10 #ifndef _RF69_H_
11 #define _RF69_H_
12 
13 #include <sysio/defs.h>
14 #ifdef __cplusplus
15  extern "C" {
16 #endif
17 /* ========================================================================== */
18 #include <limits.h>
19 
86 /* constants ================================================================ */
90 #define RF69_BROADCAST_ADDR 255
91 
96 typedef enum {
97  eRf69Band315Mhz = 31,
98  eRf69Band433Mhz = 43,
99  eRf69Band868Mhz = 86,
100  eRf69Band915Mhz = 91,
101  eRf69BandUnknown = -1
102 } eRf69Band;
103 
104 
105 /* structures =============================================================== */
106 struct xRf69;
107 
114 typedef struct xRf69 xRf69;
115 
116 /* internal public functions ================================================ */
117 
126 xRf69 * xRf69New (int iBus, int iDevice, int iIrqPin);
127 
132 void vRf69Delete (xRf69 * rf);
133 
142 int iRf69Open (xRf69 * rf, eRf69Band eBand, uint8_t ucId, uint8_t ucNetId);
143 
149 int iRf69Close (xRf69 * rf);
150 
159 int iRf69ReceiveDone (xRf69 * rf);
160 
167 int iRf69AckRequested (xRf69 * rf);
168 
179 int iRf69SendAck (xRf69 * rf, const void * tx_buffer, uint8_t tx_len);
180 
186 int iRf69SenderId(xRf69 * rf);
187 
193 int iRf69TargetId(xRf69 * rf);
194 
204 int iRf69DataLength (xRf69 * rf);
205 
214 const char * sRf69Data (xRf69 * rf);
215 
223 int iRf69CanSend (xRf69 * rf);
224 
235 int iRf69Send (xRf69 * rf, uint8_t toAddress, const void* tx_buffer, uint8_t tx_len, bool bRequestACK);
236 
255 int iRf69SendWithRetry (xRf69 * rf, uint8_t toAddress,
256  const void * tx_buffer, uint8_t tx_len,
257  uint8_t retries, int retryWaitTime);
258 
271 int iRf69AckReceived (xRf69 * rf, uint8_t fromNodeId);
272 
285 int iRf69WaitAckReceived (xRf69 * rf, uint8_t fromNodeId, int timeout);
286 
294 int iRf69SetNodeId (xRf69 * rf, uint8_t ucNodeId);
295 
302 int iRf69NodeId (xRf69 * rf);
303 
311 int iRf69SetNetworkId (xRf69 * rf, uint8_t ucNetId);
312 
318 int iRf69NetworkId (xRf69 * rf);
319 
326 long lRf69Frequency (xRf69 * rf);
327 
335 int iRf69SetFrequency (xRf69 * rf, long lFreq);
336 
347 int iRf69SetHighPower (xRf69 * rf, bool bOn);
348 
355 bool bRf69isHighPower (xRf69 * rf);
356 
372 int iRf69SetPowerLevel (xRf69 * rf, int level);
373 
380 int iRf69PowerLevel (xRf69 * rf);
381 
389 int iRf69Temperature (xRf69 * rf, int iCalFactor);
390 
401 int iRf69Rssi (xRf69 * rf, bool bForceTrigger);
402 
413 int iRf69SetEncryptKey (xRf69 * rf, const char * sKey);
414 
421 int iRf69isEncrypted (xRf69 * rf);
422 
431 int iRf69SetPromiscuous (xRf69 * rf, bool bOn);
432 
443 int iRf69SetDioMapping (xRf69 * rf, uint8_t dio, uint8_t map);
444 
451 bool bRf69isPromiscuous (xRf69 * rf);
452 
462 int iRf69Sleep (xRf69 * rf);
463 
475 int iRf69RcCalibration (xRf69 * rf);
476 
481 /* ========================================================================== */
482 #ifdef __cplusplus
483  }
484 #endif
485 #endif /*_RF69_H_ defined */
int iRf69WaitAckReceived(xRf69 *rf, uint8_t fromNodeId, int timeout)
Attente de la réception d&#39;un ACK.
int iRf69PowerLevel(xRf69 *rf)
Lecture de la puissance d&#39;émission.
int iRf69Close(xRf69 *rf)
Close the input-output layer.
int iRf69SendAck(xRf69 *rf, const void *tx_buffer, uint8_t tx_len)
Envoi d&#39;un paquet ACK suite à demande AckRequested.
const char * sRf69Data(xRf69 *rf)
Données utiles (sans en-tête) du dernier message reçu.
long lRf69Frequency(xRf69 *rf)
Lecture de la fréquence d&#39;émission/réception.
bool bRf69isPromiscuous(xRf69 *rf)
Lecture du mode promiscuité
int iRf69DataLength(xRf69 *rf)
Nombre d&#39;octets du dernier message reçu.
void vRf69Delete(xRf69 *rf)
Destruction d&#39;une liaison LiveEz.
int iRf69SetFrequency(xRf69 *rf, long lFreq)
Modification de la fréquence d&#39;émission/réception.
int iRf69Send(xRf69 *rf, uint8_t toAddress, const void *tx_buffer, uint8_t tx_len, bool bRequestACK)
Transmission d&#39;un paquet.
int iRf69SenderId(xRf69 *rf)
Adresse de l&#39;émetteur du dernier message reçu.
int iRf69Sleep(xRf69 *rf)
Passage en mode sommeil.
int iRf69SetDioMapping(xRf69 *rf, uint8_t dio, uint8_t map)
Modification du mapping d&#39;une broche DIO.
xRf69 * xRf69New(int iBus, int iDevice, int iIrqPin)
Création d&#39;un objet Rfm69.
int iRf69NetworkId(xRf69 *rf)
Lecture de notre réseau.
int iRf69AckRequested(xRf69 *rf)
Indique si le dernier paquet reçu nécessite un ACK (paquet non-broadcast)
int iRf69TargetId(xRf69 *rf)
Adresse du destinataire du dernier message reçu.
int iRf69SetPromiscuous(xRf69 *rf, bool bOn)
Modification du mode promiscuité
int iRf69SetPowerLevel(xRf69 *rf, int level)
Modification de la puissance d&#39;émission.
int iRf69Rssi(xRf69 *rf, bool bForceTrigger)
Lecture du niveau de réception.
int iRf69NodeId(xRf69 *rf)
Lecture de notre identifiant.
int iRf69ReceiveDone(xRf69 *rf)
Vérifie si un paquet a été reçu.
int iRf69SetNodeId(xRf69 *rf, uint8_t ucNodeId)
Modification de notre identifiant.
Classe permettant de manipuler une liaison RFM69.
Definition: rf69.h:106
eRf69Band
Bande de fréquence.
Definition: rf69.h:96
int iRf69AckReceived(xRf69 *rf, uint8_t fromNodeId)
Vérifie la réception d&#39;un ACK.
int iRf69Temperature(xRf69 *rf, int iCalFactor)
Lecture de la température du capteur 8 bits embarqué
int iRf69RcCalibration(xRf69 *rf)
Calibrage de l&#39;oscilateur RC interne.
int iRf69CanSend(xRf69 *rf)
Vérifie si on peut émettre Si oui, passe en mode StandBy.
int iRf69SetEncryptKey(xRf69 *rf, const char *sKey)
Modification de la clé d&#39;encryptage.
bool bRf69isHighPower(xRf69 *rf)
Indique si le mode haute puissance d&#39;émission est activé
int iRf69SetHighPower(xRf69 *rf, bool bOn)
Modification du mode haute puissance d&#39;émission.
int iRf69SetNetworkId(xRf69 *rf, uint8_t ucNetId)
Modification de notre réseau.
int iRf69Open(xRf69 *rf, eRf69Band eBand, uint8_t ucId, uint8_t ucNetId)
int iRf69SendWithRetry(xRf69 *rf, uint8_t toAddress, const void *tx_buffer, uint8_t tx_len, uint8_t retries, int retryWaitTime)
Envoi d&#39;un paquet avec répétition.
int iRf69isEncrypted(xRf69 *rf)
Indique si la transmission est cryptée.