8 #ifndef _SYSIO_GPIO_PIN_H_ 9 #define _SYSIO_GPIO_PIN_H_ 117 NumberingUnknown = -1
159 std::map<Mode, std::string>
name;
233 void write (
bool value);
296 typedef void (*
Isr) (void);
393 const std::string &
name();
473 const std::string &
typeName()
const;
495 const std::map<Mode, std::string> &
modes ()
const;
502 static const std::map<Pull, std::string> &
pulls ();
509 static const std::map<Type, std::string> &
types ();
516 static const std::map<Numbering, std::string> &
numberings ();
523 static const std::map<Edge, std::string> &
edges ();
572 std::atomic<int> _run;
575 static const std::map<Pull, std::string> _pulls;
576 static const std::map<Type, std::string> _types;
577 static const std::map<Numbering, std::string> _numberings;
578 static const std::map<Mode, std::string> _sysfsmodes;
579 static const std::map<Edge, std::string> _edges;
580 static const std::map<std::string, Edge> _str2edge;
581 static const std::map<std::string, Mode> _str2mode;
582 static std::string _syspath;
584 static bool directoryExist (
const std::string & dname);
585 static void * irqThread (std::atomic<int> & run,
int fd,
Isr isr);
596 bool sysFsEnable (
bool enable);
597 void sysFsExport (
bool enable);
598 bool sysFsIsExport ()
const;
603 void sysFsSetEdge ();
605 void sysFsSetMode ();
607 static int sysFsPoll (
int fd,
int timeout_ms = -1);
608 static int sysFsRead (
int fd);
609 static int sysFsWrite (
int fd,
bool value);
611 void sysFsWriteFile (
const char * n,
const std::string & v);
612 std::string sysFsReadFile (
const char * n)
const;
613 bool sysFsFileExist (
const char * n)
const;
void setEdge(Edge edge)
Modification du front de déclenchement.
Pin(Connector *parent, const Descriptor *desc)
Constructeur.
void release()
Restaure le mode et la résistance de pull-up d'une broche de type GPIO.
int system
Numéro dans numérotation du système d'exploitation (commence à 0)
Device * device() const
Accès à la couche matérielle.
AccessLayer
Choix de la façon d'accéder aux broches du GPIO.
Mode
Mode de fonctionnement d'une broche.
Pull
Type de résistances de tirage d'une broche.
static const std::map< Edge, std::string > & edges()
Listes des fronts posibles avec leurs noms.
const std::string & pullName()
Nom de la résistance de tirage actuelle.
static const std::string & edgeName(Edge e)
Nom d'un front.
bool useSysFs() const
Indique si la broche utilise SysFs.
Type type() const
Type de broche.
int logicalNumber() const
Numéro de la broche dans la numérotation logique NumberingLogical.
int mcu
Numéro dans numérotation du microcontrôleur (commence à 0)
void attachInterrupt(Isr isr, Edge edge)
Installe une routine d'interruption (Isr)
Le mieux, toutes les fonctions sont disponibles.
void toggle()
Bascule de l'état binaire d'une sortie.
int physicalNumber() const
Numéro de la broche dans son connecteur.
bool isOpen() const
Indique si ouvert.
Front montant et descendant.
int mcuNumber() const
Numéro de la broche dans la numérotation microcontrôleur NumberingMcu.
int systemNumber() const
Numéro de la broche dans la numérotation système NumberingSystem.
Pull pull()
Résistance de tirage d'une broche de type GPIO.
Accès par l'interface "utilisateur" dans /sys/class/gpio, la plus générique.
void waitForInterrupt(Edge edge, int timeout_ms=-1)
Attente passive d'un front.
int logical
Numéro dans numérotation logique (commence à 0)
Connector * connector() const
Accès au connecteur parent.
Numérotation logique (défaut), débute à 0.
Edge edge()
Front de déclenchement.
bool read() const
Lecture de l'état binaire d'une broche de type GPIO.
static const std::map< Pull, std::string > & pulls()
Listes des résistances de tirage avec leurs noms.
Broche d'un connecteur.
const std::string & modeName()
Nom du mode actuel.
void setMode(Mode mode)
Modification du mode d'une broche de type GPIO.
int number(Numbering numbering) const
Numéro de la broche dans la numérotation demandé.
Broche d'alimentation.
int column
Numéro de colonne dans la connecteur (commence à 1)
Edge
Front de déclenchement d'une broche.
static const std::string & numberingName(Numbering n)
Nom d'une numérotation.
static const std::map< Numbering, std::string > & numberings()
Listes des numérotations avec leurs noms.
bool isDebug() const
Indique si le mode mise au point est actif.
Gpio * gpio() const
Accès au GPIO parent.
Résistance de tirage à l'état bas.
Accès par les registres du SOC, la plus performante mais il faut être sûr que cela est disponible sur...
void setPull(Pull pull)
Modification de la résistance de tirage d'une broche de type GPIO.
Mode mode()
Mode actuel d'une broche de type GPIO.
void close()
Fermeture du GPIO.
std::map< Mode, std::string > name
Noms.
void(* Isr)(void)
Routine d'interruption.
void detachInterrupt()
Désinstalle la routine d'interruption.
virtual ~Pin()
Desctructeur.
Numérotation du microcontroleur, débute à 0.
void setDebug(bool enable)
Active le mode mise au point.
int row
Numéro de ligne dans la connecteur (commence à 1)
Numérotation du système d'exploitation, débute à 0.
void write(bool value)
Modification de l'état binaire d'une sortie.
Résistance de tirage à l'état haut.
Descripteur d'une broche.
static const std::map< Type, std::string > & types()
Listes des types avec leurs noms.
Numbering
Numérotation des broches utilisées par le GPIO.
Type
Types de broches d'un connecteur.
bool forceUseSysFs(bool enable)
Force ou non l'utilisation de SysFs.
const std::string & name()
Nom de la broche.
const std::map< Mode, std::string > & modes() const
Listes des modes avec leurs noms.
const std::string & typeName() const
Nom du type de la broche.
AccessLayer accessLayer() const
Couches d'accès autorisées.