Arduino-like Wrappers

This library ships with wrapper classes for non-Arduino platforms as a utility for portability. All Arduino-like API exists in a library-specific namespace, cirque_pinnacle_arduino_wrappers.

// an alias for the lib-specific namespace
namespace arduino = cirque_pinnacle_arduino_wrappers;

// the default I2C bus
arduino::Wire;

// the default SPI bus
arduino::SPI;

Generic API documented

The following API is documented from the template used to extend portability to non-Arduino platforms (like Linux and the Pico SDK). Therefor, the following API is not entirely representative of the actual API implemented for any specific platform. Although, it is very similar to the implementation exposed for the Linux platform using the linux_kernel driver.

Arduino TwoWire

This is library-specific API wrapping the Arduino I2C interface.

PINNACLE_DEFAULT_I2C_BUS
class cirque_pinnacle_arduino_wrappers::I2CException : public std::runtime_error;
class cirque_pinnacle_arduino_wrappers::TwoWire;
TwoWire cirque_pinnacle_arduino_wrappers::Wire;
using pinnacle_i2c_t = cirque_pinnacle_arduino_wrappers::TwoWire;

Arduino SPIClass

This is library-specific API wrapping the Arduino SPI interface.

PINNACLE_SPI_SPEED
PINNACLE_DEFAULT_SPI_BUS
class cirque_pinnacle_arduino_wrappers::SPIException : public std::runtime_error;
enum cirque_pinnacle_arduino_wrappers::BitOrder;
enum cirque_pinnacle_arduino_wrappers::DataMode;
class cirque_pinnacle_arduino_wrappers::SPISettings;
class cirque_pinnacle_arduino_wrappers::SPIClass;
SPIClass cirque_pinnacle_arduino_wrappers::SPI;
using pinnacle_spi_t = cirque_pinnacle_arduino_wrappers::SPIClass;

Arduino GPIOClass

This is library-specific API wrapping the Arduino GPIO interface.

using pinnacle_gpio_t = uint16_t;
class cirque_pinnacle_arduino_wrappers::GPIOException : public std::runtime_error;
class cirque_pinnacle_arduino_wrappers::GPIOClass;