AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Modules XBee série 1 et 2

Description détaillée

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

Graphe de collaboration de Modules XBee série 1 et 2:

Modules

 Commandes XBee
 

Fonctions

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. Plus de détails...
 
eXBeeDeviceType eXBeePktDeviceType (xXBeePkt *pkt)
 Type de noeud (Série 2) Plus de détails...
 
eXBeeSourceEvent eXBeePktSourceEvent (xXBeePkt *pkt)
 Source de l'événement (Série 2) Plus de détails...
 
int iXBeeClose (xXBee *xbee)
 Fermeture d'un module XBee. Plus de détails...
 
int iXBeeOpen (xXBee *xbee, const char *pcDevice, xSerialIos *xIos)
 Ouverture d'un module XBee. Plus de détails...
 
int iXBeePktApply (xXBeePkt *pkt)
 Champs apply du paquet. Plus de détails...
 
int iXBeePktDataLen (xXBeePkt *pkt)
 Nombre d'octet de données (CRC exclu) Plus de détails...
 
int iXBeePktDiscovery (xXBeePkt *pkt)
 Status de découverte de paquet (Série 2) Plus de détails...
 
uint8_t * iXBeePktDst16 (xXBeePkt *pkt)
 Adresse réseau 16-bits destination du paquet (Série 2) Plus de détails...
 
int iXBeePktFrameId (xXBeePkt *pkt)
 Identifiant de paquet. Plus de détails...
 
int iXBeePktIsBroadcast (xXBeePkt *pkt)
 Indique si le paquet est un broadcast. Plus de détails...
 
int iXBeePktManufacturerId (xXBeePkt *pkt)
 Identification du fabricant du module (Série 2) Plus de détails...
 
int iXBeePktOptions (xXBeePkt *pkt)
 Champs option du paquet. Plus de détails...
 
int iXBeePktParamGetStr (char *pcDest, xXBeePkt *pkt, int iDestSize)
 Copie les paramètres de commande AT. Plus de détails...
 
int iXBeePktParamGetUByte (uint8_t *ucDest, xXBeePkt *pkt, int iOffset)
 Copie d'un octet des paramètres de commande AT. Plus de détails...
 
int iXBeePktParamGetULong (uint32_t *ulDest, xXBeePkt *pkt, int iOffset)
 Copie d'un mot long des paramètres de commande AT. Plus de détails...
 
int iXBeePktParamGetULongLong (uint64_t *ullDest, xXBeePkt *pkt, int iOffset)
 Copie d'un très long mot des paramètres de commande AT. Plus de détails...
 
int iXBeePktParamGetUShort (uint16_t *usDest, xXBeePkt *pkt, int iOffset)
 Copie d'un mot des paramètres de commande AT. Plus de détails...
 
int iXBeePktParamLen (xXBeePkt *pkt)
 Longueur des paramètres de la commande AT. Plus de détails...
 
int iXBeePktProfileId (xXBeePkt *pkt)
 Identifiant du profile Digi (Série 2) Plus de détails...
 
int iXBeePktRadius (xXBeePkt *pkt)
 Champs radius du paquet (Série 2) Plus de détails...
 
int iXBeePktRetry (xXBeePkt *pkt)
 Nombre de tentatives de paquet (Série 2) Plus de détails...
 
int iXBeePktRssi (xXBeePkt *pkt)
 Champs rssi du paquet (Série 1) Plus de détails...
 
int iXBeePktStatus (xXBeePkt *pkt)
 Status de paquet. Plus de détails...
 
int iXBeePoll (xXBee *xbee, int timeout)
 Scrute le flux relié au module en attente de réception d'octet. Plus de détails...
 
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. Plus de détails...
 
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. Plus de détails...
 
int iXBeeSendAt (xXBee *xbee, const char cmd[], const uint8_t *params, uint8_t param_len)
 Envoi une commande AT locale. Plus de détails...
 
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. Plus de détails...
 
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. Plus de détails...
 
int iXBeeZbSendBroadcast (xXBee *xbee, const void *data, uint8_t len)
 Envoi d'un paquet de données de diffusion sur le réseau. Plus de détails...
 
