![]() |
SysIo
1.9.0
Embedded Library and tools
|
![]() |
Classes | |
class | Sysio::Pin |
Broche d'un connecteur. More... | |
class | Sysio::Pin::Descriptor |
Descripteur d'une broche. More... | |
class | Sysio::Pin::Number |
Numéro de broche. More... | |
Functions | |
AccessLayer | Sysio::Pin::accessLayer () const |
Couches d'accès autorisées. | |
void | Sysio::Pin::attachInterrupt (Isr isr, Edge edge) |
Installe une routine d'interruption (Isr) More... | |
void | Sysio::Pin::close () |
Fermeture du GPIO. | |
int | Sysio::Pin::column () const |
Numéro de colonne dans la connecteur. More... | |
Connector * | Sysio::Pin::connector () const |
Accès au connecteur parent. | |
void | Sysio::Pin::detachInterrupt () |
Désinstalle la routine d'interruption. More... | |
Device * | Sysio::Pin::device () const |
Accès à la couche matérielle. | |
Edge | Sysio::Pin::edge () |
Front de déclenchement. More... | |
static const std::string & | Sysio::Pin::edgeName (Edge e) |
Nom d'un front. | |
static const std::map< Edge, std::string > & | Sysio::Pin::edges () |
Listes des fronts posibles avec leurs noms. More... | |
bool | Sysio::Pin::forceUseSysFs (bool enable) |
Force ou non l'utilisation de SysFs. More... | |
Gpio * | Sysio::Pin::gpio () const |
Accès au GPIO parent. | |
bool | Sysio::Pin::isDebug () const |
Indique si le mode mise au point est actif. | |
bool | Sysio::Pin::isOpen () const |
Indique si ouvert. | |
int | Sysio::Pin::logicalNumber () const |
Numéro de la broche dans la numérotation logique NumberingLogical . More... | |
int | Sysio::Pin::mcuNumber () const |
Numéro de la broche dans la numérotation microcontrôleur NumberingMcu . More... | |
Mode | Sysio::Pin::mode () |
Mode actuel d'une broche de type GPIO. More... | |
const std::string & | Sysio::Pin::modeName () |
Nom du mode actuel. | |
const std::string & | Sysio::Pin::modeName (Mode mode) const |
Nom d'un mode. | |
const std::map< Mode, std::string > & | Sysio::Pin::modes () const |
Listes des modes avec leurs noms. More... | |
const std::string & | Sysio::Pin::name () |
Nom de la broche. More... | |
const std::string & | Sysio::Pin::name (Mode mode) const |
Nom correspondant à un mode. More... | |
int | Sysio::Pin::number (Numbering numbering) const |
Numéro de la broche dans la numérotation demandé. More... | |
static const std::string & | Sysio::Pin::numberingName (Numbering n) |
Nom d'une numérotation. | |
static const std::map< Numbering, std::string > & | Sysio::Pin::numberings () |
Listes des numérotations avec leurs noms. More... | |
bool | Sysio::Pin::open () |
Ouverture. More... | |
int | Sysio::Pin::physicalNumber () const |
Numéro de la broche dans son connecteur. More... | |
Sysio::Pin::Pin (Connector *parent, const Descriptor *desc) | |
Constructeur. More... | |
Pull | Sysio::Pin::pull () |
Résistance de tirage d'une broche de type GPIO. More... | |
const std::string & | Sysio::Pin::pullName () |
Nom de la résistance de tirage actuelle. | |
static const std::string & | Sysio::Pin::pullName (Pull n) |
Nom d'une résistance de tirage. | |
static const std::map< Pull, std::string > & | Sysio::Pin::pulls () |
Listes des résistances de tirage avec leurs noms. More... | |
bool | Sysio::Pin::read () const |
Lecture de l'état binaire d'une broche de type GPIO. More... | |
void | Sysio::Pin::release () |
Restaure le mode et la résistance de pull-up d'une broche de type GPIO. More... | |
int | Sysio::Pin::row () const |
Numéro de ligne dans la connecteur. More... | |
void | Sysio::Pin::setDebug (bool enable) |
Active le mode mise au point. More... | |
void | Sysio::Pin::setEdge (Edge edge) |
Modification du front de déclenchement. More... | |
void | Sysio::Pin::setMode (Mode mode) |
Modification du mode d'une broche de type GPIO. More... | |
void | Sysio::Pin::setPull (Pull pull) |
Modification de la résistance de tirage d'une broche de type GPIO. More... | |
int | Sysio::Pin::systemNumber () const |
Numéro de la broche dans la numérotation système NumberingSystem . More... | |
void | Sysio::Pin::toggle () |
Bascule de l'état binaire d'une sortie. More... | |
Type | Sysio::Pin::type () const |
Type de broche. | |
const std::string & | Sysio::Pin::typeName () const |
Nom du type de la broche. | |
static const std::string & | Sysio::Pin::typeName (Type t) |
Nom d'un type. | |
static const std::map< Type, std::string > & | Sysio::Pin::types () |
Listes des types avec leurs noms. More... | |
bool | Sysio::Pin::useSysFs () const |
Indique si la broche utilise SysFs. | |
void | Sysio::Pin::waitForInterrupt (Edge edge, int timeout_ms=-1) |
Attente passive d'un front. More... | |
void | Sysio::Pin::write (bool value) |
Modification de l'état binaire d'une sortie. More... | |
virtual | Sysio::Pin::~Pin () |
Desctructeur. | |
Typedefs | |
typedef void(* | Sysio::Pin::Isr) (void) |
Routine d'interruption. More... | |
Variables | |
int | Sysio::Pin::Number::column |
Numéro de colonne dans la connecteur (commence à 1) | |
int | Sysio::Pin::Number::logical |
Numéro dans numérotation logique (commence à 0) | |
int | Sysio::Pin::Number::mcu |
Numéro dans numérotation du microcontrôleur (commence à 0) | |
std::map< Mode, std::string > | Sysio::Pin::Descriptor::name |
Noms. | |
Number | Sysio::Pin::Descriptor::num |
Numéros. | |
int | Sysio::Pin::Number::row |
Numéro de ligne dans la connecteur (commence à 1) | |
int | Sysio::Pin::Number::system |
Numéro dans numérotation du système d'exploitation (commence à 0) | |
Type | Sysio::Pin::Descriptor::type |
Type de broche. | |
typedef void(* Sysio::Pin::Isr) (void) |
enum Sysio::Pin::Edge |
enum Sysio::Pin::Mode |
Mode de fonctionnement d'une broche.
Definition at line 68 of file gpiopin.h.
Numérotation des broches utilisées par le GPIO.
Enumerator | |
---|---|
NumberingLogical |
Numérotation logique (défaut), débute à 0. |
NumberingMcu |
Numérotation du microcontroleur, débute à 0. |
NumberingSystem |
Numérotation du système d'exploitation, débute à 0. |
Definition at line 113 of file gpiopin.h.
enum Sysio::Pin::Pull |
enum Sysio::Pin::Type |
#include <gpiopin.h>
Installe une routine d'interruption (Isr)
Cette fonction créée un thread qui attend l'arrivée d'une interruption déclenchée par chaque front edge et exécute la fonction isr.
isr | fonction exécuté à chaque interruption |
edge | front déclenchant l'interruption |
int Sysio::Pin::column | ( | ) | const |
#include <gpiopin.h>
Numéro de colonne dans la connecteur.
void Sysio::Pin::detachInterrupt | ( | ) |
#include <gpiopin.h>
Désinstalle la routine d'interruption.
Le thread est détruit.
Edge Sysio::Pin::edge | ( | ) |
#include <gpiopin.h>
Front de déclenchement.
|
static |
#include <gpiopin.h>
Listes des fronts posibles avec leurs noms.
Permet de parcourir les fronts à l'aide des itérateurs de la STL.
bool Sysio::Pin::forceUseSysFs | ( | bool | enable | ) |
#include <gpiopin.h>
Force ou non l'utilisation de SysFs.
Si le Gpio parent n'autorise que la couche d'accès SysFs (AccessLayerSysFs), cette fonction ne fait rien.
int Sysio::Pin::logicalNumber | ( | ) | const |
#include <gpiopin.h>
Numéro de la broche dans la numérotation logique NumberingLogical
.
Cette numérotation commence à 0.
TypeGpio
) int Sysio::Pin::mcuNumber | ( | ) | const |
#include <gpiopin.h>
Numéro de la broche dans la numérotation microcontrôleur NumberingMcu
.
Cette numérotation commence à 0.
TypeGpio
) Mode Sysio::Pin::mode | ( | ) |
#include <gpiopin.h>
Mode actuel d'une broche de type GPIO.
const std::map<Mode, std::string>& Sysio::Pin::modes | ( | ) | const |
#include <gpiopin.h>
Listes des modes avec leurs noms.
Permet de parcourir les modes à l'aide des itérateurs de la STL
const std::string& Sysio::Pin::name | ( | ) |
#include <gpiopin.h>
Nom de la broche.
mode()
ou le nom générique si le mode actuel n'est pas associé à un nom ou si la broche n'est pas de type TypeGpio. const std::string& Sysio::Pin::name | ( | Mode | mode | ) | const |
#include <gpiopin.h>
Nom correspondant à un mode.
mode | mode demandée, déclenche une exception std::out_of_range il n'est pas supporté par cette broche. |
int Sysio::Pin::number | ( | Numbering | numbering | ) | const |
#include <gpiopin.h>
Numéro de la broche dans la numérotation demandé.
La numérotation commence à 0.
numbering | numérotation demandée, déclenche une exception std::invalid_argument si incorrecte |
TypeGpio
)
|
static |
#include <gpiopin.h>
Listes des numérotations avec leurs noms.
Permet de parcourir les numérotations à l'aide des itérateurs de la STL.
|
protected |
#include <gpiopin.h>
Ouverture.
int Sysio::Pin::physicalNumber | ( | ) | const |
#include <gpiopin.h>
Numéro de la broche dans son connecteur.
Cette numérotation commence à 1.
Sysio::Pin::Pin | ( | Connector * | parent, |
const Descriptor * | desc | ||
) |
#include <gpiopin.h>
Constructeur.
Une broche ne peut être instanciée que par une classe Connector.
parent | pointeur sur le GPIO parent |
desc | pointeur sur la description |
Pull Sysio::Pin::pull | ( | ) |
#include <gpiopin.h>
Résistance de tirage d'une broche de type GPIO.
|
static |
#include <gpiopin.h>
Listes des résistances de tirage avec leurs noms.
Permet de parcourir les numérotations à l'aide des itérateurs de la STL.
bool Sysio::Pin::read | ( | ) | const |
#include <gpiopin.h>
Lecture de l'état binaire d'une broche de type GPIO.
Déclenche une exception std::domain_error si la broche n'est pas de type TypeGpio
et une exeception std::system_error si la lecture est impossible sur le système.
void Sysio::Pin::release | ( | ) |
int Sysio::Pin::row | ( | ) | const |
#include <gpiopin.h>
Numéro de ligne dans la connecteur.
void Sysio::Pin::setDebug | ( | bool | enable | ) |
#include <gpiopin.h>
Active le mode mise au point.
Cela active l'affichage d'informations de mise au point de la couche matérielle (GpioDevice).
void Sysio::Pin::setEdge | ( | Edge | edge | ) |
#include <gpiopin.h>
Modification du front de déclenchement.
L'accès par SysFs doit donc être autorisée dans le Gpio parent (AccessLayerSysFs ou AccessLayerAll) ou par l'appel à forceUseSysFs(true).
Si la broche n'est pas en mode SysFs et que cet accès est autorisé, la broche est passée automatiquement en mode SysFs.
edge | choix du front |
void Sysio::Pin::setMode | ( | Mode | mode | ) |
#include <gpiopin.h>
Modification du mode d'une broche de type GPIO.
Déclenche une exception std::domain_error si la broche n'est pas de type TypeGpio
.
mode | nouveau mode, une exception std::invalid_argument est déclenchée si le mode demandé n'est pas supporté. |
void Sysio::Pin::setPull | ( | Pull | pull | ) |
#include <gpiopin.h>
Modification de la résistance de tirage d'une broche de type GPIO.
Déclenche une exception std::domain_error si la broche n'est pas de type TypeGpio
.
pull | nouvelle résistance, PullOff pour désactiver, une exception std::invalid_argument est déclenchée si la résistance demandée n'est pas supportée. |
int Sysio::Pin::systemNumber | ( | ) | const |
#include <gpiopin.h>
Numéro de la broche dans la numérotation système NumberingSystem
.
Cette numérotation commence à 0.
TypeGpio
) void Sysio::Pin::toggle | ( | ) |
#include <gpiopin.h>
Bascule de l'état binaire d'une sortie.
Si la sortie est à l'état bas, elle passe à l'état haut et inversement.
Déclenche une exception std::domain_error si la broche n'est pas de type TypeGpio
ou si elle n'est pas en sortie (ModeOutput).
|
static |
#include <gpiopin.h>
Listes des types avec leurs noms.
Permet de parcourir les modes à l'aide des itérateurs de la STL
void Sysio::Pin::waitForInterrupt | ( | Edge | edge, |
int | timeout_ms = -1 |
||
) |
#include <gpiopin.h>
Attente passive d'un front.
L'implémentation utilise les interruptions matérielles gérées par SysFs.
Toutes les broches du GPIO ne disposent pas ce cette fonctionnalité (cela dépend de la plateforme). Généralement, on pourra identifier une telle broche du GPIO ou du SOC par un INT se trouvant dans le nom. Par exemple, la broche PA0 sur un SOC AllWinner H3 a cette fonctionnalité car sa fonction ALT6 est PA_EINT0. Si les interruptions ne sont pas supportées par la broche, un appel à waitForInterrupt()
déclenchera une exeception std::system_error avec le code ENOSYS (function_not_supported).
L'accès par SysFs doit donc être autorisée dans le Gpio parent (AccessLayerSysFs ou AccessLayerAll) ou par l'appel à forceUseSysFs(true).
Si la broche n'est pas en mode SysFs et que cet accès est autorisé, la broche est passée automatiquement en mode SysFs.
edge | front de déclenchement |
timeout | temps maximal d'attente en millisecondes. -1 pour l'infini. Si une autre valeur est fournie et que le délai est atteint avant que le front survienne, une exception std::system_error avec le code ETIME est déclenchée. |
void Sysio::Pin::write | ( | bool | value | ) |
#include <gpiopin.h>
Modification de l'état binaire d'une sortie.
Déclenche une exception std::domain_error si la broche n'est pas de type TypeGpio
ou si elle n'est pas en sortie (ModeOutput).
value | true pour un état logique haut (VccIo). |