SysIo  1.9.0
Embedded Library and tools
XBee

Detailed Description

Ce module permet d'utiliser des modules XBee Série 1 et 2

Copyright © 2006-2008 Tymm Twillman tymm@.nosp@m.booy.nosp@m.aka.c.nosp@m.om

Collaboration diagram for XBee:

Modules

 Commandes XBee
 

Functions

bool bXBeePktAddressIsEqual (const uint8_t *a1, const uint8_t *a2, uint8_t len)
 Vérifie l'égalité de 2 adresses réseau de len octets.
 
eXBeeSeries eXBeeGetSeries (const xXBee *xbee)
 Retourne la série du module fournie à l'ouverture. More...
 
eXBeeDeviceType eXBeePktDeviceType (xXBeePkt *pkt)
 Type de noeud (Série 2) More...
 
eXBeeSourceEvent eXBeePktSourceEvent (xXBeePkt *pkt)
 Source de l'événement (Série 2) More...
 
int iXBeeClose (xXBee *xbee)
 Fermeture d'un module XBee. More...
 
int iXBeePktApply (xXBeePkt *pkt)
 Champs apply du paquet. More...
 
int iXBeePktDataLen (xXBeePkt *pkt)
 Nombre d'octet de données (CRC exclu) More...
 
int iXBeePktDiscovery (xXBeePkt *pkt)
 Status de découverte de paquet (Série 2) More...
 
uint8_t * iXBeePktDst16 (xXBeePkt *pkt)
 Adresse réseau 16-bits destination du paquet (Série 2) More...
 
int iXBeePktFrameId (xXBeePkt *pkt)
 Identifiant de paquet. More...
 
int iXBeePktIsBroadcast (xXBeePkt *pkt)
 Indique si le paquet est un broadcast. More...
 
int iXBeePktManufacturerId (xXBeePkt *pkt)
 Identification du fabricant du module (Série 2) More...
 
int iXBeePktOptions (xXBeePkt *pkt)
 Champs option du paquet. More...
 
int iXBeePktParamGetStr (char *pcDest, xXBeePkt *pkt, int iDestSize)
 Copie les paramètres de commande AT. More...
 
int iXBeePktParamGetUByte (uint8_t *ucDest, xXBeePkt *pkt, int iOffset)
 Copie d'un octet des paramètres de commande AT. More...
 
int iXBeePktParamGetULong (uint32_t *ulDest, xXBeePkt *pkt, int iOffset)
 Copie d'un mot long des paramètres de commande AT. More...
 
int iXBeePktParamGetULongLong (uint64_t *ullDest, xXBeePkt *pkt, int iOffset)
 Copie d'un très long mot des paramètres de commande AT. More...
 
int iXBeePktParamGetUShort (uint16_t *usDest, xXBeePkt *pkt, int iOffset)
 Copie d'un mot des paramètres de commande AT. More...
 
int iXBeePktParamLen (xXBeePkt *pkt)
 Longueur des paramètres de la commande AT. More...
 
int iXBeePktProfileId (xXBeePkt *pkt)
 Identifiant du profile Digi (Série 2) More...
 
int iXBeePktRadius (xXBeePkt *pkt)
 Champs radius du paquet (Série 2) More...
 
int iXBeePktRetry (xXBeePkt *pkt)
 Nombre de tentatives de paquet (Série 2) More...
 
int iXBeePktRssi (xXBeePkt *pkt)
 Champs rssi du paquet (Série 1) More...
 
int iXBeePktStatus (xXBeePkt *pkt)
 Status de paquet. More...
 
int iXBeePoll (xXBee *xbee, int timeout)
 Scrute le flux relié au module en attente de réception d'octet. More...
 
int iXBeeSend16 (xXBee *xbee, const void *data, uint8_t len, const uint8_t addr[2], uint8_t opt)
 Envoi d'un paquet de données à un module distant par son adresse 16-bit. More...
 
int iXBeeSend64 (xXBee *xbee, const void *data, uint8_t len, const uint8_t addr[8], uint8_t opt)
 Envoi d'un paquet de données à un module distant par son adresse 64-bit. More...
 
int iXBeeSendAt (xXBee *xbee, const char cmd[], const uint8_t *params, uint8_t param_len)
 Envoi une commande AT locale. More...
 
int iXBeeSendRemoteAt (xXBee *xbee, const char cmd[], const uint8_t params[], uint8_t param_len, const uint8_t addr64[8], const uint8_t addr16[2], uint8_t apply)
 Envoi une commande AT à un module distant. More...
 
