SysIo  1.9.0
Embedded Library and tools
gpio.h
1 
8 #ifndef _SYSIO_GPIO_H_
9 #define _SYSIO_GPIO_H_
10 
23 // Ancienne interface, sera supprimée en version 2.0
24 #include <sysio/gpio_c.h>
25 
26 
27 #if defined(__cplusplus) || defined(__DOXYGEN__)
28 // -----------------------------------------------------------------------------
29 // C++ part --->
30 
31 #include <string>
32 #include <vector>
33 #include <map>
34 #include <memory>
35 #include <exception>
36 #include <sysio/gpioconnector.h>
37 
38 namespace Sysio {
39 
40  class Device;
41 
53  class Gpio {
54  public:
55  friend class Connector;
56 
63  class Descriptor {
64  public:
65  std::string name;
66  std::vector<Connector::Descriptor> connector;
67  };
68 
74  Gpio (AccessLayer layer = AccessLayerAuto);
75 
79  virtual ~Gpio();
80 
85  bool open();
86 
90  void close();
91 
95  bool isOpen() const;
96 
100  const std::string & name() const;
101 
110  void setReleaseOnClose (bool enable);
111 
120  bool releaseOnClose() const;
121 
127  Pin::Numbering numbering() const;
128 
134 
138  const std::string & numberingName () const;
139 
143  AccessLayer accessLayer() const;
144 
148  bool isDebug() const;
149 
156  void setDebug (bool enable);
157 
158  //------------------------------------------------------------------------
159  // Accès aux connecteurs
160  //------------------------------------------------------------------------
161 
165  int connectors() const;
166 
176  Connector * connector (int conn) const;
177 
194  const std::map<int, std::shared_ptr<Connector>> & connector();
195 
196 
197  //------------------------------------------------------------------------
198  // Accès aux broches
199  //------------------------------------------------------------------------
200 
204  int size() const;
205 
213  Pin & pin (int num) const;
214 
232  const std::map<int, std::shared_ptr<Pin>> & pin();
233 
234  protected:
238  Device * device() const;
239 
248  explicit Gpio (Device * device, AccessLayer layer);
249 
250  private:
251  bool _roc; // Release On Close
252  bool _isopen;
253  AccessLayer _accesslayer;
254  Device * _device; // Accès à la couche matérielle
255  Pin::Numbering _numbering; // Numérotation en cours
256  std::map<int, std::shared_ptr<Pin>> _pin; // Broches uniquement GPIO
257  std::map<int, std::shared_ptr<Connector>> _connector; // Connecteurs avec toutes les broches physiques
258  };
259 }
264 // <--- C++ part
265 // -----------------------------------------------------------------------------
266 #endif /* defined(__cplusplus) || defined(DOXYGEN) */
267 
268 
269 /* ========================================================================== */
270 #endif /*_SYSIO_GPIO_H_ defined */
AccessLayer
Choix de la façon d&#39;accéder aux broches du GPIO.
Definition: gpiopin.h:38
void setNumbering(Pin::Numbering numbering)
Modifie la numérotation.
const std::map< int, std::shared_ptr< Pin > > & pin()
Liste des broches de type GPIO.
int connectors() const
Nombre de connecteurs.
Classe Gpio.
Definition: gpio.h:53
Gpio(AccessLayer layer=AccessLayerAuto)
Constructeur par défaut.
bool isDebug() const
Indique si le mode mise au point est actif.
AccessLayer accessLayer() const
Lecture de la couche d&#39;accès utilisée.
bool isOpen() const
Indique si ouvert.
Broche d&#39;un connecteur.
Definition: gpiopin.h:59
Pin::Numbering numbering() const
Numérotation en cours.
Descripteur d&#39;un GPIO.
Definition: gpio.h:63
int size() const
Nombre de broches de type GPIO sur la carte(TypeGpio)
void close()
Fermeture du GPIO.
Connecteur.
Definition: gpioconnector.h:30
void setDebug(bool enable)
Active le mode mise au point.
bool releaseOnClose() const
Lecture la libération des broches à la fermeture.
const std::string & numberingName() const
Nom de la numérotation en cours.
Device * device() const
Accès à la couche matérielle.
Definition: clock.h:18
void setReleaseOnClose(bool enable)
Modifie la libération des broches à la fermeture.
std::string name
Nom de la carte.
Definition: gpio.h:65
Numbering
Numérotation des broches utilisées par le GPIO.
Definition: gpiopin.h:113
bool open()
Ouverture.
std::vector< Connector::Descriptor > connector
Descripteurs des connecteurs.
Definition: gpio.h:66
virtual ~Gpio()
Destructeur.