IOControl/include/IO/Controller.h
Go to the documentation of this file.
113 ErrorCode createDevice(const char* id, const typename DeviceClass::Config& config, DeviceClass*& device);
211 ErrorCode Controller::createDevice(const char* id, const typename DeviceClass::Config& config, DeviceClass*& device)
230 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:82
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:159
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 ~Controller()=default
virtual void stop()
Stop all controllers.
Definition: IOControl/include/IO/Controller.h:143
bool operator==(const String &id) const
Definition: IOControl/include/IO/Controller.h:164
uint8_t getInstance() const
Get the controller instance number.
Definition: IOControl/include/IO/Controller.h:74
void resetTransactionTime()
Definition: IOControl/include/IO/Controller.h:184
static void registerDeviceClass(const Device::Factory &factory)
Register a device factory.
Definition: IOControl/include/IO/Controller.h:65
void checkDevices()
virtual bool canStop() const
Check if it's OK to stop this controller.
Definition: IOControl/include/IO/Controller.h:151
virtual void start()
Start the controller.
Definition: IOControl/include/IO/Controller.h:131
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:60
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:609
Definition: IOControl/include/IO/Controller.h:26
Direction
Some controllers specify a transfer direction.
Definition: IOControl/include/IO/Controller.h:32
@ Incoming
@ Idle
@ Outgoing
1.9.1