diff --git a/libsrc/leddevice/LedDeviceUdpH801.cpp b/libsrc/leddevice/LedDeviceUdpH801.cpp index 966f3bb9..f008d45d 100644 --- a/libsrc/leddevice/LedDeviceUdpH801.cpp +++ b/libsrc/leddevice/LedDeviceUdpH801.cpp @@ -9,7 +9,7 @@ #include "LedDeviceUdpH801.h" LedDeviceUdpH801::LedDeviceUdpH801(const Json::Value &deviceConfig) - : ProviderUdp(deviceConfig) + : ProviderUdp() { setConfig(deviceConfig); } @@ -18,6 +18,7 @@ bool LedDeviceUdpH801::setConfig(const Json::Value &deviceConfig) { /* The H801 port is fixed */ ProviderUdp::setConfig(deviceConfig, 30977, "255.255.255.255"); + /* 10ms seems to be a safe default for the wait time */ _LatchTime_ns = deviceConfig.get("latchtime", 10000000).asInt(); @@ -54,7 +55,7 @@ int LedDeviceUdpH801::write(const std::vector &ledValues) _message[_prefix_size + 1] = color.green; _message[_prefix_size + 2] = color.blue; - writeBytes(_message.size(), reinterpret_cast(_message.data())); + return writeBytes(_message.size(), reinterpret_cast(_message.data())); } int LedDeviceUdpH801::switchOff() diff --git a/libsrc/leddevice/ProviderUdp.cpp b/libsrc/leddevice/ProviderUdp.cpp index 59a1c0c2..d61ebbba 100644 --- a/libsrc/leddevice/ProviderUdp.cpp +++ b/libsrc/leddevice/ProviderUdp.cpp @@ -16,11 +16,16 @@ #include "ProviderUdp.h" ProviderUdp::ProviderUdp(const Json::Value &deviceConfig) + : ProviderUdp() +{ + setConfig(deviceConfig); +} + +ProviderUdp::ProviderUdp() : LedDevice() , _LatchTime_ns(-1) , _port(0) { - setConfig(deviceConfig); _udpSocket = new QUdpSocket(); } @@ -49,7 +54,7 @@ bool ProviderUdp::setConfig(const Json::Value &deviceConfig, int defaultPort, st Debug( _log, "Successfully parsed %s as a hostname.", deviceConfig["host"].asString().c_str()); _address = info.addresses().first(); } - + _port = deviceConfig.get("port", defaultPort).asUInt(); if ( _port<=0 || _port > 65535) { diff --git a/libsrc/leddevice/ProviderUdp.h b/libsrc/leddevice/ProviderUdp.h index e3b53877..6a81b7c1 100644 --- a/libsrc/leddevice/ProviderUdp.h +++ b/libsrc/leddevice/ProviderUdp.h @@ -19,6 +19,11 @@ public: /// ProviderUdp(const Json::Value &deviceConfig); + /// + /// Constructs specific LedDevice + /// + ProviderUdp(); + /// /// Destructor of the LedDevice; closes the output device if it is open ///