int iXBeeZbSendToCoordinator (xXBee *xbee, const void *data, uint8_t len)
 Envoi d'un paquet de données au coordinateur du réseau. Plus de détails...
 
char * pcXBeePktCommand (xXBeePkt *pkt)
 Nom de la commande AT. Plus de détails...
 
char * pcXBeePktNiString (xXBeePkt *pkt)
 Identifiant texte du noeud (Série 2) Plus de détails...
 
const uint8_t * pucXBeeAddr16Unknown (void)
 Adresse 16-bits inconnue (0xFFFE) Plus de détails...
 
const uint8_t * pucXBeeAddr64Broadcast (void)
 Adresse 64-bits de broadcast (0x000000000000FFFF) Plus de détails...
 
const uint8_t * pucXBeeAddr64Coordinator (void)
 Adresse 64-bits du cordinateur Zigbee (0x0000000000000000) Plus de détails...
 
const uint8_t * pucXBeeAddr64Unknown (void)
 Adresse 64-bits inconnue (0xFFFFFFFFFFFFFFFF) Plus de détails...
 
uint8_t * pucXBeePktAddrParent16 (xXBeePkt *pkt)
 Adresse réseau 16-bits parent du paquet (Série 2) Plus de détails...
 
uint8_t * pucXBeePktAddrRemote16 (xXBeePkt *pkt)
 Adresse réseau 16-bits distante du paquet (Série 2) Plus de détails...
 
uint8_t * pucXBeePktAddrRemote64 (xXBeePkt *pkt)
 Adresse 64-bits distante du paquet (Série 2) Plus de détails...
 
uint8_t * pucXBeePktAddrSrc16 (xXBeePkt *pkt)
 Adresse réseau 16-bits source du paquet. Plus de détails...
 
uint8_t * pucXBeePktAddrSrc64 (xXBeePkt *pkt)
 Adresse 64-bits source du paquet. Plus de détails...
 
uint8_t * pucXBeePktData (xXBeePkt *pkt)
 Pointeur sur les données du paquet. Plus de détails...
 
uint8_t * pucXBeePktParam (xXBeePkt *pkt)
 Paramètres de la commande AT. Plus de détails...
 
void * pvXBeeAllocPkt (xXBee *xbee, uint8_t direction, uint8_t len)
 Alloue la mémoire pour un paquet. Plus de détails...
 
void * pvXBeeGetUserContext (xXBee *xbee)
 Renvoie le pointeur contexte utilisateur. Plus de détails...
 
uint8_t ucXBeePktType (xXBeePkt *pkt)
 Lecture du type de paquet. Plus de détails...
 
uint16_t usXBeePktLength (xXBeePkt *pkt)
 Taille du paquet en octets. Plus de détails...
 
void vXBeeFreePkt (xXBee *xbee, xXBeePkt *pkt)
 Libère un paquet alloué avec pvXBeeAllocPkt() Plus de détails...
 
void vXBeeSetCB (xXBee *xbee, eXBeeCbType cb_type, iXBeeRxCB cb)
 Modifie un gestionnaire de réception. Plus de détails...
 
void vXBeeSetUserContext (xXBee *xbee, void *pvContext)
 Modifie le contexte utilisateur. Plus de détails...
 
xXBeexXBeeNew (eXBeeSeries eSeries, xDPin *xResetPin)
 Création d'un nouvel objet XBee Si xResetPin est fournie, la broche RESET est affirmée à l'état bas. Plus de détails...
 

Définitions de type

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

Énumérations

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. Plus de détails...
 
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. Plus de détails...
 
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. Plus de détails...
 
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.
 

Documentation des définitions de type

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

Prototype d'un gestionnaire de réception.

Paramètres
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
Renvoie
Si il réussit un gestionnaire doit renvoyer 0, sinon c'est une erreur

Définition à la ligne 73 du fichier xbee.h.

typedef struct _xXBee xXBee

Contexte d'un module XBee.

Cette structure est opaque pour l'utilisateur

Définition à la ligne 59 du fichier xbee.h.

typedef struct _xXBeePkt xXBeePkt

Paquet XBee générique.

Un paquet est constitué d'un entête, de données (payload) et d'un CRC. Cette structure est opaque pour l'utilisateur

