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.

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.

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;
const pinnacle_gpio_t PINNACLE_SW_DR = 0xFFFF;
class cirque_pinnacle_arduino_wrappers::GPIOException : public std::runtime_error;
class cirque_pinnacle_arduino_wrappers::GPIOClass;