IOControl/include/IO/Controller.h
Go to the documentation of this file.
115 ErrorCode createDevice(const char* id, const typename DeviceClass::Config& config, DeviceClass*& device);
213 ErrorCode Controller::createDevice(const char* id, const typename DeviceClass::Config& config, DeviceClass*& device)
static void registerDeviceClass(const Device::Factory &factory)
Register a device factory.
Definition: IOControl/include/IO/Controller.h:67
Definition: DeviceManager.h:31
Base class template for linked items with type casting.
Definition: LinkedObject.h:61
const CString & getId() const
Get the fully-qualified unique controller identifier.
Definition: IOControl/include/IO/Controller.h:161
Device::OwnedList & getDevices()
Get list of devices for this controller.
Definition: IOControl/include/IO/Controller.h:84
Request represents a single user request/response over a bus.
Definition: IOControl/include/IO/Request.h:79
bool operator==(const String &id) const
Definition: IOControl/include/IO/Controller.h:166
void resetTransactionTime()
Definition: IOControl/include/IO/Controller.h:186
Class to manage a NUL-terminated C-style string When storing persistent strings in RAM the regular St...
Definition: CString.h:26
virtual bool canStop() const
Check if it's OK to stop this controller.
Definition: IOControl/include/IO/Controller.h:153
uint8_t getInstance() const
Get the controller instance number.
Definition: IOControl/include/IO/Controller.h:76
Definition: IOControl/include/IO/Controller.h:25
@ Outgoing
ErrorCode createDevice(const char *id, JsonObjectConst config, Device *&device)
Create a new devicce.
Abstract class which allows device instances to be created.
Definition: Libraries/IOControl/include/IO/Device.h:44
virtual const FlashString & classname() const =0
Get the class name for this Controller.
virtual void stop()
Stop all controllers.
Definition: IOControl/include/IO/Controller.h:145
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:616
virtual void handleEvent(Request *request, Event event)
Implementations override this method to process events as they pass through the stack.
Handles requests for a specific device; the requests are executed by the relevant controller.
Definition: Libraries/IOControl/include/IO/Device.h:35
void checkDevices()
virtual void start()
Start the controller.
Definition: IOControl/include/IO/Controller.h:133
@ Incoming
A Controller is responsible for serialising requests for a physical bus.
Definition: IOControl/include/IO/Controller.h:41
@ Idle
Controller(uint8_t instance)
Construct a controller instance.
Definition: IOControl/include/IO/Controller.h:53
Direction
Some controllers specify a transfer direction.
Definition: IOControl/include/IO/Controller.h:32