![]() |
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 |