AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Capteur WirelessUSB iDwaRF

Description détaillée

Implémente l'interface logicielle (API) permettant de gérer un capteur WirelessUSB. Cette interface se résume essentiellement à 4 fonctions de gestion que l'utilisateur doit implémenté lui-même :

Une fois l'initialisation effectuée à l'aide de rfInit(), l'utilisateur doit enregistrer ses fonctions de gestion à l'aide des fonctions d'enregistrement ci-dessous puis appeler le plus régulièrement possible rfProcessAll() dans la boucle infinie du programme principal.

Graphe de collaboration de Capteur WirelessUSB iDwaRF:
typedef void(* CBUSERCONFIGFORSLEEP) (U16 *)
 Type de fonction de gestion de mise en sommeil. Plus de détails...
 
typedef void(* CBUSEREXITFROMSLEEP) (void)
 Type de fonction de gestion de réveil. Plus de détails...
 
typedef void(* CBUSERBACKCHANNELPROCESS) (U8, U8 *, U8)
 Type de fonction de gestion de réception. Plus de détails...
 
typedef U8(* CBUSERTXPROCESS) (volatile U8 *)
 Type de fonction de gestion de transmission. Plus de détails...
 
void cbConfigForSleep (U16 *sampleInterval)
 Exemple de fonction utilisateur de gestion du passage en sommeil. Plus de détails...
 
void cbExitFromSleep (void)
 Exemple de fonction utilisateur de gestion du reveil. Plus de détails...
 
void cbBackchannelProcess (U8 userdata, U8 *buf, U8 length)
 Exemple de fonction utilisateur de gestion des données reçues du hub. Plus de détails...
 
U8 cbTxProcess (volatile U8 *pTxData)
 Exemple de fonction utilisateur de transmission de données. Plus de détails...
 
void rfRegisterCBUserConfigForSleep (CBUSERCONFIGFORSLEEP cbcfs)
 Enregistre la fonction de gestion de mise en sommeil. Plus de détails...
 
void rfRegisterCBUserExitFromSleep (CBUSEREXITFROMSLEEP cbefs)
 Enregistre la fonction de gestion de reveil. Plus de détails...
 
void rfRegisterCBUserBackchannelProcess (CBUSERBACKCHANNELPROCESS cbbcp)
 Enregistre la fonction de gestion de réception. Plus de détails...
 
void rfRegisterCBUserTxProcess (CBUSERTXPROCESS cbtxp)
 Enregistre la fonction de gestion de transmission. Plus de détails...
 
void rfPowerDown (void)
 Endors le circuit CYPRESS WirelessUSB. Plus de détails...
 

Documentation des définitions de type

typedef void(* CBUSERBACKCHANNELPROCESS) (U8, U8 *, U8)

Type de fonction de gestion de réception.

Permet de simplifier la déclaration de la fonction d'enregistrement.

Définition à la ligne 153 du fichier idwarf/sensor.h.

typedef void(* CBUSERCONFIGFORSLEEP) (U16 *)

Type de fonction de gestion de mise en sommeil.

Permet de simplifier la déclaration de la fonction d'enregistrement.

Définition à la ligne 137 du fichier idwarf/sensor.h.

typedef void(* CBUSEREXITFROMSLEEP) (void)

Type de fonction de gestion de réveil.

Permet de simplifier la déclaration de la fonction d'enregistrement.

Définition à la ligne 145 du fichier idwarf/sensor.h.

typedef U8(* CBUSERTXPROCESS) (volatile U8 *)

Type de fonction de gestion de transmission.

Permet de simplifier la déclaration de la fonction d'enregistrement.

Définition à la ligne 161 du fichier idwarf/sensor.h.

Documentation des fonctions

void cbBackchannelProcess ( U8  userdata,
U8 buf,
U8  length 
)

Exemple de fonction utilisateur de gestion des données reçues du hub.

Appelée lorsque des données provenant du hub ont été reçues dans le canal de retour. Ces données servent par exemple à modifier un signal E/S dans le capteur ou à engendrer une tension analogique par PWM.
L'exemple "terminal" allume la LED quand des données sont reçues. Cette fonction doit être enregistrée avec rfRegisterCBUserBackchannelProcess().

