16 {
"OVP", 15}, {
"FVP", 14}, {
"OUP", 13}, {
"FUP", 12},
17 {
"ODP", 11}, {
"FDP", 10}, {
"PVF", 9}, {
"PVO", 8},
31void init(SPIClass& spi,
int sclk,
int miso,
int mosi,
int cs_pin,
32 uint8_t mcp_hw_addr) {
33 spi.begin(sclk, miso, mosi, -1);
34 PYRO_1_MCP =
new MCP23S17(cs_pin, mcp_hw_addr, &spi);
void close(SolenoidID id)
static uint8_t g_shadow[NUM_CHANNELS]
static constexpr size_t NUM_CHANNELS
constexpr bool SOLENOID_ACTIVE_HIGH
void pulseBlocking(SolenoidID id, uint32_t ms)
bool isOpen(SolenoidID id)
void init(SPIClass &spi, int sclk, int miso, int mosi, int cs_pin, uint8_t mcp_hw_addr)
static Channel channels[]
static MCP23S17 * PYRO_1_MCP
static void setIdx(size_t idx, bool open)