23 #include <arpirobot/core/io/IoProvider.hpp>
24 #include <arpirobot/core/io/IoDevice.hpp>
25 #include <arpirobot/core/io/exceptions.hpp>
38 const static unsigned int GPIO_OUT = IoProvider::GPIO_OUT;
39 const static unsigned int GPIO_IN = IoProvider::GPIO_IN;
40 const static unsigned int GPIO_LOW = IoProvider::GPIO_LOW;
41 const static unsigned int GPIO_HIGH = IoProvider::GPIO_HIGH;
43 const static char *PROVIDER_PIGPIO;
44 const static char *PROVIDER_LIBSOC;
45 const static char *PROVIDER_DUMMY;
46 const static char *PROVIDER_SERIAL;
52 static void init(std::string provider =
"");
54 static void terminate();
56 static void addDevice(
IoDevice *device);
58 static void removeDevice(
IoDevice *device);
65 static int getDefaultI2cBus();
75 static void gpioMode(
unsigned int pin,
unsigned int mode);
77 static void gpioWrite(
unsigned int pin,
unsigned int state);
79 static unsigned int gpioRead(
unsigned int pin);
81 static void gpioSetPwmFrequency(
unsigned int pin,
unsigned int frequency);
83 static unsigned int gpioGetPwmFrequency(
unsigned int pin);
85 static void gpioPwm(
unsigned int pin,
unsigned int value);
91 static unsigned int i2cOpen(
unsigned int bus,
unsigned int address);
93 static void i2cClose(
unsigned int handle);
95 static void i2cWriteByte(
unsigned int handle, uint8_t data);
97 static uint8_t i2cReadByte(
unsigned int handle);
99 static void i2cWriteBytes(
unsigned int handle,
char *buf,
unsigned int count);
101 static unsigned int i2cReadBytes(
unsigned int handle,
char *buf,
unsigned int count);
103 static void i2cWriteReg8(
unsigned int handle, uint8_t reg, uint8_t value);
105 static uint8_t i2cReadReg8(
unsigned int handle, uint8_t reg);
107 static void i2cWriteReg16(
unsigned int handle, uint8_t reg, uint16_t value);
109 static uint16_t i2cReadReg16(
unsigned int handle, uint8_t reg);
119 static unsigned int spiOpen(
unsigned int bus,
unsigned int channel,
unsigned int baud,
unsigned int mode);
121 static void spiClose(
unsigned int handle);
123 static void spiWrite(
unsigned int handle,
char *buf,
unsigned int count);
125 static unsigned int spiRead(
unsigned int handle,
char *buf,
unsigned int count);
132 static unsigned int uartOpen(
char *port,
unsigned int baud);
134 static void uartClose(
unsigned int handle);
136 static unsigned int uartAvailable(
unsigned int handle);
138 static void uartWrite(
unsigned int handle,
char* buf,
unsigned int count);
140 static unsigned int uartRead(
unsigned int handle,
char *buf,
unsigned int count);
142 static void uartWriteByte(
unsigned int handle, uint8_t b);
144 static uint8_t uartReadByte(
unsigned int handle);
148 static std::vector<IoDevice*> ioDevices;
149 static std::mutex ioDevicesLock;
Definition: IoDevice.hpp:27
Definition: IoProvider.hpp:30
static unsigned int i2cOpen(unsigned int bus, unsigned int address)
I2C.
static void gpioMode(unsigned int pin, unsigned int mode)
Matches pure virtual functions of IoProvider.
static void init(std::string provider="")
IoProvider instance and IoDevice management.
static const unsigned int GPIO_OUT
Constants.
Definition: Io.hpp:38
static unsigned int spiOpen(unsigned int bus, unsigned int channel, unsigned int baud, unsigned int mode)
SPI.
static unsigned int uartOpen(char *port, unsigned int baud)
UART.
Definition: ArduinoDevice.hpp:27