Paramètres
userdataUne valeur entre 0 et 31 envoyée par le hub
bufPointeur sur le buffer où sont les données reçues du hub
lengthNombre d'octets stockés dans le buffer
void cbConfigForSleep ( U16 sampleInterval)

Exemple de fonction utilisateur de gestion du passage en sommeil.

Appelée juste avant que le capteur passe en mode PowerDown. Cette fonction permet par exemple de désactiver des capteurs locaux pour réduire la consommation durant la période PowerDown.
Cette fonction doit être enregistrée avec rfRegisterCBUserConfigForSleep().

Paramètres
sampleIntervalPointeur sur le nombre de tranches de temps de 125 ms de sommeil que le firmware va effectuer. Cette valeur peut être modifiée pour réduire ou augmenter le temps de sommeil. Il est possible de désactiver le sommeil en mettant sampleInterval à zéro.
void cbExitFromSleep ( void  )

Exemple de fonction utilisateur de gestion du reveil.

Appelée après le retour du capteur du mode PowerDown. Cette fonction permet par exemple de réactiver des capteurs locaux.
Cette fonction doit être enregistrée avec rfRegisterCBUserExitFromSleep()

U8 cbTxProcess ( volatile U8 pTxData)

Exemple de fonction utilisateur de transmission de données.

Assemble les données à envoyer au hub. Cette fonction permet par exemple de lire les valeurs de capteurs et de les placer dans le tampon global d'émission. Les données sont alors envoyées automatiquement au hub dans le paquet actuel.
Le nombre maximal d'octets pouvant être transmis est défini par IDWARF_PAYLOAD_SIZE.
Cette fonction doit être enregistrée avec rfRegisterCBUserTxProcess().

Paramètres
pTxDataPointeur sur le buffer où stocker les données à transmettre au hub
Renvoie
Nombre d'octets stockés dans le buffer devant être transmis. Il est possible de n'envoyer aucune donnée en renvoyant 0, mais cela n'est pas conseillé ! .
void rfPowerDown ( void  )

Endors le circuit CYPRESS WirelessUSB.

Cette fonction de la bibliothèque devrait être utilisé conjointement avec avrSleep() et seulement à l'intérieur de la fonction de mise en sommeil de l'utilisateur ( cbConfigForSleep() ).
Elle passe la puce RF en powerdown. Elle peut être utilisé pour économiser l'énergie, mais seulement si l'utilisateur souhaite gérer lui même la mise en sommeil et mets donc sampleInterval à 0 dans cbConfigForSleep().
Si vous utilisez le firmware du sommeil et pas avrSleep() cette fonction n'est pas nécessaire.

Exemples:
idwarf/terminal/sensor/terminal_sensor.c, et idwarf/tutorial/sensor/tutorial_sensor.c.
void rfRegisterCBUserBackchannelProcess ( CBUSERBACKCHANNELPROCESS  cbbcp)

Enregistre la fonction de gestion de réception.

Paramètres
cbbcpNom de la fonction implémentée par l'utilisateur
Exemples:
idwarf/terminal/sensor/terminal_sensor.c, et idwarf/tutorial/sensor/tutorial_sensor.c.
void rfRegisterCBUserConfigForSleep ( CBUSERCONFIGFORSLEEP  cbcfs)

Enregistre la fonction de gestion de mise en sommeil.

Paramètres
cbcfsNom de la fonction implémentée par l'utilisateur
Exemples:
idwarf/terminal/sensor/terminal_sensor.c, et idwarf/tutorial/sensor/tutorial_sensor.c.
void rfRegisterCBUserExitFromSleep ( CBUSEREXITFROMSLEEP  cbefs)

Enregistre la fonction de gestion de reveil.

Paramètres
cbefsNom de la fonction implémentée par l'utilisateur
Exemples:
idwarf/terminal/sensor/terminal_sensor.c, et idwarf/tutorial/sensor/tutorial_sensor.c.
void rfRegisterCBUserTxProcess ( CBUSERTXPROCESS  cbtxp)

Enregistre la fonction de gestion de transmission.

Paramètres
cbtxpNom de la fonction implémentée par l'utilisateur
Exemples:
idwarf/terminal/sensor/terminal_sensor.c, et idwarf/tutorial/sensor/tutorial_sensor.c.