![]() |
AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
|
Une pile FIFO est un buffer circulaire qui dispose d'un pointeur en écriture et d'un pointeur en lecture.
Les piles FIFO sont utilisées dans les communications inter-processus et les réseaux.
|
Structures de données | |
| struct | xQueue |
| Pile FIFO. Plus de détails... | |
Fonctions | |
| int | iQueueCompare (struct xQueue *pxQueue1, struct xQueue *pxQueue2) |
| Compare le contenu de deux piles d'octets. Plus de détails... | |
| const char * | pcQueuePushString (struct xQueue *pxQueue, const char *pcString) |
| Empile une chaîne d'octets à zéro terminal. Plus de détails... | |
| struct xQueue * | pxQueueNew (size_t xBufferSize) |
| Crée et initialise une pile en mémoire dynamique. Plus de détails... | |
| uint8_t | ucQueuePull (struct xQueue *pxQueue) |
| Dépile un octet. Plus de détails... | |
| uint8_t | ucQueueRead (struct xQueue *pxQueue, size_t xIndex) |
| Lecture d'un octet (sans le dépiler) Plus de détails... | |
| uint16_t | usQueuePullWord (struct xQueue *pxQueue) |
| Dépile un mot de 16 bits. Plus de détails... | |
| uint16_t | usQueueReadWord (struct xQueue *pxQueue, size_t xIndex) |
| Lecture d'un mot de 16 bits (sans dépiler) Plus de détails... | |
| void | vQueueCopy (struct xQueue *pxDst, const struct xQueue *pxSrc) |
| Copie d'une pile sur une autre. Plus de détails... | |
| void | vQueueDelete (struct xQueue *pxQueue) |
| Détruit une pile créée avec xQueueNew() Plus de détails... | |
| void | vQueueDrop (struct xQueue *pxQueue) |
| Détruit un octet. Plus de détails... | |
| void | vQueueDropBytes (struct xQueue *pxQueue, size_t xLength) |
| Détruit plusieurs octets. Plus de détails... | |
| void | vQueueFlush (struct xQueue *pxQueue) |
| Vide la pile. Plus de détails... | |
| void | vQueuePush (struct xQueue *pxQueue, uint8_t ucByte) |
| Empile un octet. Plus de détails... | |
| void | vQueuePushWord (struct xQueue *pxQueue, uint16_t usWord) |
| Empile un mot de 16 bits. Plus de détails... | |
| void | vQueueSetBuffer (struct xQueue *pxQueue, uint8_t *pucBuffer, size_t xBufferSize) |
| Initialise la pile avec le buffer. Plus de détails... | |
| size_t | xQueueFree (struct xQueue *pxQueue) |
| Renvoie le nombre d'octets disponibles. Plus de détails... | |
| bool | xQueueIsEmpty (struct xQueue *pxQueue) |
| Teste si la pile est vide. Plus de détails... | |
| bool | xQueueIsFull (struct xQueue *pxQueue) |
| Teste si la pile est vide. Plus de détails... | |
| size_t | xQueueLength (struct xQueue *pxQueue) |
| Renvoie le nombre d'octets empilés. Plus de détails... | |
| size_t | xQueuePullAll (struct xQueue *pxQueue, uint8_t *pucBytes) |
| Dépile tous les octets. Plus de détails... | |
| size_t | xQueuePullBytes (struct xQueue *pxQueue, uint8_t *pucBytes, size_t xLength) |
| Dépile des octets. Plus de détails... | |
| size_t | xQueuePushBytes (struct xQueue *pxQueue, const uint8_t *pucBytes, size_t xLength) |
| Empile une suite d'octets. Plus de détails... | |
| size_t | xQueuePushBytesOfQueue (struct xQueue *pxDstQueue, struct xQueue *pxSrcQueue, size_t xLength) |
| Empile des octets d'une pile dans une autre. Plus de détails... | |
| size_t | xQueuePushQueue (struct xQueue *pxDstQueue, struct xQueue *pxSrcQueue) |
| Empile une pile dans une autre. Plus de détails... | |
| size_t | xQueueSize (struct xQueue *pxQueue) |
| Renvoie la longueur de la pile. Plus de détails... | |
| size_t | xQueueSizeOf (struct xQueue *pxQueue) |
| Renvoie la taille mémoire d'une pile. Plus de détails... | |
Macros | |
| #define | QUEUE_DECLARE(xVarName, xBufferSize) |
| Déclare une variable de type pile FIFO. Plus de détails... | |
| #define | QUEUE_STATIC_DECLARE(xVarName, xBufferSize) |
| Déclare une variable static de type pile FIFO. Plus de détails... | |
| #define QUEUE_DECLARE | ( | xVarName, | |
| xBufferSize | |||
| ) |
| #define QUEUE_STATIC_DECLARE | ( | xVarName, | |
| xBufferSize | |||
| ) |
Compare le contenu de deux piles d'octets.
| pxQueue1 | Première pile à utiliser |
| pxQueue2 | Deuxième pile à utiliser |
| const char* pcQueuePushString | ( | struct xQueue * | pxQueue, |
| const char * | pcString | ||
| ) |
Empile une chaîne d'octets à zéro terminal.
L'empilage est limité à la taille de la pile. Le zéro terminal n'est pas empilé.
| pxQueue | La pile à utiliser |
| pcString | Pointeur vers la chaîne d'octets à zéro terminal |
| struct xQueue* pxQueueNew | ( | size_t | xBufferSize | ) |
Crée et initialise une pile en mémoire dynamique.
La macro AVRIO_QUEUE_MALLOC_ENABLE doit être définie dans avrio-config.h ou à la compilation pour pouvoir utiliser cette fonction.
| xBufferSize | Nombre d'octets pouvant être stockés dans la pile |
| uint8_t ucQueuePull | ( | struct xQueue * | pxQueue | ) |
Dépile un octet.
Il est du ressort de l'utilisateur de vérifier que la pile n'est pas vide.
| pxQueue | La pile à utiliser |
| uint8_t ucQueueRead | ( | struct xQueue * | pxQueue, |
| size_t | xIndex | ||
| ) |
Lecture d'un octet (sans le dépiler)
Il est du ressort de l'utilisateur de vérifier que la pile n'est pas vide et que l'index fournit est inférieur à la longueur de la pile.
| pxQueue | La pile à utiliser |
| xIndex | Position de l'octet dans la pile entre 0 et (xQueueLength - 1) |
| uint16_t usQueuePullWord | ( | struct xQueue * | pxQueue | ) |
Dépile un mot de 16 bits.
Il est du ressort de l'utilisateur de vérifier que la pile n'est pas vide.
| pxQueue | La pile à utiliser |
| uint16_t usQueueReadWord | ( | struct xQueue * | pxQueue, |
| size_t | xIndex | ||
| ) |
Lecture d'un mot de 16 bits (sans dépiler)
Il est du ressort de l'utilisateur de vérifier que la pile n'est pas vide et que l'index fournit est inférieur à la longueur de la pile.
| pxQueue | La pile à utiliser |
| xIndex | Position du dans la pile entre 0 et (xQueueLength - 2) |
Copie d'une pile sur une autre.
| pxDst | La pile destination |
| pxSrc | La pile source |
| void vQueueDelete | ( | struct xQueue * | pxQueue | ) |
Détruit une pile créée avec xQueueNew()
La macro AVRIO_QUEUE_MALLOC_ENABLE doit être définie dans avrio-config.h ou à la compilation pour pouvoir utiliser cette fonction.
| pxQueue | La pile à détruire |
| void vQueueDrop | ( | struct xQueue * | pxQueue | ) |
Détruit un octet.
Il est du ressort de l'utilisateur de vérifier que la pile n'est pas vide.
| pxQueue | La pile à utiliser |
| void vQueueDropBytes | ( | struct xQueue * | pxQueue, |
| size_t | xLength | ||
| ) |
Détruit plusieurs octets.
Le nombre d'octets à détruire est limité à la longueur de la pile
| pxQueue | La pile à utiliser |
| xLength | Nombre d'octets |
| void vQueueFlush | ( | struct xQueue * | pxQueue | ) |
Vide la pile.
| pxQueue | La pile à utiliser |
| void vQueuePush | ( | struct xQueue * | pxQueue, |
| uint8_t | ucByte | ||
| ) |
Empile un octet.
Il est du ressort de l'utilisateur de vérifier que la pile n'est pas pleine.
| pxQueue | La pile à utiliser |
| ucByte | L'octet à empiler |
| void vQueuePushWord | ( | struct xQueue * | pxQueue, |
| uint16_t | usWord | ||
| ) |
Empile un mot de 16 bits.
Il est du ressort de l'utilisateur de vérifier que la pile n'est pas pleine.
| pxQueue | La pile à utiliser |
| usWord | Le mot à empiler |
| void vQueueSetBuffer | ( | struct xQueue * | pxQueue, |
| uint8_t * | pucBuffer, | ||
| size_t | xBufferSize | ||
| ) |
Initialise la pile avec le buffer.
| pxQueue | La pile à utiliser |
| pucBuffer | Zone mémoire qui sera utilisée par la pile |
| xBufferSize | Nombre d'octets pouvant être stockés dans le buffer |
| size_t xQueueFree | ( | struct xQueue * | pxQueue | ) |
Renvoie le nombre d'octets disponibles.
| pxQueue | La pile à utiliser |
| bool xQueueIsEmpty | ( | struct xQueue * | pxQueue | ) |
Teste si la pile est vide.
| pxQueue | La pile à utiliser |
| bool xQueueIsFull | ( | struct xQueue * | pxQueue | ) |
Teste si la pile est vide.
| pxQueue | La pile à utiliser |
| size_t xQueueLength | ( | struct xQueue * | pxQueue | ) |
Renvoie le nombre d'octets empilés.
| pxQueue | La pile à utiliser |
| size_t xQueuePullAll | ( | struct xQueue * | pxQueue, |
| uint8_t * | pucBytes | ||
| ) |
Dépile tous les octets.
| pxQueue | La pile à utiliser |
| pucBytes | Pointeur vers la zone mémoire destination |
| size_t xQueuePullBytes | ( | struct xQueue * | pxQueue, |
| uint8_t * | pucBytes, | ||
| size_t | xLength | ||
| ) |
Dépile des octets.
| pxQueue | La pile à utiliser |
| pucBytes | Pointeur vers la zone mémoire destination |
| xLength | Le nombre d'octets à dépiler (limité à la longueur de la pile) |
| size_t xQueuePushBytes | ( | struct xQueue * | pxQueue, |
| const uint8_t * | pucBytes, | ||
| size_t | xLength | ||
| ) |
Empile une suite d'octets.
L'empilage est limité à la taille de la pile.
| pxQueue | La pile à utiliser |
| pucBytes | Pointeur vers les octets |
| xLength | Nombre d'octets |
| size_t xQueuePushBytesOfQueue | ( | struct xQueue * | pxDstQueue, |
| struct xQueue * | pxSrcQueue, | ||
| size_t | xLength | ||
| ) |
Empile des octets d'une pile dans une autre.
L'empilage est limité à la taille de la pile pxDstQueue.
| pxDstQueue | La pile destinataire |
| pxSrcQueue | La pile source |
Empile une pile dans une autre.
L'empilage est limité à la taille de la pile pxDstQueue.
| pxDstQueue | La pile destinataire |
| pxSrcQueue | La pile source |
| size_t xQueueSize | ( | struct xQueue * | pxQueue | ) |
Renvoie la longueur de la pile.
| pxQueue | La pile à utiliser |
| size_t xQueueSizeOf | ( | struct xQueue * | pxQueue | ) |
Renvoie la taille mémoire d'une pile.
| pxQueue | La pile à utiliser |