implemented bare providerudp constructor and made h801 use it

This commit is contained in:
Rick van Hattem 2016-09-22 00:18:46 +02:00
parent 37130f9c9b
commit ad785b9eba
3 changed files with 15 additions and 4 deletions

View File

@ -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<ColorRgb> &ledValues)
_message[_prefix_size + 1] = color.green;
_message[_prefix_size + 2] = color.blue;
writeBytes(_message.size(), reinterpret_cast<const uint8_t*>(_message.data()));
return writeBytes(_message.size(), reinterpret_cast<const uint8_t*>(_message.data()));
}
int LedDeviceUdpH801::switchOff()

View File

@ -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)
{

View File

@ -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
///