int iXBeeZbSend (xXBee *xbee, const void *data, uint8_t len, const uint8_t addr64[8], const uint8_t addr16[2], uint8_t opt, uint8_t radius)
 Envoi d'un paquet de données à un module distant. More...
 
int iXBeeZbSendBroadcast (xXBee *xbee, const void *data, uint8_t len)
 Envoi d'un paquet de données de diffusion sur le réseau. More...
 
int iXBeeZbSendToCoordinator (xXBee *xbee, const void *data, uint8_t len)
 Envoi d'un paquet de données au coordinateur du réseau. More...
 
char * pcXBeePktCommand (xXBeePkt *pkt)
 Nom de la commande AT. More...
 
char * pcXBeePktNiString (xXBeePkt *pkt)
 Identifiant texte du noeud (Série 2) More...
 
const uint8_t * pucXBeeAddr16Unknown (void)
 Adresse 16-bits inconnue (0xFFFE) More...
 
const uint8_t * pucXBeeAddr64Broadcast (void)
 Adresse 64-bits de broadcast (0x000000000000FFFF) More...
 
const uint8_t * pucXBeeAddr64Coordinator (void)
 Adresse 64-bits du cordinateur Zigbee (0x0000000000000000) More...
 
const uint8_t * pucXBeeAddr64Unknown (void)
 Adresse 64-bits inconnue (0xFFFFFFFFFFFFFFFF) More...
 
uint8_t * pucXBeePktAddrParent16 (xXBeePkt *pkt)
 Adresse réseau 16-bits parent du paquet (Série 2) More...
 
uint8_t * pucXBeePktAddrRemote16 (xXBeePkt *pkt)
 Adresse réseau 16-bits distante du paquet (Série 2) More...
 
uint8_t * pucXBeePktAddrRemote64 (xXBeePkt *pkt)
 Adresse 64-bits distante du paquet (Série 2) More...
 
uint8_t * pucXBeePktAddrSrc16 (xXBeePkt *pkt)
 Adresse réseau 16-bits source du paquet. More...
 
uint8_t * pucXBeePktAddrSrc64 (xXBeePkt *pkt)
 Adresse 64-bits source du paquet. More...
 
uint8_t * pucXBeePktData (xXBeePkt *pkt)
 Pointeur sur les données du paquet. More...
 
uint8_t * pucXBeePktParam (xXBeePkt *pkt)
 Paramètres de la commande AT. More...
 
void * pvXBeeAllocPkt (xXBee *xbee, uint8_t direction, uint8_t len)
 Alloue la mémoire pour un paquet. More...
 
void * pvXBeeGetUserContext (xXBee *xbee)
 Renvoie le pointeur contexte utilisateur. More...
 
const char * sXBeeAssociationStatusToString (uint8_t status)
 Message explicite associé à un status d'asssociation (Commande AT AI) More...
 
const char * sXBeeModemStatusToString (uint8_t status)
 Message explicite associé à un status de modem (message 0x8A) More...
 
const char * sXBeeTransmitStatusToString (uint8_t status)
 Message explicite associé à un status de transmission (message 0x8B) More...
 
uint8_t ucXBeePktType (xXBeePkt *pkt)
 Lecture du type de paquet. More...
 
uint16_t usXBeePktLength (xXBeePkt *pkt)
 Taille du paquet en octets. More...
 
void vXBeeFreePkt (xXBee *xbee, xXBeePkt *pkt)
 Libère un paquet alloué avec pvXBeeAllocPkt() More...
 
void vXBeeSetCB (xXBee *xbee, eXBeeCbType cb_type, iXBeeRxCB cb)
 Modifie un gestionnaire de réception. More...
 
void vXBeeSetUserContext (xXBee *xbee, void *pvContext)
 Modifie le contexte utilisateur. More...
 
xXBeexXBeeOpen (const char *pcDevice, xSerialIos *xIos, eXBeeSeries series)
 Ouverture d'un module XBee. More...
 

Typedefs

typedef int(* iXBeeRxCB) (struct xXBee *xbee, struct xXBeePkt *pkt, uint8_t len)
 Prototype d'un gestionnaire de réception. More...
 
typedef struct xXBee xXBee
 Contexte d'un module XBee. More...
 
typedef struct xXBeePkt xXBeePkt
 Paquet XBee générique. More...
 

Enumerations

