#include "LedDeviceTemplate.h" LedDeviceTemplate::LedDeviceTemplate(const QJsonObject & /*deviceConfig*/) { } LedDevice* LedDeviceTemplate::construct(const QJsonObject &deviceConfig) { return new LedDeviceTemplate(deviceConfig); } bool LedDeviceTemplate::init(const QJsonObject &deviceConfig) { bool isInitOK = false; // Initialise sub-class if ( LedDevice::init(deviceConfig) ) { // Initialise LedDevice configuration and execution environment // ... if ( false /*Error during init*/) { //Build an errortext, illustrative QString errortext = QString ("Error message: %1").arg("errno/text"); this->setInError(errortext); isInitOK = false; } else { isInitOK = true; } } return isInitOK; } int LedDeviceTemplate::open() { int retval = -1; QString errortext; _isDeviceReady = false; // Try to open the LedDevice //... if ( false /*If opening failed*/ ) { //Build an errortext, illustrative errortext = QString ("Failed to xxx. Error message: %1").arg("errno/text"); } else { // Everything is OK, device is ready _isDeviceReady = true; retval = 0; } // On error/exceptions, set LedDevice in error if ( false /* retval < 0*/ ) { this->setInError( errortext ); } return retval; } int LedDeviceTemplate::close() { // LedDevice specific closing activities //... int retval = 0; _isDeviceReady = false; // Test, if device requires closing if ( true /*If device is still open*/ ) { // Close device // Everything is OK -> device is closed } return retval; } int LedDeviceTemplate::write(const std::vector & ledValues) { int retval = -1; //... return retval; }