PIDUINO
Loading...
Searching...
No Matches
Piduino::Gpio

Classe Gpio. More...

#include <gpio.h>

Collaboration diagram for Piduino::Gpio:

Classes

class  Descriptor
 Descripteur d'un GPIO. More...
 

Public Member Functions

 Gpio (AccessLayer layer=AccessLayerAuto)
 Constructeur par défaut.
 
 Gpio (long long gpioDatabaseId, const SoC &soc, AccessLayer layer)
 Constructeur.
 
virtual ~Gpio ()
 Destructeur.
 
bool open ()
 Ouverture.
 
void close ()
 Fermeture du GPIO.
 
bool isOpen () const
 Indique si ouvert.
 
const std::string & name () const
 Nom de la carte.
 
long long id () const
 Identifiant en base de données.
 
void setReleaseOnClose (bool enable)
 Modifie la libération des broches à la fermeture.
 
bool releaseOnClose () const
 Lecture la libération des broches à la fermeture.
 
Pin::Numbering numbering () const
 Numérotation en cours.
 
void setNumbering (Pin::Numbering numbering)
 Modifie la numérotation.
 
const std::string & numberingName () const
 Nom de la numérotation en cours.
 
AccessLayer accessLayer () const
 Lecture de la couche d'accès utilisée.
 
bool isDebug () const
 Indique si le mode mise au point est actif.
 
void setDebug (bool enable)
 Active le mode mise au point.
 
int connectors () const
 Nombre de connecteurs.
 
Connectorconnector (int conn) const
 Connecteur.
 
const std::map< int, std::shared_ptr< Connector > > & connector ()
 Liste des connecteurs de la carte.
 
int size () const
 Nombre de broches de type GPIO sur la carte(TypeGpio)
 
Pinpin (int num) const
 Broche GPIO.
 
Pinpin (long long id) const
 Broche GPIO par identifiant de base de données.
 
const std::map< int, std::shared_ptr< Pin > > & pin ()
 Liste des broches de type GPIO.
 

Protected Member Functions

GpioDevicedevice () const
 Accès à la couche matérielle.
 
 Gpio (Private &dd)
 

Protected Attributes

std::unique_ptr< Privated_ptr
 

Detailed Description

Classe Gpio.

Author
Pascal JEAN
Date
02/22/18

Definition at line 54 of file gpio.h.

Constructor & Destructor Documentation

◆ Gpio() [1/3]

Piduino::Gpio::Gpio ( AccessLayer  layer = AccessLayerAuto)

Constructeur par défaut.

Parameters
layerchoix de la couche d'accès, AccessLayerAuto par défaut, dans ce cas, le choix est laissé à la couche GpioDevice (conseillé).

◆ Gpio() [2/3]

Piduino::Gpio::Gpio ( long long  gpioDatabaseId,
const SoC soc,
AccessLayer  layer 
)

Constructeur.

Parameters
gpioDatabaseIdidentifiant du GPIO en base de données
socSoC de la carte
layerchoix de la couche d'accès

◆ ~Gpio()

virtual Piduino::Gpio::~Gpio ( )
virtual

Destructeur.

◆ Gpio() [3/3]

Piduino::Gpio::Gpio ( Private dd)
protected

Member Function Documentation

◆ accessLayer()

AccessLayer Piduino::Gpio::accessLayer ( ) const

Lecture de la couche d'accès utilisée.

◆ close()

void Piduino::Gpio::close ( )

Fermeture du GPIO.

◆ connector() [1/2]

const std::map< int, std::shared_ptr< Connector > > & Piduino::Gpio::connector ( )

Liste des connecteurs de la carte.

Permet de parcourir les connecteurs à l'aide des itérateurs de la STL, par exemple pour imprimer tous les connecteurs

Gpio * g = new Gpio;
// ....
for (auto p = g->connector().cbegin(); p != g->connector().cend(); ++p) {
// p est une std::pair: first = numéro et second = connecteur
cout << p->second;
}
Classe Gpio.
Definition gpio.h:54
Connector * connector(int conn) const
Connecteur.
Returns
Container std::map des connecteurs indexé sur leur numéro

