AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR

Description détaillée

Ce module regroupe les API permettant de permettre aux tâches de communiquer par l'intermédiaire de messages.

Graphe de collaboration de Messages:

Structures de données

struct  xMessage
 Message. Plus de détails...
 
struct  xMessageQueue
 File de messages. Plus de détails...
 

Fonctions

xMessagepxAvrXRecvMessage (xMessageQueue *pxQueue)
 Renvoie le premier message d'une file. Plus de détails...
 
xMessagepxAvrXWaitMessage (xMessageQueue *pxQueue)
 Attente de réception d'un message. Plus de détails...
 
void vAvrXAckMessage (xMessage *pxMessage)
 Envoie un accusé réception à travers une file de message. Plus de détails...
 
void vAvrXIntSendMessage (xMessageQueue *pxQueue, xMessage *pxMessage)
 Envoie un message dans une file (Mode noyau) Plus de détails...
 
void vAvrXSendMessage (xMessageQueue *pxQueue, xMessage *pxMessage)
 Envoie un message dans une file. Plus de détails...
 
void vAvrXWaitMessageAck (xMessage *pxMessage)
 Attente d'un accusé réception d'une file de message. Plus de détails...
 
xSem xAvrXTestMessageAck (xMessage *pxMessage)
 Teste si un accusé réception a été reçue. Plus de détails...
 

Définitions de type

typedef struct xMessage xMessage
 Message. Plus de détails...
 
typedef struct xMessageQueue xMessageQueue
 File de messages. Plus de détails...
 

Documentation des définitions de type

typedef struct xMessage xMessage

Message.

Une file de messages est en réalité une extension d'une file de sémaphores. Un message peut être utilisé pour gérer des exlusions mutuelles (le message est un témoin) ou pour passer des informations d'ordre général.
Cela peut être nécessaire à des tâches qui doivent bloquer en attente de plusieurs choses à la fois (timer, interruption, etc.).

typedef struct xMessageQueue xMessageQueue

File de messages.

Permet la communication par message entre tâches.

Documentation des fonctions

xMessage* pxAvrXRecvMessage ( xMessageQueue pxQueue)

Renvoie le premier message d'une file.

Paramètres
pxQueueFile des messages à utiliser
Renvoie
Pointeur sur le message ou 0 si la file est vide
xMessage* pxAvrXWaitMessage ( xMessageQueue pxQueue)

Attente de réception d'un message.

Version bloquante pxAvrXRecvMessage.

Paramètres
pxQueueFile des messages à utiliser
Renvoie
Pointeur sur le message reçu
Exemples:
avrx/message/demo_avrx_message.c.
void vAvrXAckMessage ( xMessage pxMessage)

Envoie un accusé réception à travers une file de message.

La séquence s'enchaîne de la façon suivante : vAvrXSendMessage() -> pxAvrXWaitMessage() -> vAvrXAckMessage() -> vAvrXWaitMessageAck().

Paramètres
pxMessageMessage
Exemples:
avrx/message/demo_avrx_message.c.
void vAvrXIntSendMessage ( xMessageQueue pxQueue,
xMessage pxMessage 
)

Envoie un message dans une file (Mode noyau)

Identique à vAvrXSendMessage() pour une utilisation en mode noyau.

Paramètres
pxQueueFile des messages à utiliser
pxMessageMessage
Avertissement
Ne peut être appelée qu'à partir du mode noyau AvrX (par exemple l'intérieur d'un gestionnaire d'interruption).
void vAvrXSendMessage ( xMessageQueue pxQueue,
xMessage pxMessage 
)

Envoie un message dans une file.

Note
Fonction non bloquante
Paramètres
pxQueueFile des messages à utiliser
pxMessageMessage
Exemples:
avrx/message/demo_avrx_message.c.
void vAvrXWaitMessageAck ( xMessage pxMessage)

Attente d'un accusé réception d'une file de message.

Paramètres
pxMessageMessage
Exemples:
avrx/message/demo_avrx_message.c.
xSem xAvrXTestMessageAck ( xMessage pxMessage)

Teste si un accusé réception a été reçue.

Version non bloquante de vAvrXWaitMessageAck()

Paramètres
pxMessageMessage
Renvoie
AVRX_DONE si reçu, AVRX_PEND sinon