|
XPoint 0.1.0
Hardware-agnostic crosspoint matrix routing library
|
XPointDriver implementation that calls digitalWrite() per node.
More...
#include <ArduinoDirectGPIODriver.h>
Public Types | |
| typedef uint8_t(* | MapFn) (uint8_t r, uint8_t c) |
Function pointer type: (row, col) → Arduino pin number. | |
Public Member Functions | |
| ArduinoDirectGPIODriver (uint8_t rows, uint8_t cols, MapFn map, uint8_t maxPin) | |
| Construct the driver. | |
| void | begin () override |
Iterate all nodes and call pinMode(OUTPUT) + digitalWrite(LOW). | |
| void | setNodeHardware (uint8_t r, uint8_t c, bool state) override |
Call pinMode(OUTPUT) and drive the pin HIGH or LOW. | |
| void | commitPhysicalUpdates () override |
| No-op — writes commit immediately in setNodeHardware(). | |
Public Member Functions inherited from XPointDriver | |
| virtual | ~XPointDriver () |
| virtual void | setNodeLevel (uint8_t r, uint8_t c, uint16_t level) |
| Set an analog drive level for node (r, c). | |
| virtual void | releaseNode (uint8_t, uint8_t) |
| De-energize the coil that was pulsed on node (r, c). | |
XPointDriver implementation that calls digitalWrite() per node.
Suitable for direct relay drive on any Arduino-compatible MCU. Each node change results in an immediate digitalWrite() call — no buffering.
| typedef uint8_t(* ArduinoDirectGPIODriver::MapFn) (uint8_t r, uint8_t c) |
Function pointer type: (row, col) → Arduino pin number.
| ArduinoDirectGPIODriver::ArduinoDirectGPIODriver | ( | uint8_t | rows, |
| uint8_t | cols, | ||
| MapFn | map, | ||
| uint8_t | maxPin | ||
| ) |
Construct the driver.
| [in] | rows | Row count (used by begin() to iterate all nodes). |
| [in] | cols | Column count. |
| [in] | map | Mapper; must return a valid digitalWrite() pin number. |
| [in] | maxPin | Highest pin number the mapper can return (bounds guard). |
|
overridevirtual |
Iterate all nodes and call pinMode(OUTPUT) + digitalWrite(LOW).
Configures only the pins the mapper actually uses to avoid clobbering special-purpose pins (RX/TX, SPI, I2C, etc.).
Implements XPointDriver.
|
inlineoverridevirtual |
No-op — writes commit immediately in setNodeHardware().
Reimplemented from XPointDriver.
|
overridevirtual |
Call pinMode(OUTPUT) and drive the pin HIGH or LOW.
| [in] | r | Row index. |
| [in] | c | Column index. |
| [in] | state | true = HIGH (relay on), false = LOW (relay off). |
Implements XPointDriver.