enum  eXBeeCbType {
  XBEE_CB_AT_LOCAL = 0, XBEE_CB_AT_REMOTE = 1, XBEE_CB_DATA = 2, XBEE_CB_IO = 3,
  XBEE_CB_TX_STATUS = 4, XBEE_CB_MODEM_STATUS = 5, XBEE_CB_SENSOR = 6, XBEE_CB_NODE_IDENT = 7,
  XBEE_CB_UNKNOWN = -1, XBEE_CB_FIRST = XBEE_CB_AT_LOCAL, XBEE_CB_LAST = XBEE_CB_NODE_IDENT
}
 Type de gestionnaire de réception. More...
 
enum  eXBeeCmdStatus {
  XBEE_PKT_STATUS_OK = 0, XBEE_PKT_STATUS_ERROR = 1, XBEE_PKT_STATUS_INVALID_COMMAND = 2, XBEE_PKT_STATUS_INVALID_PARAMETER = 3,
  XBEE_PKT_STATUS_TX_FAILURE = 4, XBEE_PKT_STATUS_UNKNOWN = -1
}
 Réponses à une commande AT.
 
enum  eXBeeDeviceType { XBEE_DEVICE_COORDINATOR = 0, XBEE_DEVICE_ROUTER = 1, XBEE_DEVICE_END_DEVICE = 2, XBEE_DEVICE_UNKNOWN = -1 }
 Type de noeud.
 
enum  eXBeeDirection { XBEE_RECV = 0x00, XBEE_XMIT = 0x01 }
 Direction d'un échange XBee. More...
 
enum  eXBeeModemStatus {
  XBEE_PKT_MODEM_HARDWARE_RESET = 0, XBEE_PKT_MODEM_WATCHDOG_TIMER_RESET = 1, XBEE_PKT_MODEM_JOINED_NETWORK = 2, XBEE_PKT_MODEM_DISASSOCIATED = 3,
  XBEE_PKT_MODEM_COORDINATOR_STARTED = 4, XBEE_PKT_MODEM_NETWORK_SECURITY_KEY_WAS_UPDATED = 7, XBEE_PKT_MODEM_VOLTAGE_SUPPLY_LIMIT_EXCEEDED = 0x0D, XBEE_PKT_MODEM_CONFIGURATION_CHANGED = 0x11,
  XBEE_PKT_MODEM_STACK_ERROR = 0x80
}
 Status Modem.
 
enum  eXBeePktType {
  XBEE_PKT_TYPE_ATCMD = 0x08, XBEE_PKT_TYPE_QATCMD = 0x09, XBEE_PKT_TYPE_REMOTE_ATCMD = 0x17, XBEE_PKT_TYPE_ATCMD_RESP = 0x88,
  XBEE_PKT_TYPE_MODEM_STATUS = 0x8a, XBEE_PKT_TYPE_REMOTE_ATCMD_RESP = 0x97, XBEE_PKT_TYPE_TX64 = 0x00, XBEE_PKT_TYPE_TX16 = 0x01,
  XBEE_PKT_TYPE_RX64 = 0x80, XBEE_PKT_TYPE_RX16 = 0x81, XBEE_PKT_TYPE_RX64_IO = 0x82, XBEE_PKT_TYPE_RX16_IO = 0x83,
  XBEE_PKT_TYPE_TX_STATUS = 0x89, XBEE_PKT_TYPE_ZB_TX_REQ = 0x10, XBEE_PKT_TYPE_ZB_CMD_FRAME = 0x11, XBEE_PKT_TYPE_ZB_TX_STATUS = 0x8b,
  XBEE_PKT_TYPE_ZB_RX = 0x90, XBEE_PKT_TYPE_ZB_RX_IO = 0x92, XBEE_PKT_TYPE_ZB_RX_SENSOR = 0x94, XBEE_PKT_TYPE_ZB_NODE_IDENT = 0x95
}
 Types de paquets géré par le module. More...
 
enum  eXBeeSeries { XBEE_SERIES_S1 = 1, XBEE_SERIES_S2 = 2, XBEE_SERIES_S2B = 3, XBEE_SERIES_UNKNOWN = -1 }
 Serie du module XBee.
 
enum  eXBeeSourceEvent { XBEE_EVENT_BUTTON = 1, XBEE_EVENT_JOIN = 2, XBEE_EVENT_POWER_ON = 3, XBEE_EVENT_UNKNOWN = -1 }
 Type de noeud.
 

Typedef Documentation

typedef int(* iXBeeRxCB) (struct xXBee *xbee, struct xXBeePkt *pkt, uint8_t len)

#include <xbee.h>

Prototype d'un gestionnaire de réception.

