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)
232 debug_d("Device %s created, class %s", device->caption().c_str(), String(factory.deviceClass()).c_str());
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
Device::OwnedList & getDevices()
Get list of devices for this controller.
Definition: IOControl/include/IO/Controller.h:84
ErrorCode createDevice(const char *id, JsonObjectConst config, Device *&device)
Create a new devicce.
virtual const FlashString & classname() const =0
Get the class name for this Controller.
const CString & getId() const
Get the fully-qualified unique controller identifier.
Definition: IOControl/include/IO/Controller.h:161
Controller(uint8_t instance)
Construct a controller instance.
Definition: IOControl/include/IO/Controller.h:53
virtual void handleEvent(Request *request, Event event)
Implementations override this method to process events as they pass through the stack.
virtual void stop()
Stop all controllers.
Definition: IOControl/include/IO/Controller.h:145
bool operator==(const String &id) const
Definition: IOControl/include/IO/Controller.h:166
uint8_t getInstance() const
Get the controller instance number.
Definition: IOControl/include/IO/Controller.h:76
void resetTransactionTime()
Definition: IOControl/include/IO/Controller.h:186
static void registerDeviceClass(const Device::Factory &factory)
Register a device factory.
Definition: IOControl/include/IO/Controller.h:67
void checkDevices()
virtual bool canStop() const
Check if it's OK to stop this controller.
Definition: IOControl/include/IO/Controller.h:153
virtual void start()
Start the controller.
Definition: IOControl/include/IO/Controller.h:133
Definition: DeviceManager.h:32
Abstract class which allows device instances to be created.
Definition: Libraries/IOControl/include/IO/Device.h:45
Handles requests for a specific device; the requests are executed by the relevant controller.
Definition: Libraries/IOControl/include/IO/Device.h:36
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:62
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:616
Definition: IOControl/include/IO/Controller.h:26
Direction
Some controllers specify a transfer direction.
Definition: IOControl/include/IO/Controller.h:32
@ Incoming
@ Idle
@ Outgoing