AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
|
Couche Liaison - OSI2 Data Link Layer
Structures de données | |
struct | xWusbPacket |
Paquet réseau WirelessUSB Plus de détails... | |
Fonctions | |
uint8_t * | pucWPktDataPayload (xWusbPacket *pxPkt) |
Renvoie un pointeur sur la zone mémoire où sont stockés les octets du payload. Plus de détails... | |
uint8_t * | pucWPktRaw (xWusbPacket *pxPkt) |
Renvoie un pointeur sur la zone mémoire où sont stockés les octets du paquet. | |
uint8_t | ucWPktByte (xWusbPacket *pxPkt, uint8_t Offset) |
Renvoie la valeur d'un octet du paquet. | |
uint8_t | ucWPktChecksum (const uint8_t *pData, uint8_t ucLength, uint8_t Seed) |
Calcule le checksum d'une suite d'octets. | |
uint8_t | ucWPktHeader (xWusbPacket *pxPkt) |
Renvoie la valeur de l'en-tête du paquet. | |
uint8_t | ucWPktType (xWusbPacket *pxPkt) |
Renvoie le type du paquet. | |
uint32_t | ulWPktDword (xWusbPacket *pxPkt, uint8_t Offset) |
Renvoie la valeur d'un mot de 16 bits (little endian) du paquet. | |
uint16_t | usWPktCrc (const uint8_t *pData, uint8_t ucLength, uint16_t Seed) |
Calcule le Crc 16 bits CCITT (X^16 + X^12 + X^5 + 1) d'une suite d'octets. | |
uint16_t | usWPktWord (xWusbPacket *pxPkt, uint8_t Offset) |
Renvoie la valeur d'un mot de 16 bits (little endian) du paquet. | |
void | vWPktAddByte (xWusbPacket *pxPkt, uint8_t ucValue) |
Ajoute un octet au paquet. | |
void | vWPktAddBytes (xWusbPacket *pxPkt, const uint8_t *pucBytes, uint8_t ucLength) |
Ajoute une suite d'octets au paquet. | |
void | vWPktAddBytes_P (xWusbPacket *pxPkt, const uint8_t *pucBytes, uint8_t ucLength) |
Ajoute une suite d'octets au paquet. | |
void | vWPktAddStr (xWusbPacket *pxPkt, const char *pcStr) |
Ajoute une chaîne de caractères sans le zéro terminal au paquet. | |
void | vWPktAddStr_P (xWusbPacket *pxPkt, const char *pcStr) |
Ajoute une chaîne de caractères sans le zéro terminal au paquet. | |
void | vWPktAddTrailer (xWusbPacket *pxPkt, uint8_t CrcSeed, uint8_t ChecksumSeed) |
Ajoute le CRC et le Checksum au paquet Si le paquet est de type BIND ou PING Broadcast, le Crc et le Checksum ajoutés sont calculés avec des valeurs initiales WPKT_BIND_CRC_SEED et WPKT_BIND_CHECKSUM_SEED. | |
void | vWPktAddWord (xWusbPacket *pxPkt, uint16_t usValue) |
Ajoute un mot de 16 bits (little endian) au paquet. | |
void | vWPktClear (xWusbPacket *pxPkt) |
Efface un paquet. | |
void | vWPktInit (xWusbPacket *pxPkt, uint8_t *pucBuffer, uint8_t ucBufferSize) |
Initialise les champs de la structure du paquet. | |
void | vWPktPrepare (xWusbPacket *pxPkt, uint8_t ucHeader) |
Initialise le paquet en l'effacant et en ajoutant l'entête fourni. | |
void | vWPktSetBit (uint8_t *Byte, uint8_t Bit, bool xValue) |
Modifie l'état du bit de rang Bit de l'octet pointé par Byte . | |
void | vWPktSetByte (xWusbPacket *pxPkt, uint8_t Offset, uint8_t ucValue) |
Modifie la valeur d'un octet du paquet. | |
void | vWPktSetFlag (xWusbPacket *pxPkt, uint8_t ucIndex, bool xValue) |
Modifie l'état d'un bit de flag de l'entête d'un paquet. | |
void | vWPktSetHeader (xWusbPacket *pxPkt, uint8_t ucValue) |
Modifie l'en-tête préexistant du paquet. | |
void | vWPktSetType (xWusbPacket *pxPkt, uint8_t ucValue) |
Modifie le type de paquet. | |
void | vWPktToggleFlag (xWusbPacket *pxPkt, uint8_t ucIndex) |
Bascule l'état d'un drapeau du paquet. | |
bool | xWPktBit (uint8_t Byte, uint8_t Bit) |
Renvoie l'état du bit de rang Bit de l'octet Byte . | |
bool | xWPktCheckAndRepair (xWusbPacket *pxPkt, xWusbPacket *Valid, uint8_t CrcSeed, uint8_t ChecksumSeed) |
Vérifie un paquet et le corrige éventuellement. Plus de détails... | |
uint8_t | xWPktDataPayloadLength (xWusbPacket *pxPkt) |
Renvoie le nombre d'octets du payload. Plus de détails... | |
bool | xWPktFlag (xWusbPacket *pxPkt, uint8_t ucIndex) |
Renvoie l'état d'un drapeau du paquet. | |
bool | xWPktIsEmpty (xWusbPacket *pxPkt) |
Indique si le paquet est vide. | |
bool | xWPktIsFull (xWusbPacket *pxPkt) |
Indique si le paquet est plein. | |
uint8_t | xWPktLength (xWusbPacket *pxPkt) |
Renvoie le nombre d'octets stockés dans le paquet. | |
bool | xWPktSetAllFlags (xWusbPacket *pxPkt, uint8_t ucFlags) |
Modifie l'état des bits de flag de l'entête d'un paquet. | |
uint8_t | xWPktSize (xWusbPacket *pxPkt) |
Renvoie la taille de la zone mémoire de stockage. | |
Macros | |
#define | WPKT_BIND_CHECKSUM_SEED 0x00 |
Valeur initiale dans le calcul du checksum d'un paquet BIND. | |
#define | WPKT_BIND_CRC_SEED 0x0000 |
Valeur initiale dans le calcul du CRC d'un paquet BIND. | |
#define | WPKT_BINDREQ_PACKET_SIZE |
Taille d'un paquet de réponse BIND. | |
#define | WPKT_DECLARE(xVarName, xBufferSize) |
Déclare une variable de type xWusbPacket. Plus de détails... | |
#define | WPKT_DID_OFFSET |
Offset du DeviceId dans le paquet. | |
#define | WPKT_MID_OFFSET |
Offset du MID dans un paquet BIND_REQUEST. | |
#define | WPKT_PING_PACKET_SIZE |
Taille d'un paquet de PING. | |
#define | WPKT_STATIC_DECLARE(xVarName, xBufferSize) |
Déclare une variable static de type xWusbPacket. Plus de détails... | |
Définitions de type | |
typedef struct xWusbPacket | xWusbPacket |
Énumérations | |
enum | eWPktFlag { WPKT_SINGLE = 0, WPKT_ACK = 1, WPKT_SYNC = 2, WPKT_TOGGLE = 3, WPKT_VALID = 2, WPKT_RESP = 3, WPKT_BCAST = 2 } |
Index des drapeaux de l'entête d'un paquet. | |
enum | eWPktType { WPKT_BIND_REQUEST_PACKET = 0x00, WPKT_BIND_RESPONSE_PACKET = 0x01, WPKT_PING_PACKET = 0x02, WPKT_ACK_PACKET = 0x03, WPKT_DATA_PACKET = 0x04, NO_PACKET = 0x0F } |
Identifiant du type de paquet stocké dans l'entête d'un paquet. | |
#define WPKT_DECLARE | ( | xVarName, | |
xBufferSize | |||
) |
Déclare une variable de type xWusbPacket.
xVarName | Nom de la variable |
xBufferSize | Nombre d'octets pouvant être stockés dans le paquet |
#define WPKT_STATIC_DECLARE | ( | xVarName, | |
xBufferSize | |||
) |
Déclare une variable static de type xWusbPacket.
xVarName | Nom de la variable |
xBufferSize | Nombre d'octets pouvant être stockés dans le paquet |
uint8_t* pucWPktDataPayload | ( | xWusbPacket * | pxPkt | ) |
Renvoie un pointeur sur la zone mémoire où sont stockés les octets du payload.
bool xWPktCheckAndRepair | ( | xWusbPacket * | pxPkt, |
xWusbPacket * | Valid, | ||
uint8_t | CrcSeed, | ||
uint8_t | ChecksumSeed | ||
) |
Vérifie un paquet et le corrige éventuellement.
pxPkt | paquet à vérifier (DATA) |
Valid | paquet contenant les octets de validation du paquet à vérifier (VALID) |
CrcSeed | valeur initiale du Crc, ignoré si le paquet est un BIND ou un PING Broadcast |
ChecksumSeed | Valeur initiale du Checksum, ignoré si le paquet est un BIND ou un PING Broadcast |
uint8_t xWPktDataPayloadLength | ( | xWusbPacket * | pxPkt | ) |
Renvoie le nombre d'octets du payload.