21 #ifndef _AVRIO_WUSB_SENSOR_DATABASE_H_ 22 #define _AVRIO_WUSB_SENSOR_DATABASE_H_ 24 #include <avrio/wusb/sensor.h> 25 #include "wusb-config.h" 58 #define WSDBASE_SENSOR_INIT_FLAGS (0) 64 #define WSDBASE_SENSOR_FILE_SIZE(DbaseSize) (sizeof(uint16_t)+sizeof(xWSensorRecord)*(DbaseSize)) 70 #define WSDBASE_SENSOR_DBASE_SIZE(FileSize) ((FileSize-sizeof(uint16_t))/sizeof(xWSensorRecord)) 128 #if defined(__DOXYGEN__) 211 int iWSdBaseRead (
void * pvAddress, uint8_t * pucData,
size_t xDataLength);
224 int iWSdBaseWrite (
void * pvAddress,
const uint8_t * pucData,
size_t xDataLength);
243 int iWSdBaseRead (
void * pvAddress, uint8_t * pucData,
size_t xDataLength);
244 int iWSdBaseWrite (
void * pvAddress,
const uint8_t * pucData,
size_t xDataLength);
252 void vWSdBaseSensorSetField ( uint16_t usDeviceId, uint8_t ucFieldOffset,
253 const void * pvValue, uint8_t ucSizeOfValue);
258 __STATIC_ALWAYS_INLINE (uint16_t
261 return dSensorDbase.
usSize;
264 __STATIC_ALWAYS_INLINE (uint16_t
270 __STATIC_ALWAYS_INLINE (
void 273 iWSdBaseWrite (0, (
const uint8_t *)&usLength,
sizeof(uint16_t));
276 __STATIC_ALWAYS_INLINE (
void 279 vWSdBaseSensorSetField (usDeviceId,
281 &ulMid,
sizeof(uint32_t));
284 __STATIC_ALWAYS_INLINE (
void 287 vWSdBaseSensorSetField (usDeviceId,
289 &ucFlag,
sizeof(uint8_t));
292 __STATIC_ALWAYS_INLINE (
void 295 vWSdBaseSensorSetField (usDeviceId,
297 &ucBackDataLength,
sizeof(uint8_t));
301 __STATIC_ALWAYS_INLINE (
void 304 vWSdBaseSensorSetField (usDeviceId,
306 pucBackData, ucBackDataLength);
uint16_t usWSdBaseAddSensor(uint32_t ulMid)
Ajout d'un nouveau capteur dans la base.
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é
int iWSdBaseOpen(int iArg1, void *pvArg2)
Cette fonction doit être implémentée par l'utilisateur et fait partie de l'interface logicielle entre...
uint8_t ucWSdBaseSensorBackData(uint16_t usDeviceId, uint8_t *pucBackData)
Lecture des octets à transmettre à 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.
void vWSdBaseFindNextFreeDeviceId(void)
Met à jour le prochain DeviceID libre.
void vWSdBaseSensorSetFlag(uint16_t usDeviceId, uint8_t ucFlag)
Modification des bits de flag et d'état d'un capteur enregistré
void vWSdBaseSetLength(uint16_t usLength)
Modifie le nombre de capteurs actuellement dans la base.
eWSensorRecordFlags
Indice des bits de flag et d'état d'un capteur.
uint8_t pucBackData[WUSB_CONFIG_HUB_BACKDATA_SIZE]
Enregistrement d'un capteur.
int iWSdBaseWrite(void *pvAddress, const uint8_t *pucData, size_t xDataLength)
Cette fonction doit être implémentée par l'utilisateur et fait partie de l'interface logicielle entre...
uint16_t usNextFreeDeviceId
void vWSdBaseSensorSetBackDataLength(uint16_t usDeviceId, uint8_t ucBackDataLength)
Modification du nombre d'octets à transmettre à un capteur enregistré
void vWSdBaseClear(void)
Efface la base.
uint16_t usWSdBaseNextFreeDeviceId(void)
Renvoie le prochain Device ID libre dans la base ou 0xFFFF si la base est pleine. ...
int iWSdBaseInit(size_t xFileSize)
Initialise la base de données.
void vWSdBaseSensorSetBackData(uint16_t usDeviceId, const uint8_t *pucBackData, uint8_t ucBackDataLength)
Ecriture des octets à transmettre à un capteur enregistré
struct xWSensorDataBase xWSensorDataBase
Base de données de capteurs.
uint8_t ucWSdBaseSensorFlag(uint16_t usDeviceId)
Lecture des bits de flag et d'état d'un capteur enregistré
uint16_t usWSdBaseLength(void)
Renvoie le nombre de capteurs actuellement dans la base.
struct xWSensorRecord xWSensorRecord
Enregistrement d'un capteur.
Base de données de capteurs.
int iWSdBaseRead(void *pvAddress, uint8_t *pucData, size_t xDataLength)
Cette fonction doit être implémentée par l'utilisateur et fait partie de l'interface logicielle entre...
void vWSdBaseSensorSetMid(uint16_t usDeviceId, uint32_t ulMid)
Modification du MID d'un capteur enregistré
#define STRUCT_FIELD_OFFSET(s, f)
Renvoie l'offset d'un champ dans une structure.