21 #ifndef _AVRIO_WUSB_HUB_H_ 22 #define _AVRIO_WUSB_HUB_H_ 24 #include <avrio/mutex.h> 25 #include <avrio/task.h> 26 #include <avrio/wusb/net/network.h> 27 #include <avrio/wusb/hub/sensor_database.h> 42 #define WHUB_MAJOR (0x01) 43 #define WHUB_MINOR (0x00) 44 #define WHUB_BUILD (0x00) 77 WHUB_RSP_HUB_INFO = 0x81,
79 WHUB_RSP_BIND_INFO = 0x83,
80 WHUB_RSP_DELETE_NODE = 0x84,
81 WHUB_RSP_SEND_MSG = 0x85,
82 WHUB_RSP_INCOMING_MSG = 0x86,
83 WHUB_RSP_ENUM_DEVICES = 0x87,
84 WHUB_RSP_NETWORK_CONFIG = 0x88,
85 WHUB_RSP_NETWORK_STATUS = 0x89,
86 WHUB_RSP_RESET = 0x8A,
87 WHUB_RSP_CHANGE_CHANNEL = 0x8B,
88 WHUB_RSP_UNKNOWN_CMD = 0xFF
97 WHUB_STA_SUCCESS = 0x00,
98 WHUB_STA_UNKNOWN_ID = 0x01,
99 WHUB_STA_BUFFER_OVERFLOW = 0x02,
100 WHUB_STA_PRIOR_PAYLOAD_LOST = 0x03,
101 WHUB_STA_PN_CODE_INDEX_INVALID = 0x04,
102 WHUB_STA_CHANNEL_INVALID = 0x05,
103 WHUB_STA_MSG_QUEUED = 0x06,
105 WHUB_STA_SEARCH_CHANNEL_FAILURE = 0x08
142 uint8_t ucRssiCounter;
152 uint8_t ucNoiseThreshold;
171 int iSensorDbaseFileArg1,
172 void * pvSensorDbaseFileArg2);
189 #if defined(__DOXYGEN__) 263 void vWHubFindAnAvailableChannel (
void);
294 bool xWHubNodeFlag (uint16_t ucDeviceId, uint8_t * pucNodeFlag);
327 bool xWHubNodeFlag (uint16_t ucDeviceId, uint8_t * pucNodeFlag);
331 void vWHubFindAnAvailableChannel (
void);
341 __STATIC_ALWAYS_INLINE (uint8_t
347 __STATIC_ALWAYS_INLINE (
bool 353 __STATIC_ALWAYS_INLINE (
const uint8_t *
359 __STATIC_ALWAYS_INLINE (uint8_t
365 __STATIC_ALWAYS_INLINE (uint8_t
371 __STATIC_ALWAYS_INLINE (uint8_t
378 __STATIC_ALWAYS_INLINE (uint16_t
384 __STATIC_ALWAYS_INLINE (uint16_t
390 __STATIC_ALWAYS_INLINE (
size_t 396 __STATIC_ALWAYS_INLINE (uint32_t
403 __STATIC_ALWAYS_INLINE (
void 409 __STATIC_ALWAYS_INLINE (
bool 415 __STATIC_ALWAYS_INLINE (
void 416 vWHubNodeSetData (uint16_t ucDeviceId, uint8_t DataLength,
const uint8_t * Data)) {
421 __STATIC_ALWAYS_INLINE (
void
bool xWPktBit(uint8_t Byte, uint8_t Bit)
Renvoie l'état du bit de rang Bit de l'octet Byte.
int8_t xTaskHandle
xTaskHandle Identifiant d'une tâche
uint8_t ucWSdBaseSensorBackDataLength(uint16_t usDeviceId)
Lecture du nombre d'octets à transmettre à un capteur enregistré
uint32_t ulWSdBaseSensorMid(uint16_t usDeviceId)
Lecture du MID d'un capteur enregistré
bool xWSdBaseDeleteSensor(uint16_t usDeviceId)
Retire un capteur de la base.
uint16_t usWSdBaseSize(void)
Renvoie la capacité de la base en nombre de capteurs.
const uint8_t * pucWHubMid(void)
Lecture des 4 octets de l'identifiant de fabrication.
uint8_t ucWHubBindChannel(void)
Renvoie le canal actuellement utilisé pour l'intégration automatique des capteurs au réseau...
uint8_t ucWHubNodeDataLength(uint16_t ucDeviceId)
Renvoie le nombre d'octets enregistrés à transmettre à un capteur Aucune vérification n'est effectué ...
void vWSdBaseSensorSetFlag(uint16_t usDeviceId, uint8_t ucFlag)
Modification des bits de flag et d'état d'un capteur enregistré
void vWHubNodeSetFlag(uint16_t ucDeviceId, uint8_t ucNodeFlag)
Modification des bits de flag et d'état d'un capteur enregistré
bool xWHubStatusFlag(eWHubStatus eFlag)
Renvoie l'état d'un bit d'état ou de mode du hub.
bool WHubNodeDelete(uint16_t ucDeviceId)
Retire un capteur du réseau.
volatile uint8_t xMutex
Type mutex.
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...
eWHubStatus
Indice des bits de mode et d'état utilisés par un hub.
uint8_t ucWHubStatus(void)
Renvoie tous bits d'état ou de mode du hub.
uint8_t ucWHubDataPnCode(void)
Renvoie le PnCode actuellement utilisé pour la transmission de données.
void vWSdBaseClear(void)
Efface la base.
const uint8_t * pucWDevMid(void)
Lecture des 4 octets de l'identifiant de fabrication (REG_MID)
void vWSdBaseSensorSetBackData(uint16_t usDeviceId, const uint8_t *pucBackData, uint8_t ucBackDataLength)
Ecriture des octets à transmettre à un capteur enregistré
eWDevDataRate
Différentes vitesse de transmission.
uint8_t ucWHubDataChannel(void)
Renvoie le canal actuellement utilisé pour la transmission de données.
Classe Message entre hub et hôte.
bool xWHubSetDataChannel(uint8_t ucIndex)
Modifie le canal actuellement utilisé pour la transmission de données La modification n'est effectuée...
eWHubMsgStatus
Comptes rendus échangées entre hub et hôte.
uint16_t usWHubDeleteAllNodes(void)
Retire tous les capteurs du réseau.
eWHubMsgId
Identifiants des messages échangées du hub vers l'hôte.
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 corres...
const xWHubMessage * pxWHubLoop(void)
Fonction qui gère l'intégralité du réseau WirelessUSB™ Cette fonction doit être appellée le plus sou...
uint16_t usWSdBaseLength(void)
Renvoie le nombre de capteurs actuellement dans la base.
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.
int iWHubInit(eWDevDataRate eDataRate, int iSensorDbaseFileArg1, void *pvSensorDbaseFileArg2)
Initialisation du Hub Cette fonction initialise tous les élèments nécessaires au fonctionnement du hu...
void vWHubSetStatusFlag(eWHubStatus eFlag, bool xValue)
Active ou désactive un bit d'état du hub.
uint16_t usWHubNumberOfNodes(void)
Renvoie le nombre de capteurs actuellement enregistrés sur le réseau.
void vWHubToggleStatusFlag(eWHubStatus eFlag)
Bascule l'état d'un bit d'état du hub.
uint16_t usWHubMaxNumberOfNodes(void)
Renvoie le nombre de capteurs maximal.
Eléments pour la gestion des services du hub.
bool xWHubSetDataPnCode(uint8_t ucIndex)
Modifie le PnCode actuellement utilisé pour la transmission de données La modification n'est effectué...
uint32_t ulWHubNodeMid(uint16_t ucDeviceId)
Renvoie le Mid d'un capteur enregistré Aucune vérification n'est effectué sur ucDeviceId.
Configuration d'un hub.