Class CMCP9808

La classe CMCP9808 est dédiée au support par la librairie cpp2835 des composants MICROSCHIP MCP9808 pour des mesures de température. Cette classe hérite de la classe CI2CDevice.

Exemple d'utilisation

Cet extrait de code est un pseudo code, il regroupe dans un même flot des opérations normalement disséminées dans diverses parties d'un programme.


// Déclaration des objets requis sous forme de pointeurs
C2835Driver* m_pDriver;
CI2CBus* m_pI2CBus;
CMCP9808* m_pMCP9808;

// Initialisation des pointeurs vers les objets requis à un pointeur nul
m_pDriver = nullptr;
m_pI2CBus = nullptr;
m_pMCP9808 = nullptr;

// Création et vérificaation de création des objets requis
if((m_pDriver = new C2835Driver()) == nullptr) return false;
if((m_pI2CBus = new CI2CBus(m_pDriver)) == nullptr) return false;
if((m_pMCP9808 = new CMCP9808(m_pI2CBus, MCP9808_ADR_0X18)) == nullptr) return false;

// Initialisation de la librairie et ouverture du bus I2C
if(!m_pDriver->Initialize()) return false;
if(!m_pI2CBus->Open(I2C_CLOCK_DIVIDER_65536)) false;

// Vérification du MCP9808
bool bCheck;
if(!m_pMCP9808->OpenAndCheck(&bCheck)) return false;
if(!bCheck) return false

// Prise de mesure et récupération des valeurs mesurées
double fTemp;
if(!m_pMCP9808->Read(&fTemp)) return false;

// En fin de programme, fermeture du bus I2C et arrêt de la librairie
if(m_pI2CBus != nullptr) m_pI2CBus->Close();
if(m_pDriver != nullptr) m_pDriver->Terminate();

// En fin de programme, effacement des objets utilisés
if(m_pMCP9808 != nullptr) delete m_pMCP9808;
if(m_pI2CBus != nullptr) delete m_pI2CBus;
if(m_pDriver != nullptr) delete m_pDriver;

Fonctions publiques

CMCP9808(CI2CBus* pI2CBus, const MCP9808_ADR& Address)
boolOpenAndCheck(bool* pCheck)
boolRead(double* pTemperature)


CMCP9808::CMCP9808(CI2CBus* pI2CBus, const MCP9808_ADR& Address)

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


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 : Address - type MCP9808_ADR& - Adresse du composant sur le bus I2C.



bool CMCP9808::OpenAndCheck(bool* pCheck)

Description :Vérifie la présence et la validité du composant..


Paramètre de sortie : pCheck - type bool* - En sortie, retourne true si le compsoant est bien un MCP9808.


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



bool CMCP9808::Read(double* pTemperature)

Description : Retourne la mesure de température.


Paramètre de sortie : pTemperature - type double* - En sortie, retourne la mesure de température.


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