![]() |
PIDUINO
|
#include <spidev.h>
Classes | |
class | Cs |
Broche de chip select d'un bus SPI. More... | |
class | Info |
Informations sur un bus SPI. More... | |
class | Settings |
class | Transfer |
Public Types | |
enum | OpenModeFlag { NotOpen = 0x0000 , Append = std::ios_base::app , AtEnd = std::ios_base::ate , Binary = std::ios_base::binary , ReadOnly = std::ios_base::in , WriteOnly = std::ios_base::out , ReadWrite = ReadOnly | WriteOnly , Truncate = std::ios_base::trunc , IosModes = Append | AtEnd | Binary | ReadOnly | WriteOnly | Truncate , Unbuffered = (Truncate << 1) } |
Flags that specify how the device is to be opened. More... | |
typedef Flags< OpenModeFlag > | OpenMode |
Type representing a combination of OpenModeFlag values. | |
Public Member Functions | |
SpiDev () | |
Constructeur par défaut. | |
SpiDev (const Info &bus) | |
Constructeur à partir d'un bus. | |
SpiDev (int idBus, int idCs=0) | |
Constructeur à partir identifiant de bus. | |
SpiDev (const std::string &path) | |
Constructeur à partir chemin de bus. | |
SpiDev (const char *path) | |
Constructeur à partir chemin de bus const char *. | |
virtual | ~SpiDev () |
Destructeur. | |
virtual bool | open (OpenMode mode=IoDevice::ReadWrite) |
Ouverture du bus SPI La configuration settings() est appliquée. | |
virtual void | close () |
Fermeture du bus Cette fonction est appelée par le destructeur. | |
void | setBus (int idBus, int idCs=0) |
Modification du bus SPI Si la liaison ouverte, celle-ci est fermée, puis réouverte sur le nouveau bus. | |
void | setBus (const Info &bus) |
Surcharge de setBus() à partir d'une variable Info. | |
void | setBusPath (const std::string &path) |
Modification du chemin du bus Si la liaison ouverte, celle-ci est fermée, puis réouverte sur le nouveau bus. | |
void | setBusPath (const char *path) |
Surcharge de setBusPath() à partir d'une variable const char *. | |
const Info & | bus () const |
Informations sur le bus. | |
int | transfer (const uint8_t *txbuf, uint8_t *rxbuf, uint32_t len) |
Transfert d'un message en entrée-sortie. | |
int | read (uint8_t *buffer, uint32_t len) |
Lecture d'un message. | |
int | write (const uint8_t *buffer, uint32_t len) |
Ecriture d'un message. | |
void | pushTransfer (Transfer &t) |
Empilement d'un message dans la pile de transmission Permet de gérer l'envoi de plusieurs message d'un seul tenant. Le ou les messages seront transmis lors du prochain appel à transfer() , read() ou write() | |
int | transfer () |
Transmission des messages de la pile de transmission La pile est vidée avant retour. | |
void | clear () |
Vidage de la pile de transmission Pas nécessaire après transfer() | |
void | setSettings (const Settings &settings) |
Modification des réglages de la transmission Si la liaison est ouverte les réglages sont appliqués immédiatement, sinon ils le seront à l'ouverture par open() | |
void | setMode (uint8_t mode) |
Modification du mode de fonctionnement Les valeurs généralement utilisées sont SPI_MODE_0, SPI_MODE_1, SPI_MODE_2 ou SPI_MODE_3 qui correspondent aux valeurs de polarité et de phase d'horloge telle que définies dans les standards https://en.wikipedia.org/wiki/Serial_Peripheral_Interface#Clock_polarity_and_phase. On pourra y ajouter des flags en effectuant un "OU" (|) avec les valeurs suivantes (prise en compte dépendant de la plateforme !): | |
void | setSpeedHz (uint32_t speedHz) |
Modification de la vitesse maximale de transmission en Hz Si la liaison est ouverte les réglages sont appliqués immédiatement, sinon ils le seront à l'ouverture par open() | |
void | setBitsPerWord (uint8_t bit) |
Modification du nombre de bits par mot Si la liaison est ouverte les réglages sont appliqués immédiatement, sinon ils le seront à l'ouverture par open() | |
void | setBitOrder (bool bitOrder) |
Modification de l'ordre de transmission des bits MsbFirst ou LsbFirst Si la liaison est ouverte les réglages sont appliqués immédiatement, sinon ils le seront à l'ouverture par open() | |
const Settings & | settings () const |
Configuration actuelle. | |
uint8_t | mode () const |
Mode de fonctionnement cf setMode() | |
uint32_t | speedHz () const |
Vitesse maximale de transmission en Hz. | |
uint8_t | bitsPerWord () const |
Nombre de bits par mot. | |
bool | bitOrder () const |
Ordre de transmission des bits MsbFirst ou LsbFirst . | |
OpenMode | openMode () const |
Returns the current open mode of the device. | |
virtual bool | isOpen () const |
Returns true if the device is currently open. | |
bool | isReadable () const |
Returns true if the device is readable. | |
bool | isWritable () const |
Returns true if the device is writable. | |
bool | isBuffered () const |
Returns true if the device is buffered. | |
virtual bool | isSequential () const |
Returns true if this device is sequential; otherwise returns false. | |
void | setTextModeEnabled (bool enabled) |
Enables or disables text mode for the device. | |
bool | isTextModeEnabled () const |
Returns true if text mode is enabled. | |
void | setDebug (bool enabled) |
Enables or disables debug mode for the device. | |
bool | isDebug () const |
Returns true if debug mode is enabled. | |
virtual std::string | errorString () const |
Returns a human-readable description of the last error. | |
virtual int | error () const |
Returns the code of the last error. | |
Protected Member Functions | |
SpiDev (Private &dd) | |
Protected Attributes | |
std::unique_ptr< Private > | d_ptr |
Pointer to the private implementation. | |
|
inherited |
Type representing a combination of OpenModeFlag values.
Definition at line 70 of file iodevice.h.
|
inherited |
Flags that specify how the device is to be opened.
These flags control the behavior of the device when it is opened. They can be combined using bitwise OR.
Definition at line 48 of file iodevice.h.
Piduino::SpiDev::SpiDev | ( | ) |
Constructeur par défaut.
Piduino::SpiDev::SpiDev | ( | const Info & | bus | ) |
Constructeur à partir d'un bus.
|
explicit |
Constructeur à partir identifiant de bus.
|
explicit |
Constructeur à partir chemin de bus.
|
explicit |
Constructeur à partir chemin de bus const char *.
|
virtual |
Destructeur.
|
protected |
bool Piduino::SpiDev::bitOrder | ( | ) | const |
Ordre de transmission des bits MsbFirst
ou LsbFirst
.
uint8_t Piduino::SpiDev::bitsPerWord | ( | ) | const |
Nombre de bits par mot.
const Info & Piduino::SpiDev::bus | ( | ) | const |
Informations sur le bus.
Referenced by Piduino::SpiDev::Info::Info().
void Piduino::SpiDev::clear | ( | ) |
Vidage de la pile de transmission Pas nécessaire après transfer()
|
virtual |
Fermeture du bus Cette fonction est appelée par le destructeur.
Reimplemented from Piduino::IoDevice.
|
virtualinherited |
Returns the code of the last error.
|
virtualinherited |
Returns a human-readable description of the last error.
|
inherited |
Returns true if the device is buffered.
|
inherited |
Returns true if debug mode is enabled.
|
virtualinherited |
Returns true if the device is currently open.
|
inherited |
Returns true if the device is readable.
|
virtualinherited |
Returns true if this device is sequential; otherwise returns false.
Sequential devices, as opposed to random-access devices, have no concept of a start, an end, a size, or a current position, and do not support seeking. You can only read from the device when it reports that data is available. The most common example of a sequential device is a network socket. On Unix, special files such as /dev/zero and fifo pipes are sequential. Regular files, on the other hand, do support random access. They have both a size and a current position, and they also support seeking backwards and forwards in the data stream. Regular files are non-sequential.
The IoDevice implementation returns false.
|
inherited |
Returns true if text mode is enabled.
|
inherited |
Returns true if the device is writable.
uint8_t Piduino::SpiDev::mode | ( | ) | const |
Mode de fonctionnement cf setMode()
|
virtual |
Ouverture du bus SPI La configuration settings() est appliquée.
mode | mode d'ouverture |
Reimplemented from Piduino::IoDevice.
|
inherited |
Returns the current open mode of the device.
void Piduino::SpiDev::pushTransfer | ( | Transfer & | t | ) |
Empilement d'un message dans la pile de transmission Permet de gérer l'envoi de plusieurs message d'un seul tenant. Le ou les messages seront transmis lors du prochain appel à transfer()
, read()
ou write()
t | référence sur le message |
int Piduino::SpiDev::read | ( | uint8_t * | buffer, |
uint32_t | len | ||
) |
Lecture d'un message.
rxbuf | buffer qui contiendra les octets lues sur MISO |
len | nombre d'octets à lire. |
void Piduino::SpiDev::setBitOrder | ( | bool | bitOrder | ) |
Modification de l'ordre de transmission des bits MsbFirst
ou LsbFirst
Si la liaison est ouverte les réglages sont appliqués immédiatement, sinon ils le seront à l'ouverture par open()
void Piduino::SpiDev::setBitsPerWord | ( | uint8_t | bit | ) |
Modification du nombre de bits par mot Si la liaison est ouverte les réglages sont appliqués immédiatement, sinon ils le seront à l'ouverture par open()
void Piduino::SpiDev::setBus | ( | const Info & | bus | ) |
void Piduino::SpiDev::setBus | ( | int | idBus, |
int | idCs = 0 |
||
) |
Modification du bus SPI Si la liaison ouverte, celle-ci est fermée, puis réouverte sur le nouveau bus.
idBus | identifiant du bus 0..N |
idCs | identifiant du chip select 0..C |
void Piduino::SpiDev::setBusPath | ( | const char * | path | ) |
Surcharge de setBusPath() à partir d'une variable const char *.
void Piduino::SpiDev::setBusPath | ( | const std::string & | path | ) |
Modification du chemin du bus Si la liaison ouverte, celle-ci est fermée, puis réouverte sur le nouveau bus.
path | chemin dans /dev |
|
inherited |
Enables or disables debug mode for the device.
enabled | True to enable debug mode, false to disable. |
void Piduino::SpiDev::setMode | ( | uint8_t | mode | ) |
Modification du mode de fonctionnement Les valeurs généralement utilisées sont SPI_MODE_0, SPI_MODE_1, SPI_MODE_2 ou SPI_MODE_3 qui correspondent aux valeurs de polarité et de phase d'horloge telle que définies dans les standards https://en.wikipedia.org/wiki/Serial_Peripheral_Interface#Clock_polarity_and_phase. On pourra y ajouter des flags en effectuant un "OU" (|) avec les valeurs suivantes (prise en compte dépendant de la plateforme !):
open()
void Piduino::SpiDev::setSettings | ( | const Settings & | settings | ) |
Modification des réglages de la transmission Si la liaison est ouverte les réglages sont appliqués immédiatement, sinon ils le seront à l'ouverture par open()
void Piduino::SpiDev::setSpeedHz | ( | uint32_t | speedHz | ) |
Modification de la vitesse maximale de transmission en Hz Si la liaison est ouverte les réglages sont appliqués immédiatement, sinon ils le seront à l'ouverture par open()
|
inherited |
Enables or disables text mode for the device.
enabled | True to enable text mode, false to disable. |
const Settings & Piduino::SpiDev::settings | ( | ) | const |
Configuration actuelle.
uint32_t Piduino::SpiDev::speedHz | ( | ) | const |
Vitesse maximale de transmission en Hz.
int Piduino::SpiDev::transfer | ( | ) |
Transmission des messages de la pile de transmission La pile est vidée avant retour.
int Piduino::SpiDev::transfer | ( | const uint8_t * | txbuf, |
uint8_t * | rxbuf, | ||
uint32_t | len | ||
) |
Transfert d'un message en entrée-sortie.
txbuf | buffer sur les octets à transmettre, 0 si pas de données à transmettre, dans ce cas, des 0 sont transmis sur MOSI. |
rxbuf | buffer qui contiendra les octets lues sur MISO, 0 si les données ne doivent pas être récupérées. |
len | nombre d'octets dans le ou les buffers. Si les 2 buffers txbuf et rxbuf sont fournis, ils doivent avoir une taille au moins égale à len . |
int Piduino::SpiDev::write | ( | const uint8_t * | buffer, |
uint32_t | len | ||
) |
Ecriture d'un message.
txbuf | buffer sur les octets à transmettre à transmettre, dans ce cas, des 0 sont transmis sur MOSI. |
len | nombre d'octets dans le buffer |
|
protectedinherited |
Pointer to the private implementation.
Definition at line 190 of file iodevice.h.