mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
add limit for write to leddevice (#432)
* add limit for write to leddevice * add to default config * add i18n * extend xmas effect * fix indention * add check for minimum brightness * adapt effects to fading and new minWriteTime * remove old latchTime rename minimumWriteTime to latchTime make it as dev specific option * set default for rewriteTime to 1s pause smoothing on color too * reenable smoothing for color - it looks nicer :-) * fix timeout timer
This commit is contained in:
@@ -5,6 +5,8 @@
|
||||
#include <QResource>
|
||||
#include <QStringList>
|
||||
#include <QDir>
|
||||
#include <QDateTime>
|
||||
|
||||
#include "hyperion/Hyperion.h"
|
||||
|
||||
LedDeviceRegistry LedDevice::_ledDeviceMap = LedDeviceRegistry();
|
||||
@@ -20,6 +22,8 @@ LedDevice::LedDevice()
|
||||
, _deviceReady(true)
|
||||
, _refresh_timer()
|
||||
, _refresh_timer_interval(0)
|
||||
, _last_write_time(QDateTime::currentMSecsSinceEpoch())
|
||||
, _latchTime_ms(0)
|
||||
, _componentRegistered(false)
|
||||
, _enabled(true)
|
||||
{
|
||||
@@ -66,7 +70,14 @@ void LedDevice::setActiveDevice(QString dev)
|
||||
|
||||
bool LedDevice::init(const QJsonObject &deviceConfig)
|
||||
{
|
||||
_refresh_timer.setInterval( deviceConfig["rewriteTime"].toInt(_refresh_timer_interval) );
|
||||
_latchTime_ms = deviceConfig["latchTime"].toInt(_latchTime_ms);
|
||||
_refresh_timer.setInterval( deviceConfig["rewriteTime"].toInt( _refresh_timer_interval) );
|
||||
if (_refresh_timer.interval() <= (signed)_latchTime_ms )
|
||||
{
|
||||
Warning(_log, "latchTime(%d) is bigger/equal rewriteTime(%d)", _refresh_timer.interval(), _latchTime_ms);
|
||||
_refresh_timer.setInterval(_latchTime_ms+10);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -127,17 +138,26 @@ QJsonObject LedDevice::getLedDeviceSchemas()
|
||||
|
||||
int LedDevice::setLedValues(const std::vector<ColorRgb>& ledValues)
|
||||
{
|
||||
int retval = 0;
|
||||
if (!_deviceReady || !_enabled)
|
||||
return -1;
|
||||
|
||||
_ledValues = ledValues;
|
||||
|
||||
// restart the timer
|
||||
if (_refresh_timer.interval() > 0)
|
||||
{
|
||||
_refresh_timer.start();
|
||||
}
|
||||
return write(ledValues);
|
||||
|
||||
if (_latchTime_ms == 0 || QDateTime::currentMSecsSinceEpoch()-_last_write_time >= _latchTime_ms)
|
||||
{
|
||||
_ledValues = ledValues;
|
||||
retval = write(ledValues);
|
||||
_last_write_time = QDateTime::currentMSecsSinceEpoch();
|
||||
}
|
||||
//else Debug(_log, "latch %d", QDateTime::currentMSecsSinceEpoch()-_last_write_time);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
int LedDevice::switchOff()
|
||||
|
@@ -14,7 +14,6 @@ LedDevice* LedDeviceAPA102::construct(const QJsonObject &deviceConfig)
|
||||
bool LedDeviceAPA102::init(const QJsonObject &deviceConfig)
|
||||
{
|
||||
ProviderSpi::init(deviceConfig);
|
||||
_latchTime_ns = 500000; // fixed latchtime
|
||||
|
||||
const unsigned int startFrameSize = 4;
|
||||
const unsigned int endFrameSize = std::max<unsigned int>(((_ledCount + 15) / 16), 4);
|
||||
|
@@ -8,7 +8,6 @@ LedDeviceTpm2net::LedDeviceTpm2net(const QJsonObject &deviceConfig)
|
||||
|
||||
bool LedDeviceTpm2net::init(const QJsonObject &deviceConfig)
|
||||
{
|
||||
_LatchTime_ns = 104000;
|
||||
_port = TPM2_DEFAULT_PORT;
|
||||
ProviderUdp::init(deviceConfig);
|
||||
_tpm2_max = deviceConfig["max-packet"].toInt(170);
|
||||
|
@@ -12,7 +12,6 @@ LedDeviceUdpE131::LedDeviceUdpE131(const QJsonObject &deviceConfig)
|
||||
|
||||
bool LedDeviceUdpE131::init(const QJsonObject &deviceConfig)
|
||||
{
|
||||
_LatchTime_ns = 104000;
|
||||
_port = 5568;
|
||||
ProviderUdp::init(deviceConfig);
|
||||
_e131_universe = deviceConfig["universe"].toInt(1);
|
||||
|
@@ -9,7 +9,7 @@ LedDeviceUdpH801::LedDeviceUdpH801(const QJsonObject &deviceConfig)
|
||||
bool LedDeviceUdpH801::init(const QJsonObject &deviceConfig)
|
||||
{
|
||||
/* The H801 port is fixed */
|
||||
_LatchTime_ns = 10000000;
|
||||
_latchTime_ms = 10;
|
||||
_port = 30977;
|
||||
_defaultHost = "255.255.255.255";
|
||||
ProviderUdp::init(deviceConfig);
|
||||
|
@@ -3,7 +3,6 @@
|
||||
LedDeviceUdpRaw::LedDeviceUdpRaw(const QJsonObject &deviceConfig)
|
||||
: ProviderUdp()
|
||||
{
|
||||
_LatchTime_ns = 500000;
|
||||
_port = 5568;
|
||||
init(deviceConfig);
|
||||
}
|
||||
|
@@ -3,7 +3,6 @@
|
||||
LedDeviceWs2801::LedDeviceWs2801(const QJsonObject &deviceConfig)
|
||||
: ProviderSpi()
|
||||
{
|
||||
_latchTime_ns = 500000;
|
||||
_deviceReady = ProviderSpi::init(deviceConfig);
|
||||
}
|
||||
|
||||
|
@@ -18,12 +18,12 @@ ProviderSpi::ProviderSpi()
|
||||
: LedDevice()
|
||||
, _deviceName("/dev/spidev0.0")
|
||||
, _baudRate_Hz(1000000)
|
||||
, _latchTime_ns(0)
|
||||
, _fid(-1)
|
||||
, _spiMode(SPI_MODE_0)
|
||||
, _spiDataInvert(false)
|
||||
{
|
||||
memset(&_spi, 0, sizeof(_spi));
|
||||
_latchTime_ms = 1;
|
||||
}
|
||||
|
||||
ProviderSpi::~ProviderSpi()
|
||||
@@ -37,7 +37,6 @@ bool ProviderSpi::init(const QJsonObject &deviceConfig)
|
||||
|
||||
_deviceName = deviceConfig["output"].toString(_deviceName);
|
||||
_baudRate_Hz = deviceConfig["rate"].toInt(_baudRate_Hz);
|
||||
_latchTime_ns = deviceConfig["latchtime"].toInt(_latchTime_ns);
|
||||
_spiMode = deviceConfig["spimode"].toInt(_spiMode);
|
||||
_spiDataInvert = deviceConfig["invert"].toBool(_spiDataInvert);
|
||||
|
||||
@@ -46,7 +45,7 @@ bool ProviderSpi::init(const QJsonObject &deviceConfig)
|
||||
|
||||
int ProviderSpi::open()
|
||||
{
|
||||
Debug(_log, "_baudRate_Hz %d, _latchTime_ns %d", _baudRate_Hz, _latchTime_ns);
|
||||
Debug(_log, "_baudRate_Hz %d, _latchTime_ns %d", _baudRate_Hz, _latchTime_ms);
|
||||
Debug(_log, "_spiDataInvert %d, _spiMode %d", _spiDataInvert, _spiMode);
|
||||
|
||||
const int bitsPerWord = 8;
|
||||
@@ -99,16 +98,5 @@ int ProviderSpi::writeBytes(const unsigned size, const uint8_t * data)
|
||||
int retVal = ioctl(_fid, SPI_IOC_MESSAGE(1), &_spi);
|
||||
ErrorIf((retVal < 0), _log, "SPI failed to write. errno: %d, %s", errno, strerror(errno) );
|
||||
|
||||
if (retVal >= 0 && _latchTime_ns > 0)
|
||||
{
|
||||
// The 'latch' time for latching the shifted-value into the leds
|
||||
timespec latchTime;
|
||||
latchTime.tv_sec = 0;
|
||||
latchTime.tv_nsec = _latchTime_ns;
|
||||
|
||||
// Sleep to latch the leds (only if write succesfull)
|
||||
nanosleep(&latchTime, NULL);
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
@@ -54,9 +54,6 @@ protected:
|
||||
/// The used baudrate of the output device
|
||||
int _baudRate_Hz;
|
||||
|
||||
/// The time which the device should be untouched after a write
|
||||
int _latchTime_ns;
|
||||
|
||||
/// The File Identifier of the opened output device (or -1 if not opened)
|
||||
int _fid;
|
||||
|
||||
|
@@ -17,10 +17,10 @@
|
||||
|
||||
ProviderUdp::ProviderUdp()
|
||||
: LedDevice()
|
||||
, _LatchTime_ns(-1)
|
||||
, _port(1)
|
||||
, _defaultHost("127.0.0.1")
|
||||
{
|
||||
_latchTime_ms = 1;
|
||||
_udpSocket = new QUdpSocket();
|
||||
}
|
||||
|
||||
@@ -60,8 +60,6 @@ bool ProviderUdp::init(const QJsonObject &deviceConfig)
|
||||
|
||||
Debug( _log, "UDP using %s:%d", _address.toString().toStdString().c_str() , _port );
|
||||
|
||||
_LatchTime_ns = deviceConfig["latchtime"].toInt(_LatchTime_ns);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -79,21 +77,7 @@ int ProviderUdp::writeBytes(const unsigned size, const uint8_t * data)
|
||||
{
|
||||
|
||||
qint64 retVal = _udpSocket->writeDatagram((const char *)data,size,_address,_port);
|
||||
|
||||
if (retVal >= 0 && _LatchTime_ns > 0)
|
||||
{
|
||||
// The 'latch' time for latching the shifted-value into the leds
|
||||
timespec latchTime;
|
||||
latchTime.tv_sec = 0;
|
||||
latchTime.tv_nsec = _LatchTime_ns;
|
||||
|
||||
// Sleep to latch the leds (only if write succesfull)
|
||||
nanosleep(&latchTime, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
Warning( _log, "Error sending: %s", strerror(errno));
|
||||
}
|
||||
WarningIf((retVal<0), _log, "Error sending: %s", strerror(errno));
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
@@ -48,9 +48,6 @@ protected:
|
||||
///
|
||||
int writeBytes(const unsigned size, const uint8_t *data);
|
||||
|
||||
/// The time which the device should be untouched after a write
|
||||
int _LatchTime_ns;
|
||||
|
||||
///
|
||||
QUdpSocket * _udpSocket;
|
||||
QHostAddress _address;
|
||||
|
@@ -26,6 +26,16 @@
|
||||
"title":"edt_dev_spec_LBap102Mode_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 15,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 5
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -20,6 +20,16 @@
|
||||
"title":"edt_dev_spec_invert_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -20,6 +20,16 @@
|
||||
"default": 250,
|
||||
"append" : "ms",
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 10,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -33,6 +33,16 @@
|
||||
"title":"edt_dev_spec_useOrbSmoothing_title",
|
||||
"default": true,
|
||||
"propertyOrder" : 5
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 6
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -19,6 +19,16 @@
|
||||
"title":"edt_dev_spec_delayAfterConnect_title",
|
||||
"default": 250,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 10,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -21,11 +21,14 @@
|
||||
"default": 1,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchtime": {
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 104000,
|
||||
"append" : "ns",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"cid": {
|
||||
|
@@ -14,47 +14,57 @@
|
||||
"default": 7890,
|
||||
"propertyOrder" : 2
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"setFcConfig": {
|
||||
"type": "boolean",
|
||||
"title":"edt_dev_spec_FCsetConfig_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 3
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"manualLed": {
|
||||
"type": "boolean",
|
||||
"title":"edt_dev_spec_FCmanualControl_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 4
|
||||
"propertyOrder" : 5
|
||||
},
|
||||
"ledOn": {
|
||||
"type": "boolean",
|
||||
"title":"edt_dev_spec_FCledToOn_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 5
|
||||
"propertyOrder" : 6
|
||||
},
|
||||
"interpolation": {
|
||||
"type": "boolean",
|
||||
"title":"edt_dev_spec_interpolation_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 6
|
||||
"propertyOrder" : 7
|
||||
},
|
||||
"dither": {
|
||||
"type": "boolean",
|
||||
"title":"edt_dev_spec_dithering_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 7
|
||||
"propertyOrder" : 8
|
||||
},
|
||||
"gamma" : {
|
||||
"type" : "number",
|
||||
"title" : "edt_dev_spec_gamma_title",
|
||||
"minimum" : 0.0,
|
||||
"maximum": 100.0,
|
||||
"propertyOrder" : 8
|
||||
"minimum" : 0.1,
|
||||
"maximum": 5.0,
|
||||
"propertyOrder" : 9
|
||||
},
|
||||
"whitepoint" : {
|
||||
"type" : "array",
|
||||
"title" : "edt_dev_spec_whitepoint_title",
|
||||
"propertyOrder" : 9,
|
||||
"propertyOrder" : 10,
|
||||
"default" : [255,255,255],
|
||||
"maxItems" : 3,
|
||||
"minItems" : 3,
|
||||
|
@@ -5,7 +5,18 @@
|
||||
"output": {
|
||||
"type": "string",
|
||||
"title":"edt_dev_spec_outputPath_title",
|
||||
"default" : "/dev/null"
|
||||
"default" : "/dev/null",
|
||||
"propertyOrder" : 1
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 2
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -22,6 +22,16 @@
|
||||
"title" : "edt_dev_spec_lightid_itemtitle"
|
||||
},
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 10,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -2,6 +2,16 @@
|
||||
"type":"object",
|
||||
"required":true,
|
||||
"properties":{
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 10,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 1
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
|
@@ -4,7 +4,18 @@
|
||||
"properties":{
|
||||
"output": {
|
||||
"type": "string",
|
||||
"title":"edt_dev_spec_serial_title"
|
||||
"title":"edt_dev_spec_serial_title",
|
||||
"propertyOrder" : 1
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 11,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 2
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -19,6 +19,16 @@
|
||||
"title":"edt_dev_spec_invert_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -19,6 +19,16 @@
|
||||
"title":"edt_dev_spec_invert_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -2,6 +2,16 @@
|
||||
"type":"object",
|
||||
"required":true,
|
||||
"properties":{
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 11,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 1
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
|
@@ -19,6 +19,16 @@
|
||||
"title":"edt_dev_spec_invert_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -19,6 +19,16 @@
|
||||
"title":"edt_dev_spec_delayAfterConnect_title",
|
||||
"default": 0,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -44,6 +44,16 @@
|
||||
"title" : "edt_dev_spec_lightid_itemtitle"
|
||||
},
|
||||
"propertyOrder" : 6
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 200,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 100,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 7
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -8,6 +8,16 @@
|
||||
"default" : "/dev/pi-blaster",
|
||||
"propertyOrder" : 1
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 5,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 2
|
||||
},
|
||||
"gpiomap": {
|
||||
"type": "array",
|
||||
"title":"edt_dev_spec_gpioMap_title",
|
||||
|
@@ -19,6 +19,16 @@
|
||||
"title":"edt_dev_spec_delayAfterConnect_title",
|
||||
"default": 0,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 10,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -19,6 +19,16 @@
|
||||
"title":"edt_dev_spec_delayAfterConnect_title",
|
||||
"default": 250,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 10,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -29,6 +29,16 @@
|
||||
"enum_titles" : ["edt_dev_enum_subtract_minimum", "edt_dev_enum_sub_min_warm_adjust", "edt_dev_enum_white_off"]
|
||||
},
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 5
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -19,6 +19,16 @@
|
||||
"title":"edt_dev_spec_invert_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_general_latchTime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -26,6 +26,16 @@
|
||||
"title":"edt_dev_spec_intervall_title",
|
||||
"minimum" : 0,
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 5
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -19,6 +19,16 @@
|
||||
"title":"edt_dev_spec_delayAfterConnect_title",
|
||||
"default": 250,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 10,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -28,6 +28,16 @@
|
||||
"minimum" : 0,
|
||||
"default" : 170,
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 5
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -14,6 +14,16 @@
|
||||
"minimum" : 0,
|
||||
"maximum" : 65535,
|
||||
"propertyOrder" : 2
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 3
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -26,6 +26,16 @@
|
||||
"title":"edt_dev_spec_invert_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 5
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -19,6 +19,16 @@
|
||||
"title":"edt_dev_spec_invert_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 4
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
@@ -35,6 +35,16 @@
|
||||
"enum_titles" : ["edt_dev_enum_subtract_minimum", "edt_dev_enum_sub_min_warm_adjust", "edt_dev_enum_white_off"]
|
||||
},
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"latchTime": {
|
||||
"type": "integer",
|
||||
"title":"edt_dev_spec_latchtime_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_ms",
|
||||
"minimum": 1,
|
||||
"maximum": 1000,
|
||||
"access" : "expert",
|
||||
"propertyOrder" : 5
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
|
Reference in New Issue
Block a user