Définition à la ligne 52 du fichier xbee.h.

Documentation du type de l'énumération

Type de gestionnaire de réception.

Valeurs énumérées
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

Définition à la ligne 78 du fichier xbee.h.

78  {
79  XBEE_CB_AT_LOCAL = 0,
80  XBEE_CB_AT_REMOTE = 1,
81  XBEE_CB_DATA = 2,
82  XBEE_CB_IO = 3,
83  XBEE_CB_TX_STATUS = 4,
85  XBEE_CB_SENSOR = 6,
86  XBEE_CB_NODE_IDENT = 7,
87  XBEE_CB_UNKNOWN = -1,
88  XBEE_CB_FIRST = XBEE_CB_AT_LOCAL,
89  XBEE_CB_LAST = XBEE_CB_NODE_IDENT
90 } eXBeeCbType;
eXBeeCbType
Type de gestionnaire de réception.
Definition: xbee.h:78

Direction d'un échange XBee.

Valeurs énumérées
XBEE_RECV 

En réception

XBEE_XMIT 

En transmission

Définition à la ligne 162 du fichier xbee.h.

162  {
163 
164  XBEE_RECV = 0x00,
165  XBEE_XMIT = 0x01
eXBeeDirection
Direction d'un échange XBee.
Definition: xbee.h:162

Types de paquets géré par le module.

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

Définition à la ligne 102 du fichier xbee.h.

102  {
103  /* S1 & S2 Series */
104  XBEE_PKT_TYPE_ATCMD = 0x08,
105  XBEE_PKT_TYPE_QATCMD = 0x09, /* wait til an immed param or apply cmd */
106  XBEE_PKT_TYPE_REMOTE_ATCMD = 0x17,
107  XBEE_PKT_TYPE_ATCMD_RESP = 0x88,
108  XBEE_PKT_TYPE_MODEM_STATUS = 0x8a,
109  XBEE_PKT_TYPE_REMOTE_ATCMD_RESP = 0x97,
110 
111  /* S1 Series */
112  XBEE_PKT_TYPE_TX64 = 0x00,
113  XBEE_PKT_TYPE_TX16 = 0x01,
114  XBEE_PKT_TYPE_RX64 = 0x80,
115  XBEE_PKT_TYPE_RX16 = 0x81,
116  XBEE_PKT_TYPE_RX64_IO = 0x82,
117  XBEE_PKT_TYPE_RX16_IO = 0x83,
118  XBEE_PKT_TYPE_TX_STATUS = 0x89,
119 
120  /* S2 Series */
121  XBEE_PKT_TYPE_ZB_TX_REQ = 0x10,
122  XBEE_PKT_TYPE_ZB_CMD_FRAME = 0x11, /* Not yet impl */
123  XBEE_PKT_TYPE_ZB_TX_STATUS = 0x8b,
124  XBEE_PKT_TYPE_ZB_RX = 0x90,
125  XBEE_PKT_TYPE_ZB_RX_IO = 0x92,
126  XBEE_PKT_TYPE_ZB_RX_SENSOR = 0x94,
127  XBEE_PKT_TYPE_ZB_NODE_IDENT = 0x95,
128 } eXBeePktType;
eXBeePktType
Types de paquets géré par le module.
Definition: xbee.h:102

Documentation des fonctions

eXBeeSeries eXBeeGetSeries ( const xXBee xbee)

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

Paramètres
xbeepointeur sur l'objet XBee
Renvoie
la série du module
eXBeeDeviceType eXBeePktDeviceType ( xXBeePkt pkt)

Type de noeud (Série 2)

Note
champs présent dans un paquet d'identification de noeud
Paramètres
pktpointeur sur le paquet
Renvoie
la valeur ou -1 si erreur
eXBeeSourceEvent eXBeePktSourceEvent ( xXBeePkt pkt)

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

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

Fermeture d'un module XBee.

La mémoire allouée à l'objet XBee n'est pas libérée.

Paramètres
xbeepointeur sur l'objet XBee
Renvoie
0, -1 si erreur
int iXBeeOpen ( xXBee xbee,
const char *  pcDevice,
xSerialIos xIos 
)

Ouverture d'un module XBee.

Cette fonction doit être appellée avant toute utilisation de l'objet XBee Le port série sera ouvert en lecture-écriture en mode non-bloquant. Si xResetPin a été fournie lors de la création, la broche RESET sera relâchée.

Paramètres
xbeepointeur sur l'objet XBee
pcDevicenom du port série utilisé (tty0, tty1 ...)
xIosconfiguration du port série (et du module...), le champ eol est modifié à SERIAL_BINARY
Renvoie
0, -1 si erreur
int iXBeePktApply ( xXBeePkt pkt)

Champs apply du paquet.

Paramètres
pktpointeur sur le paquet
Renvoie
la valeur ou -1 si erreur
int iXBeePktDataLen ( xXBeePkt pkt)

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

Paramètres
pktpointeur sur le paquet
Renvoie
la valeur ou -1 si erreur
int iXBeePktDiscovery ( xXBeePkt pkt)

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

Paramètres
pktpointeur sur le paquet
Renvoie
la valeur ou -1 si erreur
uint8_t* iXBeePktDst16 ( xXBeePkt pkt)

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

Paramètres
pktpointeur sur le paquet
Renvoie
pointeur sur l'adresse (Big Endian) ou 0 si erreur
int iXBeePktFrameId ( xXBeePkt pkt)

Identifiant de paquet.

Paramètres
pktpointeur sur le paquet
Renvoie
la valeur ou -1 si erreur
int iXBeePktIsBroadcast ( xXBeePkt pkt)

Indique si le paquet est un broadcast.

Paramètres
pktpointeur sur le paquet
Renvoie
true ou false, -1 si erreur
int iXBeePktManufacturerId ( xXBeePkt pkt)

Identification du fabricant du module (Série 2)

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

Champs option du paquet.

Paramètres
pktpointeur sur le paquet
Renvoie
la valeur ou -1 si erreur
int iXBeePktParamGetStr ( char *  pcDest,
xXBeePkt pkt,
int  iDestSize 
)

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.

Paramètres
pcDestDestination de la copie
pktpointeur sur le paquet
iDestSizeTaille en caractères de la destination
Renvoie
Le nombre de caractères copiés, -1 si erreur
int iXBeePktParamGetUByte ( uint8_t *  ucDest,
xXBeePkt pkt,
int  iOffset 
)

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

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

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

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

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

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

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

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

Longueur des paramètres de la commande AT.

Paramètres
pktpointeur sur le paquet
Renvoie
nombre d'octets de paramètre
int iXBeePktProfileId ( xXBeePkt pkt)

Identifiant du profile Digi (Série 2)

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

Champs radius du paquet (Série 2)

Paramètres
pktpointeur sur le paquet
Renvoie
la valeur ou -1 si erreur
int iXBeePktRetry ( xXBeePkt pkt)

Nombre de tentatives de paquet (Série 2)

Paramètres
pktpointeur sur le paquet
Renvoie
la valeur ou -1 si erreur
int iXBeePktRssi ( xXBeePkt pkt)

Champs rssi du paquet (Série 1)

Paramètres
pktpointeur sur le paquet
Renvoie
la valeur ou -1 si erreur
int iXBeePktStatus ( xXBeePkt pkt)

Status de paquet.

Paramètres
pktpointeur sur le paquet
Renvoie
la valeur ou -1 si erreur
int iXBeePoll ( xXBee xbee,
int  timeout 
)

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.

Avertissement
Il faut appeller cette fonction sinon aucune réception n'est possible.
Renvoie
0, -1 si erreur
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.

Avertissement
Uniquement pour les modules de série 1.
Paramètres
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
Renvoie
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 
)

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