Parameters
xbeepointeur sur le contexte du module xbee initialisé
pktpointeur sur le paquet reçu. Après utilisation et avant de sortir, le gestionnaire installé doit libérer la mémoire de ce paquet à l'aide de vXBeeFreePkt
lentaille en octets de pkt
Returns
Si il réussit un gestionnaire doit renvoyer 0, sinon c'est une erreur

Definition at line 179 of file xbee.h.

typedef struct xXBee xXBee

#include <xbee.h>

Contexte d'un module XBee.

Cette structure est opaque pour l'utilisateur

Definition at line 165 of file xbee.h.

typedef struct xXBeePkt xXBeePkt

#include <xbee.h>

Paquet XBee générique.

Un paquet est constitué d'un entête, de données (payload) et d'un CRC

Definition at line 158 of file xbee.h.

Enumeration Type Documentation

#include <xbee.h>

Type de gestionnaire de réception.

Enumerator
XBEE_CB_AT_LOCAL 

Réception d'une réponse à une commande AT locale

XBEE_CB_AT_REMOTE 

Réception d'une réponse à une commande AT distante

XBEE_CB_DATA 

Réception d'un paquet de données venant d'un autre noeud

XBEE_CB_IO 

Réception d'un paquet de IO venant d'un autre noeud

XBEE_CB_TX_STATUS 

Réception d'une réponse suite à une transmission

XBEE_CB_MODEM_STATUS 

Réception d'un paquet d'état modem

XBEE_CB_SENSOR 

Réception d'un paquet capteur (S2 seulement)

XBEE_CB_NODE_IDENT 

Réception d'un paquet d'identification de paquet

Definition at line 184 of file xbee.h.

184  {
185  XBEE_CB_AT_LOCAL = 0,
186  XBEE_CB_AT_REMOTE = 1,
187  XBEE_CB_DATA = 2,
188  XBEE_CB_IO = 3,
189  XBEE_CB_TX_STATUS = 4,
191  XBEE_CB_SENSOR = 6,
192  XBEE_CB_NODE_IDENT = 7,
193  XBEE_CB_UNKNOWN = -1,
194  XBEE_CB_FIRST = XBEE_CB_AT_LOCAL,
195  XBEE_CB_LAST = XBEE_CB_NODE_IDENT
196 } eXBeeCbType;
eXBeeCbType
Type de gestionnaire de réception.
Definition: xbee.h:184

#include <xbee.h>

Direction d'un échange XBee.

Enumerator
XBEE_RECV 

En réception

XBEE_XMIT 

En transmission

Definition at line 268 of file xbee.h.

