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