Avertissement
Uniquement pour les modules de série 1.
Paramètres
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
Renvoie
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 
)

Envoi une commande AT locale.

Paramètres
xbeepointeur sur le contexte
cmdcommande en ASCII (2 lettres)
paramsparamètres de la commande (dépend de la commande)
Renvoie
le numéro de trame (valeur positive), une valeur négative si erreur
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.

Avertissement
Disponible uniquement sur module série 2 et série 1 récente
Paramètres
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)
Renvoie
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 
)

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

Avertissement
Uniquement pour les modules de série 2.
Paramètres
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
Renvoie
le numéro de trame (valeur positive), une valeur négative si erreur
int iXBeeZbSendBroadcast ( xXBee xbee,
const void *  data,
uint8_t  len 
)

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

Avertissement
Uniquement pour les modules de série 2.
Paramètres
xbeepointeur sur le contexte
datapointeur sur les données
lenlongueur en octets des données
Renvoie
le numéro de trame (valeur positive), une valeur négative si erreur
int iXBeeZbSendToCoordinator ( xXBee xbee,
const void *  data,
uint8_t  len 
)

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

Avertissement
Uniquement pour les modules de série 2.
Paramètres
xbeepointeur sur le contexte
datapointeur sur les données
lenlongueur en octets des données
Renvoie
le numéro de trame (valeur positive), une valeur négative si erreur
char* pcXBeePktCommand ( xXBeePkt pkt)

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 !

