Libraries/IOControl/include/IO/Device.h
virtual Device * createDevice(IO::Controller &controller, const char *id) const =0
Create a new device instance.
Base class template for linked items with type casting.
Definition: LinkedObject.h:61
Controller & getController() const
Obtain the owning controller.
Definition: Libraries/IOControl/include/IO/Device.h:171
virtual void handleEvent(Request *request, Event event)
Implementations may override this method to customise event handling.
virtual Request * createRequest()=0
Create a request object for this device.
void submit(Request *request)
virtual const FlashString & deviceClass() const =0
Return the Device class name, e.g. 'r421a'.
String toString(IO::Device::State state)
bool operator==(const String &id) const
Definition: Libraries/IOControl/include/IO/Device.h:137
virtual const DeviceType type() const =0
virtual uint16_t address() const
Devices with a numeric address should implement this method.
Definition: Libraries/IOControl/include/IO/Device.h:153
Request represents a single user request/response over a bus.
Definition: IOControl/include/IO/Request.h:79
virtual ErrorCode start()
bool operator==(const String &className) const
Definition: Libraries/IOControl/include/IO/Device.h:69
Class to manage a NUL-terminated C-style string When storing persistent strings in RAM the regular St...
Definition: CString.h:26
virtual DevNode::States getNodeStates(DevNode node) const
Return the current set of states for all nodes controlled by this device.
Definition: Libraries/IOControl/include/IO/Device.h:216
const CString & getId() const
The unique device identifier.
Definition: Libraries/IOControl/include/IO/Device.h:132
Definition: IOControl/include/IO/Controller.h:25
Inherited classes expand this definition as required.
Definition: Libraries/IOControl/include/IO/Device.h:80
ErrorCode init(const Config &config)
Abstract class which allows device instances to be created.
Definition: Libraries/IOControl/include/IO/Device.h:44
DevNode::ID nodeIdMax() const
Get maximum valid Node ID for this device.
Definition: Libraries/IOControl/include/IO/Device.h:197
const CString & getName() const
Optional descriptive name for the device.
Definition: Libraries/IOControl/include/IO/Device.h:145
Handles requests for a specific device; the requests are executed by the relevant controller.
Definition: Libraries/IOControl/include/IO/Device.h:35
Json json
void parseJson(JsonObjectConst json, Config &cfg)
State getState()
Get current device state.
Definition: Libraries/IOControl/include/IO/Device.h:179
Device(Controller &controller, const char *id)
Device constructor.
Definition: Libraries/IOControl/include/IO/Device.h:110
A Controller is responsible for serialising requests for a physical bus.
Definition: IOControl/include/IO/Controller.h:41
virtual DevNode::ID nodeIdMin() const
Get minimum valid Node ID for this device.
Definition: Libraries/IOControl/include/IO/Device.h:189
virtual uint16_t maxNodes() const
Determine maximum number of nodes supported by the device.
Definition: Libraries/IOControl/include/IO/Device.h:206
Controller & controller
Definition: Libraries/IOControl/include/IO/Device.h:234
unsigned minTransactionInterval() const
Definition: Libraries/IOControl/include/IO/Device.h:158
virtual ErrorCode stop()
unsigned interval
Minimum interval between transactions.
Definition: Libraries/IOControl/include/IO/Device.h:82
virtual const FlashString & controllerClass() const =0
Return the expected controller type for this device class, e.g. 'rs485'.