Class CI2CDevice

La classe CI2CDevice représente un périphérique générique I2C et exporte toutes les fonctions nécessaires aux communications avec ce composant.


Pour des exemples et informations sur l'utilisation des bus I2C et SPI, se reporter à la rubrique : Exemples I2C et SPI avec cpp2835.

Fonctions publiques

CI2CDevice(CI2CBus* pI2CBus, const uint8_t& uDeviceAddress)
boolRead(char* pcVal, const uint32_t& uLen, uint32_t* puLenRead)
boolReadByteFromRegister(const uint8_t& unReg, uint8_t* punVal)
boolReadRegisterRS(char* pcRegAddr, char* pcVal, const uint32_t& uLen, uint32_t* puLenRead)
boolReadWordFromRegister(const uint8_t& unReg, uint16_t* punVal)
boolSelect()
boolWrite(const char* pcVal, const uint32_t& uLen)
boolWriteByteToRegister(const uint8_t& unReg, const uint8_t& unVal)
boolWriteReadRS(char* pcWVal, const uint32_t& uWLen, char* pcRVal, const uint32_t& uRLen)
boolWriteWordToRegister(const uint8_t& unReg, const uint16_t& unVal)


CI2CDevice::CI2CDevice(CI2CBus* pI2CBus, const uint8_t& uDeviceAddress)

Description : Contructeur. Instancie un objet de la classe CI2CDevice.


Paramètre : pI2CBus - type CI2CBus* - Pointeur vers l'objet CI2CBus auquel est connecté ce composant. L'objet pI2CBus aura été instancié et ouvert en amont de cet appel.

Paramètre : uDeviceAddress - type uint8_t - Adresse du composant sur le bus I2C.



bool CI2CDevice::Read(char* pcVal, const uint32_t& uLen, uint32_t* puLenRead)

Description : Receptionne des données sur le bus I2C et les place dans le paramètre pcVal. Ce paramètre doit pointer vers une zone mémoire dimensionnée pour recevoir uLen caractères. Le nombre de caractères lus est écrit vers le pointeur puLenRead.


Paramètre de sortie : pcVal - type char* - Pointeur vers une chaine de caractères recevant les données reçues.

Paramètre : uLen - type uint32_t - Taille en nombre de caractères du pointeur pcVal.

Paramètre de sortie : puLenRead - type uint32_t* - En retour contient le nombre de caractères effectivement reçus.


Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CI2CDevice::ReadByteFromRegister(char* pcRegAddr, char* pcVal, const uint32_t& uLen, uint32_t* puLenRead)

Description : Lit un registre 8 bit et place sa valeur dans le paramètre pcVal. Ce paramètre doit pointer vers une zone mémoire dimensionnée pour recevoir uLen caractères. Le nombre de caractères lus est écrit vers le pointeur puLenRead.


Paramètre de sortie : pcRegAddr - type char* - Adresse du registre du composant.

Paramètre de sortie : pcVal - type char* - Pointeur vers une chaine de caractères recevant les données reçues.

Paramètre : uLen - type uint32_t - Taille en nombre de caractères du pointeur pcVal.

Paramètre de sortie : puLenRead - type uint32_t* - En retour contient le nombre de caractères effectivement reçus.


Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CI2CDevice::ReadRegisterRS(char* pcRegAddr, char* pcVal, const uint32_t& uLen, uint32_t* puLenRead)

Description : Lit un registre 8 bit et place sa valeur dans le paramètre pcVal pour un composant nécessitant un "restart" après avoir été adressé.


Paramètre : pcRegAddr - type char* - Pointeur vers une chaine de caractères contenant l'adresse du registre à lire.

Paramètre de sortie : pcVal - type char* - Pointeur vers une chaine de caractères recevant les données reçues.

Paramètre : uLen - type uint32_t - Taille en nombre de caractères du pointeur pcVal.

Paramètre de sortie : puLenRead - type uint32_t* - En retour contient le nombre de caractères effectivement reçus.


Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CI2CDevice::ReadWordFromRegister(const uint8_t& unReg, uint16_t* punVal)

Description : Lit un registre 16 bit et et place sa valeur dans le paramètre punVal.


Paramètre de sortie : unReg - type uint8_t - Adresse du registre du composant.

Paramètre : punVal - type uint16_t* - Contient la valeur du registre en srotie de la fonction.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CI2CDevice::Select()

Description : Désigne ce périphérique I2C comme destinataire des prochaines écritures et lectures sur le bus I2C.


Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CI2CDevice::Write(const char* pcVal, const uint32_t& uLen)

Description : Transmet un buffer d'octets vers le périphérique I2C.


Paramètre : pcVal - type char* - Pointeur vers le buffer à envoyer au pépriphérique.

Paramètre : uLen - type uint32_t - Taille en nombre de caractères du pointeur pcVal.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CI2CDevice::WriteByteToRegister(const uint8_t& unReg, const uint8_t& unVal)

Description :Ecrit une valeur dans un registre 8 bit du périphérique I2C.


Paramètre : unReg - type uint8_t - Adresse du registre du pépriphérique.

Paramètre : unVal - type uint8_t - Valeur à écrire dans le registre.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CI2CDevice::WriteReadRS(char* pcWVal, const uint32_t& uWLen, char* pcRVal, const uint32_t& uRLen)

Description : Transmet des données puis lit des données sur des périphériques nécessitant un "restart" après avoir été adressé.


Paramètre : pcWVal - type char* - Pointeur vers une chaine de caractères contenant les octets à envoyer.

Paramètre : uWLen - type uint32_t - Taille en nombre de caractères du pointeur pcWVal.

Paramètre de sortie : pcRVal - type char* - Pointeur vers une chaine de caractères recevant les données reçues.

Paramètre de sortie : uRLen - type uint32_t - Taille en nombre de caractères du pointeur pcRVal.


Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CI2CDevice::WriteWordToRegister(const uint8_t& unReg, const uint16_t& unVal)

Description :Ecrit une valeur dans un registre 16 bit du périphérique I2C.


Paramètre : unReg - type uint8_t - Adresse du registre du pépriphérique.

Paramètre : unVal - type uint16_t - Valeur à écrire dans le registre.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.