AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR

Description détaillée

Modélisation d'une base de données permettant à un hub WirelessUSB™ de stoker les paramètres des capteurs du réseau.

Graphe de collaboration de Base de données:

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...
 

Documentation du type de l'énumération

Indice des bits de flag et d'état d'un capteur.

Valeurs énumérées
WSDBASE_VALID_DID 

Bit V à transmettre au capteur lors d'un paquet Ack

WSDBASE_TX_SEQN 

Bit T à transmettre au capteur lors d'un paquet pucData

WSDBASE_RX_SEQN 

Dernier Bit T transmis par le capteur

WSDBASE_BACKDATA 

Des données doivent être transmises au capteur

WSDBASE_NOTIFY 

Valide la notification lors de la réception d'un ACK suite à l'envoi de données au capteur

Définition à la ligne 43 du fichier sensor_database.h.

43  {
44 
45  /* Flags */
46  WSDBASE_VALID_DID = 3,
47  WSDBASE_TX_SEQN = 4,
48  WSDBASE_RX_SEQN = 5,
50  /* Status */
51  WSDBASE_BACKDATA = 6,
52  WSDBASE_NOTIFY = 7
eWSensorRecordFlags
Indice des bits de flag et d'état d'un capteur.

Documentation des fonctions

int iWSdBaseInit ( size_t  xFileSize)

Initialise la base de données.

Paramètres
xFileSizeTaille en octets du fichier binaire à utiliser pour le stockage de la base
Renvoie
0 succès. -1 en cas d'erreur. Cette fonction doit être obligatoirement appellée par iWSdBaseOpen() 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.

Renvoie
0 succès. une valeur négative en cas d'erreur.
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.

Paramètres
pvAddressAdresse du premier octet à lire dans le fichier
pucDataPointeur vers une zone mémoire où seront stockés les octets lus.
xDataLengthnombre d'octets à lire.
Renvoie
le nombre d'octets effectivement lus.
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.

Paramètres
pvAddressAdresse du premier octet à écrire dans le fichier
pucDataPointeur vers une zone mémoire où sont stockés les octets à écrire.
xDataLengthnombre d'octets à écrire.
Renvoie
le nombre d'octets effectivement écrits.
uint8_t ucWSdBaseSensorBackData ( uint16_t  usDeviceId,
uint8_t *  pucBackData 
)

Lecture des octets à transmettre à un capteur enregistré

Paramètres
pucBackDataPointeur vers une zone mémoire où seront stockés les octets lus.
Renvoie
Nombre d'octets lus.
uint16_t usWSdBaseAddSensor ( uint32_t  ulMid)

Ajout d'un nouveau capteur dans la base.

Paramètres
ulMiddu capteur
Renvoie
DeviceID du capteur ou 0xFFFF si la base est pleine
void vWSdBaseSensorSetBackData ( uint16_t  usDeviceId,
const uint8_t *  pucBackData,
uint8_t  ucBackDataLength 
)
inline

Ecriture des octets à transmettre à un capteur enregistré

Paramètres
ucBackDataLengthNombre d'octets à écrire
pucBackDataPointeur vers une zone mémoire où seront stockés les octets à écrire.
bool xWSdBaseDeleteSensor ( uint16_t  usDeviceId)

Retire un capteur de la base.

Paramètres
usDeviceIdDeviceID du capteur
Renvoie
true si le retrait a réussi