![]() |
AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
|
Modélisation d'un concentrateur WirelessUSB™ (hub)
![]() |
Modules | |
Base de données | |
Structures de données | |
struct | xWHubConfig |
Configuration d'un hub. Plus de détails... | |
struct | xWHubMessage |
Classe Message entre hub et hôte. Plus de détails... | |
struct | xWHubService |
Eléments pour la gestion des services du hub. Plus de détails... | |
struct | xWusbHub |
Classe WirelessUSB™ Hub. Plus de détails... | |
Fonctions | |
int | iWHubInit (eWDevDataRate eDataRate, int iSensorDbaseFileArg1, void *pvSensorDbaseFileArg2) |
Initialisation du Hub Cette fonction initialise tous les élèments nécessaires au fonctionnement du hub : Plus de détails... | |
const uint8_t * | pucWHubMid (void) |
Lecture des 4 octets de l'identifiant de fabrication. | |
const xWHubMessage * | pxWHubLoop (void) |
Fonction qui gère l'intégralité du réseau WirelessUSB™ Cette fonction doit être appellée le plus souvent possible par l'application. Elle gère l'intégration des capteurs au réseau, la transmission et la réception de données des capteurs, l'envoi de compte rendu à l'hôte qui gère le hub. Elle choisit automatiquement le canal en fonction des conditions de transmission (bruit, présence d'autres réseaux ....) et en change lorsque cela est nécessaire en validant automatiquement le mode recherche de canal. Elle permute de mode entre la réception de données et l'intégration automatique des capteurs si ce mode est validé (Bit d'état WHUB_AUTOBIND) avec une période de 50 ms. Elle intègre les capteurs qui lui en font la demande sur le canal de données si le mode d'intégration rapide est validé (Bit d'état WHUB_SEEDEDBIND) Plus de détails... | |
uint8_t | ucWHubBindChannel (void) |
Renvoie le canal actuellement utilisé pour l'intégration automatique des capteurs au réseau. | |
uint8_t | ucWHubDataChannel (void) |
Renvoie le canal actuellement utilisé pour la transmission de données. | |
uint8_t | ucWHubDataPnCode (void) |
Renvoie le PnCode actuellement utilisé pour la transmission de données. | |
uint8_t | ucWHubNodeDataLength (uint16_t ucDeviceId) |
Renvoie le nombre d'octets enregistrés à transmettre à un capteur Aucune vérification n'est effectué sur ucDeviceId. | |
uint8_t | ucWHubStatus (void) |
Renvoie tous bits d'état ou de mode du hub. | |
uint32_t | ulWHubNodeMid (uint16_t ucDeviceId) |
Renvoie le Mid d'un capteur enregistré Aucune vérification n'est effectué sur ucDeviceId. | |
uint16_t | usWHubDeleteAllNodes (void) |
Retire tous les capteurs du réseau. | |
uint16_t | usWHubMaxNumberOfNodes (void) |
Renvoie le nombre de capteurs maximal. | |
uint16_t | usWHubNumberOfNodes (void) |
Renvoie le nombre de capteurs actuellement enregistrés sur le réseau. | |
void | vWHubFindAnAvailableChannel (void) |
void | vWHubNodeSetData (uint16_t ucDeviceId, uint8_t ucDataLength, const uint8_t *pucData) |
Enregistre les octets à transmettre à un capteur Aucune vérification n'est effectué sur ucDeviceId. | |
void | vWHubNodeSetFlag (uint16_t ucDeviceId, uint8_t ucNodeFlag) |
Modification des bits de flag et d'état d'un capteur enregistré | |
void | vWHubSetMid (const uint8_t *pucMid) |
Modifie les 4 octets de l'identifiant de fabrication La modificiation se fait en RAM. Elle est perdue lors d'un RESET. Attention, normalement le MID est fourni par le fabricant du module et n'est pas accessible en écriture. La modification du MID risque de provoquer des conflits sur le réseau (si un autre node a le même MID). Le Crc Seed et le Checksum Seed du réseau sont mis à jour par cette fonction. Plus de détails... | |
void | vWHubSetStatusFlag (eWHubStatus eFlag, bool xValue) |
Active ou désactive un bit d'état du hub. | |
void | vWHubToggleStatusFlag (eWHubStatus eFlag) |
Bascule l'état d'un bit d'état du hub. | |
bool | WHubNodeDelete (uint16_t ucDeviceId) |
Retire un capteur du réseau. Plus de détails... | |
bool | xWHubNodeFlag (uint16_t ucDeviceId, uint8_t *pucNodeFlag) |
Lecture des bits de flag et d'état d'un capteur avec vérification de sa validité Si le capteur correspondant au ucDeviceId est enregistré dans la base, copie ses flags depuis la base vers NodeFlag, vérifie si son bit V = 1 et renvoie true, si V = 0 renvoie false. Sinon renvoie false et laisse SensorFlag inchangé. | |
bool | xWHubSetDataChannel (uint8_t ucIndex) |
Modifie le canal actuellement utilisé pour la transmission de données La modification n'est effectuée que si ucIndex est dans les limites autorisées entre 1 et vWNetNumberOfChannels() Plus de détails... | |
bool | xWHubSetDataPnCode (uint8_t ucIndex) |
Modifie le PnCode actuellement utilisé pour la transmission de données La modification n'est effectuée que si iIndex est dans les limites autorisées entre 1 et ucWNetNumberOfPnCodes() Plus de détails... | |
bool | xWHubStatusFlag (eWHubStatus eFlag) |
Renvoie l'état d'un bit d'état ou de mode du hub. | |
Macros | |
#define | WHUB_BUILD (0x00) |
#define | WHUB_MAJOR (0x01) |
#define | WHUB_MINOR (0x00) |
Définitions de type | |
typedef struct xWHubConfig | xWHubConfig |
typedef struct xWHubMessage | xWHubMessage |
typedef struct xWHubService | xWHubService |
typedef struct xWusbHub | xWusbHub |
Énumérations | |
enum | eWHubMsgId { WHUB_RESPONSE = 0x80, WHUB_RSP_HUB_INFO = 0x81, WHUB_RSP_BIND = 0x82, WHUB_RSP_BIND_INFO = 0x83, WHUB_RSP_DELETE_NODE = 0x84, WHUB_RSP_SEND_MSG = 0x85, WHUB_RSP_INCOMING_MSG = 0x86, WHUB_RSP_ENUM_DEVICES = 0x87, WHUB_RSP_NETWORK_CONFIG = 0x88, WHUB_RSP_NETWORK_STATUS = 0x89, WHUB_RSP_RESET = 0x8A, WHUB_RSP_CHANGE_CHANNEL = 0x8B, WHUB_RSP_UNKNOWN_CMD = 0xFF } |
Identifiants des messages échangées du hub vers l'hôte. | |
enum | eWHubMsgStatus { WHUB_STA_SUCCESS = 0x00, WHUB_STA_UNKNOWN_ID = 0x01, WHUB_STA_BUFFER_OVERFLOW = 0x02, WHUB_STA_PRIOR_PAYLOAD_LOST = 0x03, WHUB_STA_PN_CODE_INDEX_INVALID = 0x04, WHUB_STA_CHANNEL_INVALID = 0x05, WHUB_STA_MSG_QUEUED = 0x06, WHUB_STA_SEARCH_CHANNEL_FAILURE = 0x08 } |
Comptes rendus échangées entre hub et hôte. | |
enum | eWHubStatus { WHUB_EEPROMBLANK = 0, WHUB_AUTOBIND = 1, WHUB_SEEDEDBIND = 2, WHUB_SEARCHCHANNEL = 3, WHUB_BACKDATA = 4, WHUB_NODEBOUND = 5, WHUB_BIND = 6, WHUB_CONFIGSAVED = 7 } |
Indice des bits de mode et d'état utilisés par un hub. Plus de détails... | |
enum eWHubStatus |
Indice des bits de mode et d'état utilisés par un hub.
Définition à la ligne 50 du fichier avrio/wusb/hub.h.
int iWHubInit | ( | eWDevDataRate | eDataRate, |
int | iSensorDbaseFileArg1, | ||
void * | pvSensorDbaseFileArg2 | ||
) |
Initialisation du Hub Cette fonction initialise tous les élèments nécessaires au fonctionnement du hub :
eDataRate | vitesse de transmission. 0 pour initialiser à partir de la config en EEPROM. |
SensorDbaseFileArg1 | premier paramètre à transmettre à iWSdBaseOpen() |
SensorDbaseFileArg2 | deuxième paramètre à transmettre à iWSdBaseOpen() |
const xWHubMessage* pxWHubLoop | ( | void | ) |
Fonction qui gère l'intégralité du réseau WirelessUSB™ Cette fonction doit être appellée le plus souvent possible par l'application. Elle gère l'intégration des capteurs au réseau, la transmission et la réception de données des capteurs, l'envoi de compte rendu à l'hôte qui gère le hub. Elle choisit automatiquement le canal en fonction des conditions de transmission (bruit, présence d'autres réseaux ....) et en change lorsque cela est nécessaire en validant automatiquement le mode recherche de canal. Elle permute de mode entre la réception de données et l'intégration automatique des capteurs si ce mode est validé (Bit d'état WHUB_AUTOBIND) avec une période de 50 ms. Elle intègre les capteurs qui lui en font la demande sur le canal de données si le mode d'intégration rapide est validé (Bit d'état WHUB_SEEDEDBIND)
void vWHubSetMid | ( | const uint8_t * | pucMid | ) |
Modifie les 4 octets de l'identifiant de fabrication La modificiation se fait en RAM. Elle est perdue lors d'un RESET. Attention, normalement le MID est fourni par le fabricant du module et n'est pas accessible en écriture. La modification du MID risque de provoquer des conflits sur le réseau (si un autre node a le même MID). Le Crc Seed et le Checksum Seed du réseau sont mis à jour par cette fonction.
Mid | les 4 octets du nouveau MID rangés en little endian |
|
inline |
Retire un capteur du réseau.
ucDeviceId | DeviceID du capteur |
bool xWHubSetDataChannel | ( | uint8_t | ucIndex | ) |
Modifie le canal actuellement utilisé pour la transmission de données La modification n'est effectuée que si ucIndex est dans les limites autorisées entre 1 et vWNetNumberOfChannels()
ucIndex | Index du canal |
bool xWHubSetDataPnCode | ( | uint8_t | ucIndex | ) |
Modifie le PnCode actuellement utilisé pour la transmission de données La modification n'est effectuée que si iIndex est dans les limites autorisées entre 1 et ucWNetNumberOfPnCodes()
ucIndex | ucIndex du PnCode |