◆ connector() [2/2]

Connector * Piduino::Gpio::connector ( int  conn) const

Connecteur.

Parameters
connnuméro du connecteur, les numéros ne sont pas forcément contiguës, pour parcourir les connecteurs on utilisera les itérateurs de la STL associés à connector(). Déclenche une exception std::out_of_range si en dehors des clous.
Returns
pointeur sur le connecteur

◆ connectors()

int Piduino::Gpio::connectors ( ) const

Nombre de connecteurs.

◆ device()

GpioDevice * Piduino::Gpio::device ( ) const
protected

Accès à la couche matérielle.

◆ id()

long long Piduino::Gpio::id ( ) const

Identifiant en base de données.

◆ isDebug()

bool Piduino::Gpio::isDebug ( ) const

Indique si le mode mise au point est actif.

◆ isOpen()

bool Piduino::Gpio::isOpen ( ) const

Indique si ouvert.

◆ name()

const std::string & Piduino::Gpio::name ( ) const

Nom de la carte.

◆ numbering()

Pin::Numbering Piduino::Gpio::numbering ( ) const

Numérotation en cours.

La numérotation par défaut est NumberingLogical.

◆ numberingName()

const std::string & Piduino::Gpio::numberingName ( ) const

Nom de la numérotation en cours.

◆ open()

bool Piduino::Gpio::open ( )

Ouverture.

Returns
true si ouvert

◆ pin() [1/3]

const std::map< int, std::shared_ptr< Pin > > & Piduino::Gpio::pin ( )

Liste des broches de type GPIO.

Permet de parcourir les broches GPIO à l'aide des itérateurs de la STL, par exemple pour mettre en entrée toutes les broches:

// ....
for (auto p = g->pin().cbegin(); p != g->pin().cend(); ++p) {
// p est une std::pair: first = numéro et second = broche
p->second->setMode(ModeInput);
}
Pin & pin(int num) const
Broche GPIO.
Returns
Container std::map des broches indexé avec la numérotation numbering().

◆ pin() [2/3]

Pin & Piduino::Gpio::pin ( int  num) const

Broche GPIO.

Seules les broches de type Pin::TypeGpio sont accessibles à l'aide de cette fonction. Les autres types de broches ne sont accessibles qu'à partir de Gpio::connector().

Parameters
numnuméro de broche dans la numérotation numbering(). Déclenche une exception std::out_of_range si la broche n'existe pas
Returns
référence sur la broche

◆ pin() [3/3]

Pin * Piduino::Gpio::pin ( long long  id) const

Broche GPIO par identifiant de base de données.

Seules les broches de type Pin::TypeGpio sont accessibles à l'aide de cette fonction. Les autres types de broches ne sont accessibles qu'à partir de Gpio::connector().

Parameters
ididentifiant de la broche dans la base de données.
Returns
pointeur sur la broche, null si la broche n'existe pas.

◆ releaseOnClose()

bool Piduino::Gpio::releaseOnClose ( ) const

Lecture la libération des broches à la fermeture.

Par défaut, l'ensemble des broches utilisées sont libérées à l'appel de close(). Cette fonction permet de lire l'état de cette directive

Returns
true si validé, false sinon

◆ setDebug()

void Piduino::Gpio::setDebug ( bool  enable)

Active le mode mise au point.

Cela active l'affichage d'informations de mise au point de la couche matérielle (GpioDevice).

◆ setNumbering()

void Piduino::Gpio::setNumbering ( Pin::Numbering  numbering)

Modifie la numérotation.

◆ setReleaseOnClose()

void Piduino::Gpio::setReleaseOnClose ( bool  enable)

Modifie la libération des broches à la fermeture.

Par défaut, l'ensemble des broches utilisées sont libérées à l'appel de close(). Cette fonction permet de modifier ce comportement.

Parameters
enabletrue active la libération, false la désactive.

◆ size()

int Piduino::Gpio::size ( ) const

Nombre de broches de type GPIO sur la carte(TypeGpio)

Member Data Documentation

◆ d_ptr

std::unique_ptr<Private> Piduino::Gpio::d_ptr
protected

Definition at line 291 of file gpio.h.