268  {
269 
270  XBEE_RECV = 0x00,
271  XBEE_XMIT = 0x01
eXBeeDirection
Direction d&#39;un échange XBee.
Definition: xbee.h:268

#include <xbee.h>

Types de paquets géré par le module.

Cette valeur est stockée dans le champ type de xXBeePkt

Definition at line 208 of file xbee.h.

208  {
209  /* S1 & S2 Series */
210  XBEE_PKT_TYPE_ATCMD = 0x08,
211  XBEE_PKT_TYPE_QATCMD = 0x09, /* wait til an immed param or apply cmd */
212  XBEE_PKT_TYPE_REMOTE_ATCMD = 0x17,
213  XBEE_PKT_TYPE_ATCMD_RESP = 0x88,
214  XBEE_PKT_TYPE_MODEM_STATUS = 0x8a,
215  XBEE_PKT_TYPE_REMOTE_ATCMD_RESP = 0x97,
216 
217  /* S1 Series */
218  XBEE_PKT_TYPE_TX64 = 0x00,
219  XBEE_PKT_TYPE_TX16 = 0x01,
220  XBEE_PKT_TYPE_RX64 = 0x80,
221  XBEE_PKT_TYPE_RX16 = 0x81,
222  XBEE_PKT_TYPE_RX64_IO = 0x82,
223  XBEE_PKT_TYPE_RX16_IO = 0x83,
224  XBEE_PKT_TYPE_TX_STATUS = 0x89,
225 
226  /* S2 Series */
227  XBEE_PKT_TYPE_ZB_TX_REQ = 0x10,
228  XBEE_PKT_TYPE_ZB_CMD_FRAME = 0x11, /* Not yet impl */
229  XBEE_PKT_TYPE_ZB_TX_STATUS = 0x8b,
230  XBEE_PKT_TYPE_ZB_RX = 0x90,
231  XBEE_PKT_TYPE_ZB_RX_IO = 0x92,
232  XBEE_PKT_TYPE_ZB_RX_SENSOR = 0x94,
233  XBEE_PKT_TYPE_ZB_NODE_IDENT = 0x95,
234 } eXBeePktType;
eXBeePktType
Types de paquets géré par le module.
Definition: xbee.h:208

Function Documentation

eXBeeSeries eXBeeGetSeries ( const xXBee xbee)

#include <xbee.h>

Retourne la série du module fournie à l'ouverture.

Parameters
xbeepointeur sur l'objet XBee
Returns
la série du module
eXBeeDeviceType eXBeePktDeviceType ( xXBeePkt pkt)

#include <xbee.h>

Type de noeud (Série 2)

Note
champs présent dans un paquet d'identification de noeud
Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c.
eXBeeSourceEvent eXBeePktSourceEvent ( xXBeePkt pkt)

#include <xbee.h>

Source de l'événement (Série 2)

Note
champs présent dans un paquet d'identification de noeud
Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
int iXBeeClose ( xXBee xbee)

#include <xbee.h>

Fermeture d'un module XBee.

Parameters
xbeepointeur sur l'objet XBee
Returns
0, -1 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
int iXBeePktApply ( xXBeePkt pkt)

#include <xbee.h>

Champs apply du paquet.

Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
int iXBeePktDataLen ( xXBeePkt pkt)

#include <xbee.h>

Nombre d'octet de données (CRC exclu)

Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
int iXBeePktDiscovery ( xXBeePkt pkt)

#include <xbee.h>

Status de découverte de paquet (Série 2)

Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
uint8_t* iXBeePktDst16 ( xXBeePkt pkt)

#include <xbee.h>

Adresse réseau 16-bits destination du paquet (Série 2)

Parameters
pktpointeur sur le paquet
Returns
pointeur sur l'adresse (Big Endian) ou 0 si erreur
int iXBeePktFrameId ( xXBeePkt pkt)

#include <xbee.h>

Identifiant de paquet.

Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
int iXBeePktIsBroadcast ( xXBeePkt pkt)

#include <xbee.h>

Indique si le paquet est un broadcast.

Parameters
pktpointeur sur le paquet
Returns
true ou false, -1 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
int iXBeePktManufacturerId ( xXBeePkt pkt)

#include <xbee.h>

Identification du fabricant du module (Série 2)

Note
champs présent dans un paquet d'identification de noeud
Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
int iXBeePktOptions ( xXBeePkt pkt)

#include <xbee.h>

Champs option du paquet.

Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
int iXBeePktParamGetStr ( char *  pcDest,
xXBeePkt pkt,
int  iDestSize 
)

#include <xbee.h>

Copie les paramètres de commande AT.

Le paquet transmis doit un paquet de réponse à une commande AT. Si la taille de pcDest est suffisante, un caractère null est ajouté à la fin.

Parameters
pcDestDestination de la copie
pktpointeur sur le paquet
iDestSizeTaille en caractères de la destination
Returns
Le nombre de caractères copiés, -1 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
int iXBeePktParamGetUByte ( uint8_t *  ucDest,
xXBeePkt pkt,
int  iOffset 
)

#include <xbee.h>

Copie d'un octet des paramètres de commande AT.

Parameters
ucDestoctet résultat
pktpointeur sur le paquet
iOffsetoffset de l'octet à lire (par rapport au début des paramètres)
Returns
0, -1 sur erreur
int iXBeePktParamGetULong ( uint32_t *  ulDest,
xXBeePkt pkt,
int  iOffset 
)

#include <xbee.h>

Copie d'un mot long des paramètres de commande AT.

Parameters
ulDestmot long résultat
pktpointeur sur le paquet
iOffsetoffset du mot à lire (par rapport au début des paramètres)
Returns
0, -1 sur erreur
int iXBeePktParamGetULongLong ( uint64_t *  ullDest,
xXBeePkt pkt,
int  iOffset 
)

#include <xbee.h>

Copie d'un très long mot des paramètres de commande AT.

Parameters
ullDesttrès long mot résultat
pktpointeur sur le paquet
iOffsetoffset du mot à lire (par rapport au début des paramètres)
Returns
0, -1 sur erreur
int iXBeePktParamGetUShort ( uint16_t *  usDest,
xXBeePkt pkt,
int  iOffset 
)

#include <xbee.h>

Copie d'un mot des paramètres de commande AT.

Parameters
usDestmot résultat
pktpointeur sur le paquet
iOffsetoffset du mot à lire (par rapport au début des paramètres)
Returns
0, -1 sur erreur
int iXBeePktParamLen ( xXBeePkt pkt)

#include <xbee.h>

Longueur des paramètres de la commande AT.

Parameters
pktpointeur sur le paquet
Returns
nombre d'octets de paramètre
int iXBeePktProfileId ( xXBeePkt pkt)

#include <xbee.h>

Identifiant du profile Digi (Série 2)

Note
champs présent dans un paquet d'identification de noeud
Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
int iXBeePktRadius ( xXBeePkt pkt)

#include <xbee.h>

Champs radius du paquet (Série 2)

Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
int iXBeePktRetry ( xXBeePkt pkt)

#include <xbee.h>

Nombre de tentatives de paquet (Série 2)

Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
int iXBeePktRssi ( xXBeePkt pkt)

#include <xbee.h>

Champs rssi du paquet (Série 1)

Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
int iXBeePktStatus ( xXBeePkt pkt)

#include <xbee.h>

Status de paquet.

Parameters
pktpointeur sur le paquet
Returns
la valeur ou -1 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
int iXBeePoll ( xXBee xbee,
int  timeout 
)

#include <xbee.h>

Scrute le flux relié au module en attente de réception d'octet.

Cette fonction doit être appellée dans la boucle principale aussi souvent que possible.

Warning
Il faut appeller cette fonction sinon aucune réception n'est possible.
Returns
0, -1 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
int iXBeeSend16 ( xXBee xbee,
const void *  data,
uint8_t  len,
const uint8_t  addr[2],
uint8_t  opt 
)

#include <xbee.h>

Envoi d'un paquet de données à un module distant par son adresse 16-bit.

Warning
Uniquement pour les modules de série 1.
Parameters
xbeepointeur sur le contexte
datapointeur sur les données
lenlongueur en octets des données
addradresse 64-bit du destinataire
optvoir description du paquet de type 0x10 dans le datasheet
Returns
le numéro de trame (valeur positive), une valeur négative si erreur
int iXBeeSend64 ( xXBee xbee,
const void *  data,
uint8_t  len,
const uint8_t  addr[8],
uint8_t  opt 
)

#include <xbee.h>

Envoi d'un paquet de données à un module distant par son adresse 64-bit.

Warning
Uniquement pour les modules de série 1.
Parameters
xbeepointeur sur le contexte
datapointeur sur les données
lenlongueur en octets des données
addradresse 64-bit du destinataire
optvoir description du paquet de type 0x10 dans le datasheet
Returns
le numéro de trame (valeur positive), une valeur négative si erreur
int iXBeeSendAt ( xXBee xbee,
const char  cmd[],
const uint8_t *  params,
uint8_t  param_len 
)

#include <xbee.h>

Envoi une commande AT locale.

Parameters
xbeepointeur sur le contexte
cmdcommande en ASCII (2 lettres)
paramsparamètres de la commande (dépend de la commande)
Returns
le numéro de trame (valeur positive), une valeur négative si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
int iXBeeSendRemoteAt ( xXBee xbee,
const char  cmd[],
const uint8_t  params[],
uint8_t  param_len,
const uint8_t  addr64[8],
const uint8_t  addr16[2],
uint8_t  apply 
)

#include <xbee.h>

Envoi une commande AT à un module distant.

Warning
Disponible uniquement sur module série 2 et série 1 récente
Parameters
xbeepointeur sur le contexte
cmdcommande en ASCII (2 lettres)
paramsparamètres de la commande (dépend de la commande)
addr64adresse 64-bit du destinataire
addr16adresse 16-bit du destinataire
applybooléen qui indique si la commande doit ête appliquée immédiatement par le module distant (0 pas appliquée)
Returns
le numéro de trame (valeur positive), une valeur négative si erreur
int iXBeeZbSend ( xXBee xbee,
const void *  data,
uint8_t  len,
const uint8_t  addr64[8],
const uint8_t  addr16[2],
uint8_t  opt,
uint8_t  radius 
)

#include <xbee.h>

Envoi d'un paquet de données à un module distant.

Warning
Uniquement pour les modules de série 2.
Parameters
xbeepointeur sur le contexte
datapointeur sur les données
lenlongueur en octets des données
addr64adresse 64-bit du destinataire
addr16adresse 16-bit du destinataire
optvoir description du paquet de type 0x10 dans le datasheet
radiusvoir description du paquet de type 0x10 dans le datasheet
Returns
le numéro de trame (valeur positive), une valeur négative si erreur
int iXBeeZbSendBroadcast ( xXBee xbee,
const void *  data,
uint8_t  len 
)

#include <xbee.h>

Envoi d'un paquet de données de diffusion sur le réseau.

Warning
Uniquement pour les modules de série 2.
Parameters
xbeepointeur sur le contexte
datapointeur sur les données
lenlongueur en octets des données
Returns
le numéro de trame (valeur positive), une valeur négative si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c.
int iXBeeZbSendToCoordinator ( xXBee xbee,
const void *  data,
uint8_t  len 
)

#include <xbee.h>

Envoi d'un paquet de données au coordinateur du réseau.

Warning
Uniquement pour les modules de série 2.
Parameters
xbeepointeur sur le contexte
datapointeur sur les données
lenlongueur en octets des données
Returns
le numéro de trame (valeur positive), une valeur négative si erreur
Examples:
serial/xbee-node/sysio_demo_xbee_node.c.
char* pcXBeePktCommand ( xXBeePkt pkt)

#include <xbee.h>

Nom de la commande AT.

Le nom a une longueur de 2 caractères et n'est pas terminé par un octet nul. Il est donc nécessire d'utiliser strncmp() pour faire une comparaison !

Parameters
pktpointeur sur le paquet
Returns
pointeur sur le premier octet ou 0 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
char* pcXBeePktNiString ( xXBeePkt pkt)

#include <xbee.h>

Identifiant texte du noeud (Série 2)

Note
champs présent dans un paquet d'identification de noeud
Parameters
pktpointeur sur le paquet
Returns
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c.
const uint8_t* pucXBeeAddr16Unknown ( void  )

#include <xbee.h>

Adresse 16-bits inconnue (0xFFFE)

Cette fonction simplifie l'utilisation de cette valeur pour l'appel des fonctions de transmission ou de comparaison de la bibliothèque.

const uint8_t* pucXBeeAddr64Broadcast ( void  )

#include <xbee.h>

Adresse 64-bits de broadcast (0x000000000000FFFF)

Cette fonction simplifie l'utilisation de cette valeur pour l'appel des fonctions de transmission ou de comparaison de la bibliothèque.

const uint8_t* pucXBeeAddr64Coordinator ( void  )

#include <xbee.h>

Adresse 64-bits du cordinateur Zigbee (0x0000000000000000)

Cette fonction simplifie l'utilisation de cette valeur pour l'appel des fonctions de transmission ou de comparaison de la bibliothèque.

const uint8_t* pucXBeeAddr64Unknown ( void  )

#include <xbee.h>

Adresse 64-bits inconnue (0xFFFFFFFFFFFFFFFF)

Cette fonction simplifie l'utilisation de cette valeur pour l'appel des fonctions de transmission ou de comparaison de la bibliothèque.

uint8_t* pucXBeePktAddrParent16 ( xXBeePkt pkt)

#include <xbee.h>

Adresse réseau 16-bits parent du paquet (Série 2)

Note
champs présent dans un paquet d'identification de noeud
Parameters
pktpointeur sur le paquet
Returns
pointeur sur l'adresse (Big Endian) ou 0 si erreur
uint8_t* pucXBeePktAddrRemote16 ( xXBeePkt pkt)

#include <xbee.h>

Adresse réseau 16-bits distante du paquet (Série 2)

Note
champs présent dans un paquet d'identification de noeud
Parameters
pktpointeur sur le paquet
Returns
pointeur sur l'adresse (Big Endian) ou 0 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c.
uint8_t* pucXBeePktAddrRemote64 ( xXBeePkt pkt)

#include <xbee.h>

Adresse 64-bits distante du paquet (Série 2)

Note
champs présent dans un paquet d'identification de noeud
Parameters
pktpointeur sur le paquet
Returns
pointeur sur l'adresse (Big Endian) ou 0 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c.
uint8_t* pucXBeePktAddrSrc16 ( xXBeePkt pkt)

#include <xbee.h>

Adresse réseau 16-bits source du paquet.

Parameters
pktpointeur sur le paquet
Returns
pointeur sur l'adresse (Big Endian) ou 0 si erreur
uint8_t* pucXBeePktAddrSrc64 ( xXBeePkt pkt)

#include <xbee.h>

Adresse 64-bits source du paquet.

Parameters
pktpointeur sur le paquet
Returns
pointeur sur l'adresse (Big Endian) ou 0 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
uint8_t* pucXBeePktData ( xXBeePkt pkt)

#include <xbee.h>

Pointeur sur les données du paquet.

La suite d'octets n'est pas terminée par un octet nul (mais par le CRC du paquet qui pourra être écrasé par un octet nul)

Parameters
pktpointeur sur le paquet
Returns
pointeur sur le premier octet ou 0 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
uint8_t* pucXBeePktParam ( xXBeePkt pkt)

#include <xbee.h>

Paramètres de la commande AT.

Parameters
pktpointeur sur le paquet
Returns
pointeur sur le premier octet ou 0 si erreur
void* pvXBeeAllocPkt ( xXBee xbee,
uint8_t  direction,
uint8_t  len 
)

#include <xbee.h>

Alloue la mémoire pour un paquet.

Cette fonction est utilisée par la bibliothèque pour allouer de la mémoire.
Le système d'allocation mémoire peut être adapté en fonction des besoins.
Par défaut, AvrIO utilise malloc() pour l'allocation et ne tiens pas compte de direction. Si l'utilisateur ne souhaite pas utiliser ce mécanisme, il devra réimplémenter cette fonction ainsi que vXBeeFreePkt().
Il pourra alors utiliser le paramètre direction pour différencier le mécansime d'allocation.

Parameters
xbeepointeur sur le contexte
directionpermet de diférencier le mécanisme d'allocation conforme à eXBeeDirection (inutilisé par défaut)
lentaille en octet du buffer demandé
Returns
pointeur sur le buffer alloué
void* pvXBeeGetUserContext ( xXBee xbee)

#include <xbee.h>

Renvoie le pointeur contexte utilisateur.

Le contexte xbee dispose d'un pointeur void * permettant à l'utilisateur d'y attacher des donnnées spécifiques.

Parameters
xbeepointeur sur l'objet XBee
Returns
pointeur sur le contexte utilisateur
const char* sXBeeAssociationStatusToString ( uint8_t  status)

#include <xbee.h>

Message explicite associé à un status d'asssociation (Commande AT AI)

Parameters
statusstatus
Returns
message
const char* sXBeeModemStatusToString ( uint8_t  status)

#include <xbee.h>

Message explicite associé à un status de modem (message 0x8A)

Parameters
statusstatus
Returns
message
const char* sXBeeTransmitStatusToString ( uint8_t  status)

#include <xbee.h>

Message explicite associé à un status de transmission (message 0x8B)

Parameters
statusstatus
Returns
message
uint8_t ucXBeePktType ( xXBeePkt pkt)

#include <xbee.h>

Lecture du type de paquet.

Conforme à eXBeePktType

uint16_t usXBeePktLength ( xXBeePkt pkt)

#include <xbee.h>

Taille du paquet en octets.

Cette valeur correspond au champs length de la trame, cette taille est donc comprise entre les champs length et crc exclus.

void vXBeeFreePkt ( xXBee xbee,
xXBeePkt pkt 
)

#include <xbee.h>

Libère un paquet alloué avec pvXBeeAllocPkt()

Par défaut, AvrIO utilise free(). Si l'utilisateur ne souhaite pas utiliser ce mécanisme, il devra réimplémenter cette fonction ainsi que pvXBeeAllocPkt().

Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
void vXBeeSetCB ( xXBee xbee,
eXBeeCbType  cb_type,
iXBeeRxCB  cb 
)

#include <xbee.h>

Modifie un gestionnaire de réception.

Cette bibliothèque gère la réception de tous les types de paquets énumérés par eXBeePktType. Cette fonction permet à l'utilisateur d'installer ces propres fonctions gérant chaque événement.
Si un paquet est reçu et qu'il n'y a pas de gestionnaire correspondant à son type, il est tout simplement détruit.

Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.
void vXBeeSetUserContext ( xXBee xbee,
void *  pvContext 
)

#include <xbee.h>

Modifie le contexte utilisateur.

Le contexte xbee dispose d'un pointeur void * permettant à l'utilisateur d'y attacher des donnnées spécifiques.

Parameters
xbeepointeur sur l'objet XBee
pvContextcontexte de l'utilisateur
Returns
pointeur sur le contexte utilisateur
xXBee* xXBeeOpen ( const char *  pcDevice,
xSerialIos xIos,
eXBeeSeries  series 
)

#include <xbee.h>

Ouverture d'un module XBee.

Cette fonction doit être appellée avant toute utilisation du contexte xbee.

Parameters
seriesModèle du module utilisé
fddescripteur de fichier du port série ouvert en lecture-écriture connecté au module XBee, doit être ouvert en mode non-bloquant.
Returns
0, -1 si erreur
Examples:
serial/xbee-coordinator/sysio_demo_xbee_coordinator.c, and serial/xbee-node/sysio_demo_xbee_node.c.