AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Paquet réseau WirelessUSB Nto1

Description détaillée

Couche Liaison - OSI2 Data Link Layer

Graphe de collaboration de Paquet réseau WirelessUSB Nto1:

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.
 

Documentation des macros

#define WPKT_DECLARE (   xVarName,
  xBufferSize 
)

Déclare une variable de type xWusbPacket.

Paramètres
xVarNameNom de la variable
xBufferSizeNombre d'octets pouvant être stockés dans le paquet

Définition à la ligne 128 du fichier packet.h.

#define WPKT_STATIC_DECLARE (   xVarName,
  xBufferSize 
)

Déclare une variable static de type xWusbPacket.

Paramètres
xVarNameNom de la variable
xBufferSizeNombre d'octets pouvant être stockés dans le paquet

Définition à la ligne 137 du fichier packet.h.

Documentation des fonctions

uint8_t* pucWPktDataPayload ( xWusbPacket pxPkt)

Renvoie un pointeur sur la zone mémoire où sont stockés les octets du payload.

Renvoie
le pointeur ou 0 si le paquet n'est pas de type WPKT_DATA_PACKET
bool xWPktCheckAndRepair ( xWusbPacket pxPkt,
xWusbPacket Valid,
uint8_t  CrcSeed,
uint8_t  ChecksumSeed 
)

Vérifie un paquet et le corrige éventuellement.

Paramètres
pxPktpaquet à vérifier (DATA)
Validpaquet contenant les octets de validation du paquet à vérifier (VALID)
CrcSeedvaleur initiale du Crc, ignoré si le paquet est un BIND ou un PING Broadcast
ChecksumSeedValeur initiale du Checksum, ignoré si le paquet est un BIND ou un PING Broadcast
Renvoie
true si le paquet est correct ou s'il a pu être réparé
uint8_t xWPktDataPayloadLength ( xWusbPacket pxPkt)

Renvoie le nombre d'octets du payload.

Renvoie
la longueur ou 0 si le paquet n'est pas de type WPKT_DATA_PACKET