Paramètres
pktpointeur sur le paquet
Renvoie
pointeur sur le premier octet ou 0 si erreur
char* pcXBeePktNiString ( xXBeePkt pkt)

Identifiant texte du noeud (Série 2)

Note
champs présent dans un paquet d'identification de noeud
Paramètres
pktpointeur sur le paquet
Renvoie
const uint8_t* pucXBeeAddr16Unknown ( void  )

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  )

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  )

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  )

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)

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

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

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

Note
champs présent dans un paquet d'identification de noeud
Paramètres
pktpointeur sur le paquet
Renvoie
pointeur sur l'adresse (Big Endian) ou 0 si erreur
uint8_t* pucXBeePktAddrRemote64 ( xXBeePkt pkt)

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

Note
champs présent dans un paquet d'identification de noeud
Paramètres
pktpointeur sur le paquet
Renvoie
pointeur sur l'adresse (Big Endian) ou 0 si erreur
uint8_t* pucXBeePktAddrSrc16 ( xXBeePkt pkt)

Adresse réseau 16-bits source du paquet.

Paramètres
pktpointeur sur le paquet
Renvoie
pointeur sur l'adresse (Big Endian) ou 0 si erreur
uint8_t* pucXBeePktAddrSrc64 ( xXBeePkt pkt)

Adresse 64-bits source du paquet.

Paramètres
pktpointeur sur le paquet
Renvoie
pointeur sur l'adresse (Big Endian) ou 0 si erreur
uint8_t* pucXBeePktData ( xXBeePkt pkt)

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)

Paramètres
pktpointeur sur le paquet
Renvoie
pointeur sur le premier octet ou 0 si erreur
uint8_t* pucXBeePktParam ( xXBeePkt pkt)

Paramètres de la commande AT.

Paramètres
pktpointeur sur le paquet
Renvoie
pointeur sur le premier octet ou 0 si erreur
void* pvXBeeAllocPkt ( xXBee xbee,
uint8_t  direction,
uint8_t  len 
)

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.

Paramètres
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é
Renvoie
pointeur sur le buffer alloué
void* pvXBeeGetUserContext ( xXBee xbee)

Renvoie le pointeur contexte utilisateur.

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

Paramètres
xbeepointeur sur l'objet XBee
Renvoie
pointeur sur le contexte utilisateur
uint8_t ucXBeePktType ( xXBeePkt pkt)

Lecture du type de paquet.

Conforme à eXBeePktType

uint16_t usXBeePktLength ( xXBeePkt pkt)

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 
)

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().

void vXBeeSetCB ( xXBee xbee,
eXBeeCbType  cb_type,
iXBeeRxCB  cb 
)

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.

void vXBeeSetUserContext ( xXBee xbee,
void *  pvContext 
)

Modifie le contexte utilisateur.

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

Paramètres
xbeepointeur sur l'objet XBee
pvContextcontexte de l'utilisateur
Renvoie
pointeur sur le contexte utilisateur
xXBee* xXBeeNew ( eXBeeSeries  eSeries,
xDPin xResetPin 
)

Création d'un nouvel objet XBee Si xResetPin est fournie, la broche RESET est affirmée à l'état bas.

Paramètres
eSeriessérie du module utilisé
xResetPinbroche de RESET du module XBee, NULL si non connectée
Renvoie
objet initialisé, NULL si erreur