XPoint 0.1.0
Hardware-agnostic crosspoint matrix routing library
Loading...
Searching...
No Matches
XPointDriver.h
Go to the documentation of this file.
1// SPDX-License-Identifier: AGPL-3.0-only
2// Copyright (c) 2026 Douglas Quigg (dstroy0) <dquigg123@gmail.com>
3// https://github.com/dstroy0/XPoint
4
29#ifndef XPOINT_DRIVER_H
30#define XPOINT_DRIVER_H
31
32#include <stdint.h>
33
41{
42 public:
43 virtual ~XPointDriver()
44 {
45 }
46
52 virtual void begin() = 0;
53
64 virtual void setNodeHardware(uint8_t r, uint8_t c, bool state) = 0;
65
79 virtual void setNodeLevel(uint8_t r, uint8_t c, uint16_t level)
80 {
81 setNodeHardware(r, c, level > 0);
82 }
83
94 virtual void releaseNode(uint8_t /*r*/, uint8_t /*c*/)
95 {
96 }
97
111 {
112 }
113};
114
115#endif // XPOINT_DRIVER_H
Abstract base class for all XPoint hardware drivers.
Definition XPointDriver.h:41
virtual void releaseNode(uint8_t, uint8_t)
De-energize the coil that was pulsed on node (r, c).
Definition XPointDriver.h:94
virtual void commitPhysicalUpdates()
Flush buffered state to hardware.
Definition XPointDriver.h:110
virtual void setNodeLevel(uint8_t r, uint8_t c, uint16_t level)
Set an analog drive level for node (r, c).
Definition XPointDriver.h:79
virtual void begin()=0
Initialize hardware: pin modes, bus setup, initial output state.
virtual ~XPointDriver()
Definition XPointDriver.h:43
virtual void setNodeHardware(uint8_t r, uint8_t c, bool state)=0
Drive one matrix node on or off.