![]() |
AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
|
Modélisation d'une base de données permettant à un hub WirelessUSB de stoker les paramètres des capteurs du réseau.
![]() |
Structures de données | |
struct | xWSensorDataBase |
Base de données de capteurs. Plus de détails... | |
struct | xWSensorRecord |
Enregistrement d'un capteur. Plus de détails... | |
Fonctions | |
int | iWSdBaseInit (size_t xFileSize) |
Initialise la base de données. Plus de détails... | |
int | iWSdBaseOpen (int iArg1, void *pvArg2) |
Cette fonction doit être implémentée par l'utilisateur et fait partie de l'interface logicielle entre le module WusbSensorDataBase et le fichier de stockage. Elle est automatiquement appellée par WHubInit() . Elle est chargée d'initialiser le fichier (ou la mémoire) dans lequel la base de données est stockée. Les paramètres iArg1 et pvArg2, passés à WHubInit() sont destinés à l'initialisation de ce fichier et dépndent donc de celui-ci. Typiquement iArg1 sera la taille et pvArg2 un pointeur sur une zone de mémoire ou un fichier. Cette fonction doit se terminer par un appel à iWSdBaseInit() et renvoyer sa valeur. Plus de détails... | |
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 le module WusbSensorDataBase et le fichier de stockage. Elle est utilisée par le module WusbHub. Elle est chargée de lire le fichier (ou la mémoire) dans lequel la base de données est stockée. Plus de détails... | |
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 le module WusbSensorDataBase et le fichier de stockage. Elle est utilisée par le module WusbHub. Elle est chargée d'écrire dans le fichier (ou la mémoire) dans lequel la base de données est stockée. Plus de détails... | |
uint8_t | ucWSdBaseSensorBackData (uint16_t usDeviceId, uint8_t *pucBackData) |
Lecture des octets à transmettre à un capteur enregistré Plus de détails... | |
uint8_t | ucWSdBaseSensorBackDataLength (uint16_t usDeviceId) |
Lecture du nombre d'octets à transmettre à un capteur enregistré | |
uint8_t | ucWSdBaseSensorFlag (uint16_t usDeviceId) |
Lecture des bits de flag et d'état d'un capteur enregistré | |
uint32_t | ulWSdBaseSensorMid (uint16_t usDeviceId) |
Lecture du MID d'un capteur enregistré | |
uint16_t | usWSdBaseAddSensor (uint32_t ulMid) |
Ajout d'un nouveau capteur dans la base. Plus de détails... | |
uint16_t | usWSdBaseLength (void) |
Renvoie le nombre de capteurs actuellement dans la base. | |
uint16_t | usWSdBaseNextFreeDeviceId (void) |
Renvoie le prochain Device ID libre dans la base ou 0xFFFF si la base est pleine. | |
uint16_t | usWSdBaseSize (void) |
Renvoie la capacité de la base en nombre de capteurs. | |
void | vWSdBaseClear (void) |
Efface la base. | |
void | vWSdBaseFindNextFreeDeviceId (void) |
Met à jour le prochain DeviceID libre. | |
void | vWSdBaseSensorSetBackData (uint16_t usDeviceId, const uint8_t *pucBackData, uint8_t ucBackDataLength) |
Ecriture des octets à transmettre à un capteur enregistré Plus de détails... | |
void | vWSdBaseSensorSetBackDataLength (uint16_t usDeviceId, uint8_t ucBackDataLength) |
Modification du nombre d'octets à transmettre à un capteur enregistré | |
void | vWSdBaseSensorSetFlag (uint16_t usDeviceId, uint8_t ucFlag) |
Modification des bits de flag et d'état d'un capteur enregistré | |
void | vWSdBaseSensorSetMid (uint16_t usDeviceId, uint32_t ulMid) |
Modification du MID d'un capteur enregistré | |
void | vWSdBaseSetLength (uint16_t usLength) |
Modifie le nombre de capteurs actuellement dans la base. | |
bool | xWSdBaseDeleteSensor (uint16_t usDeviceId) |
Retire un capteur de la base. Plus de détails... | |
Macros | |
#define | WSDBASE_SENSOR_DBASE_SIZE(FileSize) ((FileSize-sizeof(uint16_t))/sizeof(xWSensorRecord)) |
Renvoie le nombre le nombre de capteurs correspondant à une taille de fichier. | |
#define | WSDBASE_SENSOR_FILE_SIZE(DbaseSize) (sizeof(uint16_t)+sizeof(xWSensorRecord)*(DbaseSize)) |
Renvoie le nombre d'octets nécessaires au stockage d'un certains nombre de capteurs dans la base de données. | |
#define | WSDBASE_SENSOR_INIT_FLAGS (0) |
Valeurs des bits de flag et d'état lors de l'ajout d'un capteur. | |
Définitions de type | |
typedef struct xWSensorDataBase | xWSensorDataBase |
Base de données de capteurs. | |
typedef struct xWSensorRecord | xWSensorRecord |
Enregistrement d'un capteur. | |
Énumérations | |
enum | eWSensorRecordFlags { WSDBASE_VALID_DID = 3, WSDBASE_TX_SEQN = 4, WSDBASE_RX_SEQN = 5, WSDBASE_BACKDATA = 6, WSDBASE_NOTIFY = 7 } |
Indice des bits de flag et d'état d'un capteur. Plus de détails... | |
enum eWSensorRecordFlags |
Indice des bits de flag et d'état d'un capteur.
Définition à la ligne 43 du fichier sensor_database.h.
int iWSdBaseInit | ( | size_t | xFileSize | ) |
Initialise la base de données.
xFileSize | Taille en octets du fichier binaire à utiliser pour le stockage de la base |
xFileSize
doit être suffisant pour y stocker au moins un xWSensorRecord
et un entier uint8_t
(nombre de xWSensorRecord stockés). int iWSdBaseOpen | ( | int | iArg1, |
void * | pvArg2 | ||
) |
Cette fonction doit être implémentée par l'utilisateur et fait partie de l'interface logicielle entre le module WusbSensorDataBase et le fichier de stockage. Elle est automatiquement appellée par WHubInit()
. Elle est chargée d'initialiser le fichier (ou la mémoire) dans lequel la base de données est stockée. Les paramètres iArg1 et pvArg2, passés à WHubInit()
sont destinés à l'initialisation de ce fichier et dépndent donc de celui-ci. Typiquement iArg1 sera la taille et pvArg2 un pointeur sur une zone de mémoire ou un fichier. Cette fonction doit se terminer par un appel à iWSdBaseInit()
et renvoyer sa valeur.
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 le module WusbSensorDataBase et le fichier de stockage. Elle est utilisée par le module WusbHub. Elle est chargée de lire le fichier (ou la mémoire) dans lequel la base de données est stockée.
pvAddress | Adresse du premier octet à lire dans le fichier |
pucData | Pointeur vers une zone mémoire où seront stockés les octets lus. |
xDataLength | nombre d'octets à lire. |
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 le module WusbSensorDataBase et le fichier de stockage. Elle est utilisée par le module WusbHub. Elle est chargée d'écrire dans le fichier (ou la mémoire) dans lequel la base de données est stockée.
pvAddress | Adresse du premier octet à écrire dans le fichier |
pucData | Pointeur vers une zone mémoire où sont stockés les octets à écrire. |
xDataLength | nombre d'octets à écrire. |
uint8_t ucWSdBaseSensorBackData | ( | uint16_t | usDeviceId, |
uint8_t * | pucBackData | ||
) |
Lecture des octets à transmettre à un capteur enregistré
pucBackData | Pointeur vers une zone mémoire où seront stockés les octets lus. |
uint16_t usWSdBaseAddSensor | ( | uint32_t | ulMid | ) |
Ajout d'un nouveau capteur dans la base.
ulMid | du capteur |
|
inline |
Ecriture des octets à transmettre à un capteur enregistré
ucBackDataLength | Nombre d'octets à écrire |
pucBackData | Pointeur vers une zone mémoire où seront stockés les octets à écrire. |
bool xWSdBaseDeleteSensor | ( | uint16_t | usDeviceId | ) |
Retire un capteur de la base.
usDeviceId | DeviceID du capteur |