fix: Rewrite-/LatchTime LedDevice definitions (#785) (#799)

* Fix Rewrite/Latch Time

* dependencies can now be specified in the schema

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* dependencies can now be specified in the schema

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* correct default config

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* dependencies part 2

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* Update README.md

* build: Update Windows to Qt5.15 (#798)

* Update compile howto

- to qt5.15
- minimal install overhead
- sync with vscode and cmake

* Update docs with more input

gh actions windows: Qt5.15 and msvc2019

* fix: Azure build

* feat: Add Trapezoid to LED Layout (#791)

* Update schema-ledConfig.json

extend schema with corner points (vertcal and horizontal values in percent)

* Update conf_leds.html

input fields for corner points

* Update content_leds.js

add corner values and calculation of led rows

* Update de.json

german title for corners

* CHanges 26.12.2019 Correction and PowerOff add

* GrabberFix PiCam

* VType as QString

* Unused variable deletet

* Missing new paramneters for GrabberFix

* Error json

* JSon error by user

* Crosscompile SutnikElf frok

* Warning unused variable

* Revert "Crosscompile SutnikElf frok"

This reverts commit 443fe80090.

* Fixing a linting error

* Adding Grabber Override Names

* Adding more Grabber Fix translations

* Missed one

* remove V4L2 Grabber Fix and Power Button from Dashboard

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* Setting some limits to the trapezoid

Co-authored-by: SputnikElf <58911932+SputnikElf@users.noreply.github.com>
Co-authored-by: SputnikElf <sputnikelf@gmx.de>
Co-authored-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* add Hue EntertainmentAPI + Forwarder & other Fixes (#592)

* whitespaces + typo fixes

* JS / LGTM fixes

* SSDP Handler crash fix

* MessageForwarder handlePriorityChanges Slave fixes

* use aboutToQuit Signal

* complete rewriten Hue Entertainment API structure
combined Philips Hue and Entertainment API
with new MbedTLS based SSL UDP Provider

* add required cross-compile submodules

* logical rebuild fn: initLeds, setLights + new logs
-more detailed checks and error handling inside iniLeds and setLights
- logical script procedure before ProviderUdpSSL init
- first steps for multiple ProviderUdpSSL usage
- better fallback support to old RestAPI, if entertainment api is not supported
- just 4 u LordGrey: new log fn for cosmetic config outputs ;)

* add OSX CompileHowTo - undo from CrossCompileHowTo

* whitespace fixes

* lightID toString fix

* fix unsigned int E-API + debug output

* bugfixes, reworked black signal detection, wizard:
- change device config field light-ids from int to string -> real unsigned int fix
- add signal detection brightness minimum threshold value
0.0 for 0% brightness - 1.0 for 100% brightness to count for blacklight signal detection
reason: input may not 100% black, like mine - i have a deep dark gray input signal
-> my threshold value is set to 0.005 for 0.5% minimum brightness = 1 (from max 255) to count as black
- wizard optimations, with fallback without entertainment support (beta state)
- whitespace fixes

* cleanup + minor fixes

* change fixed Hue UPD SSL config to _devConfig paras

* Hotfix SSL Connection, new light models, wizard:
- Fix UPD SSL Connection failed Problems
- add new supported gamut C light models: LCG002, LCA001, LCA002, LCA003
- wizard: extend fallback support to classic mode + hints

* whitespace, typo fix

* uncheck useEntertainmentAPI, if noAPISupport detected + hint

* coredump fix -> add _blackLightsTimer nullptr init

* code cleanup / remove old debugs + whitespacefixes

* add gamut C LCP001, LCP002

* SSL UDP config made more flexible + remove qDebug
-> switch to hyerion.ng _log
-> replace logCommand with verbose
-> code cleanups etc...

* extended mbedtls debugging infos

* add adjustable ssl timeout settings

* error handling

* streamdebugger bugfixes

* UPDSSL psk / psk_identity bugfixes! + hue wizard fn typo fix +
- verbose option available without dependencies
- whitespace fixes

* Philips Hue Assistant now recognizes non-original bridges better...
+ Added note if no clientkey is set when using the entertainment API
+ User creation (+ clientkey) for non-original bridges can now also be used
+ Minor changes and bug fixes

* CMAKE mbedTLS  detection

* minor bug fixes + code cleanups

* FindMbedTLS.cmake remove Path-Hints + wizard.js: ajax timeout handling
Test - content_grabber.js: run relevant code only, if V4L2_AVAIL is true:
conf_grabber don't displays other devices, if V4L2 is not available

* compile mbedtls via cmake as static lib

* remove libmbedtls-dev from compileHowto / scripts

* Fix Windows build

* Fix windows build (part 2)

* removed unnecessary osx x11 include directory path

* QTimer Shutdown bugfix

* cmake win32 fix + minor bugfixes

* cmake debug msg used mbedtls libs

* Bugfix: noSignalDetection wasn't switchedOn again
if no signal was previously detected

* Some code fixes based on alerts from lgtm.com

Co-authored-by: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com>

* Update devices allowing rewriteTime

* Fix typo

* Add missing "general_btn_saverestart" text to en-file

Co-authored-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>
Co-authored-by: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com>
Co-authored-by: brindosch <edeltraud70@gmx.de>
Co-authored-by: Ben Williams <desertblade@gmail.com>
Co-authored-by: SputnikElf <58911932+SputnikElf@users.noreply.github.com>
Co-authored-by: SputnikElf <sputnikelf@gmx.de>
Co-authored-by: SJunkies <41368976+SJunkies@users.noreply.github.com>
This commit is contained in:
LordGrey 2020-05-26 22:28:36 +02:00 committed by GitHub
parent d5af0f4290
commit 55253b5322
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
37 changed files with 392 additions and 118 deletions

View File

@ -41,6 +41,7 @@
"general_btn_rename" : "Rename",
"general_btn_continue" : "Continue",
"general_btn_save" : "Save",
"general_btn_saverestart" : "Save and restart",
"general_btn_saveandreload" : "Save and reload",
"general_btn_restarthyperion" : "Restart Hyperion",
"general_btn_off" : "Off",
@ -472,6 +473,7 @@
"edt_dev_spec_cid_title" : "CID",
"edt_dev_spec_LBap102Mode_title" : "LightBerry APA102 Mode",
"edt_dev_spec_universe_title" : "Universe",
"edt_dev_spec_chanperfixture_title" : "Channels per Fixture",
"edt_dev_spec_whiteLedAlgor_title" : "White LED algorithm",
"edt_dev_spec_useRgbwProtocol_title" : "Use RGBW protocol",
"edt_dev_spec_maximumLedCount_title" : "Maximum LED count",

View File

@ -15,10 +15,9 @@
"type" : "file",
"hardwareLedCount" : 1,
"output" : "/dev/null",
"rate" : 1000000,
"colorOrder" : "rgb",
"latchTime" : 1,
"rewriteTime": 5000
"latchTime" : 0,
"rewriteTime": 0
},
"color" :
@ -212,7 +211,6 @@
"pblv" : 100,
"pbrh" : 100,
"pbrv" : 100
},
"matrix":

View File

@ -97,6 +97,16 @@ private:
///
void checkProperties(const QJsonObject & value, const QJsonObject & schema);
///
/// Checks whether certain properties of a JSON object exist under certain dependencies and are the same.
/// If this is not the case _error is set to true and an error-message is added
/// to the message-queue.
///
/// @param[in] value The given json-object
/// @param[in] schema The schema of the json-object
///
void checkDependencies(const QJsonObject & value, const QJsonObject & schema);
///
/// Verifies the additional configured properties of an json-object. If this is not the case
/// _error is set to true and an error-message is added to the message-queue.

View File

@ -2,7 +2,7 @@
"type" : "object",
"title" : "edt_dev_general_heading_title",
"required" : true,
"defaultProperties": ["hardwareLedCount","colorOrder","rewriteTime"],
"defaultProperties": ["hardwareLedCount", "colorOrder"],
"properties" :
{
"type" :
@ -29,15 +29,20 @@
"enum_titles" : ["edt_conf_enum_rgb", "edt_conf_enum_bgr", "edt_conf_enum_rbg", "edt_conf_enum_brg", "edt_conf_enum_gbr", "edt_conf_enum_grb"]
},
"propertyOrder" : 3
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 4
}
},
"dependencies" :
{
"rewriteTime" :
{
"properties" :
{
"type" :
{
"enum" : ["file", "apa102", "apa104", "ws2801", "lpd6803", "lpd8806", "p9813", "sk6812spi", "sk6822spi", "ws2812spi","ws281x", "piblaster", "adalight", "dmx", "atmo", "hyperionusbasp", "lightpack", "multilightpack", "paintpack", "rawhid", "sedu", "tpm2", "karate"]
}
},
"additionalProperties" : true
}
},
"additionalProperties" : true

View File

@ -52,8 +52,8 @@ int ProviderSpi::open()
if ( init(_devConfig) )
{
Debug(_log, "_baudRate_Hz %d, _latchTime_ns %d", _baudRate_Hz, _latchTime_ms);
Debug(_log, "_spiDataInvert %d, _spiMode %d", _spiDataInvert, _spiMode);
Debug(_log, "_baudRate_Hz [%d], _latchTime_ms [%d]", _baudRate_Hz, _latchTime_ms);
Debug(_log, "_spiDataInvert [%d], _spiMode [%d]", _spiDataInvert, _spiMode);
const int bitsPerWord = 8;

View File

@ -30,13 +30,22 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 15,
"default": 30,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 5
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -24,13 +24,22 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -23,13 +23,22 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -11,8 +11,8 @@
"type": "integer",
"title":"edt_dev_spec_port_title",
"default": 6454,
"minimum" : 0,
"maximum" : 65535,
"minimum": 0,
"maximum": 65535,
"propertyOrder" : 2
},
"universe": {
@ -30,9 +30,9 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"append" : "edt_append_ms",
"minimum": 1,
"default": 0,
"append": "edt_append_ms",
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 5

View File

@ -26,10 +26,19 @@
"title":"edt_dev_spec_latchtime_title",
"default": 10,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true

View File

@ -37,13 +37,13 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 6
}
}
},
"additionalProperties": true
}

View File

@ -25,11 +25,20 @@
"title":"edt_dev_spec_latchtime_title",
"default": 10,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -24,9 +24,9 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4

View File

@ -17,9 +17,9 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 3

View File

@ -8,6 +8,13 @@
"default" : "/dev/null",
"propertyOrder" : 1
},
"printTimeStamp": {
"type": "boolean",
"title":"edt_dev_spec_printTimeStamp_title",
"default": false,
"access" : "advanced",
"propertyOrder" : 2
},
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
@ -16,15 +23,17 @@
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 2
},
"printTimeStamp": {
"type": "boolean",
"title":"edt_dev_spec_printTimeStamp_title",
"default": false,
"access" : "expert",
"propertyOrder" : 3
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 4
}
},
"additionalProperties": true
}

View File

@ -28,7 +28,7 @@
"title":"edt_dev_spec_latchtime_title",
"default": 10,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4

View File

@ -7,17 +7,26 @@
"title":"edt_dev_spec_latchtime_title",
"default": 10,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 1
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 2
},
"ledType": {
"type": "string",
"title":"edt_dev_spec_ledType_title",
"enum" : ["ws2801","ws2812"],
"default": "ws2801",
"propertyOrder" : 2
"propertyOrder" : 3
}
},
"additionalProperties": true

View File

@ -26,11 +26,20 @@
"title":"edt_dev_spec_latchtime_title",
"default": 15,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -12,11 +12,20 @@
"title":"edt_dev_spec_latchtime_title",
"default": 11,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 2
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 3
}
},
"additionalProperties": true
}

View File

@ -23,12 +23,21 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true

View File

@ -23,13 +23,22 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -7,11 +7,20 @@
"title":"edt_dev_spec_latchtime_title",
"default": 11,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 1
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 2
}
},
"additionalProperties": true
}

View File

@ -23,13 +23,22 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -23,13 +23,22 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -13,15 +13,24 @@
"title":"edt_dev_spec_latchtime_title",
"default": 5,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 2
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 3
},
"gpiomap": {
"type": "array",
"title":"edt_dev_spec_gpioMap_title",
"propertyOrder" : 2,
"propertyOrder" : 3,
"minimum" : 1,
"maximum" : 27,
"items" : {
@ -56,7 +65,7 @@
}
}
},
"propertyOrder" : 3
"propertyOrder" : 4
}
},
"additionalProperties": true

View File

@ -25,11 +25,20 @@
"title":"edt_dev_spec_latchtime_title",
"default": 10,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -25,11 +25,20 @@
"title":"edt_dev_spec_latchtime_title",
"default": 10,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -33,13 +33,22 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 5
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 6
}
},
"additionalProperties": true
}

View File

@ -22,14 +22,23 @@
},
"latchTime": {
"type": "integer",
"title":"edt_dev_general_latchTime_title",
"default": 1,
"title":"edt_dev_spec_latchtime_title",
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
"propertyOrder" : 5
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -30,9 +30,9 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 5

View File

@ -25,11 +25,19 @@
"title":"edt_dev_spec_latchtime_title",
"default": 10,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
} },
"additionalProperties": true
}

View File

@ -15,29 +15,22 @@
"default" : 50200,
"propertyOrder" : 2
},
"latchtime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 104000,
"append" : "edt_append_s",
"propertyOrder" : 3
},
"max-packet": {
"type": "integer",
"title":"edt_dev_spec_maxPacket_title",
"minimum" : 0,
"default" : 170,
"propertyOrder" : 4
"propertyOrder" : 3
},
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 5
"propertyOrder" : 4
}
},
"additionalProperties": true

View File

@ -18,9 +18,9 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 3

View File

@ -14,29 +14,31 @@
"default": 1000000,
"propertyOrder" : 2
},
"latchtime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 500000,
"append" : "ns",
"propertyOrder" : 3
},
"invert": {
"type": "boolean",
"title":"edt_dev_spec_invert_title",
"default": false,
"propertyOrder" : 4
"propertyOrder" : 3
},
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
}
},
"additionalProperties": true
}

View File

@ -23,13 +23,22 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 4
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 5
}
},
"additionalProperties": true
}

View File

@ -53,13 +53,22 @@
"latchTime": {
"type": "integer",
"title":"edt_dev_spec_latchtime_title",
"default": 1,
"default": 0,
"append" : "edt_append_ms",
"minimum": 1,
"minimum": 0,
"maximum": 1000,
"access" : "expert",
"propertyOrder" : 8
}
},
"rewriteTime": {
"type": "integer",
"title":"edt_dev_general_rewriteTime_title",
"default": 1000,
"append" : "edt_append_ms",
"minimum": 0,
"access" : "expert",
"propertyOrder" : 9
}
},
"additionalProperties": true
}

View File

@ -85,6 +85,17 @@ void QJsonSchemaChecker::validate(const QJsonValue & value, const QJsonObject &s
continue;
}
}
else if (attribute == "dependencies")
{
if (value.isObject())
checkDependencies(value.toObject(), attributeValue.toObject());
else
{
_schemaError = true;
setMessage("dependencies attribute is only valid for objects");
continue;
}
}
else if (attribute == "additionalProperties")
{
if (value.isObject())
@ -239,6 +250,62 @@ void QJsonSchemaChecker::checkProperties(const QJsonObject & value, const QJsonO
}
}
void QJsonSchemaChecker::checkDependencies(const QJsonObject & value, const QJsonObject & schema)
{
for (QJsonObject::const_iterator i = schema.begin(); i != schema.end(); ++i)
{
QString property = i.key();
const QJsonValue & propertyValue = *i;
if (propertyValue.toObject().contains("properties"))
{
_currentPath.append("." + property);
const QJsonObject & dependencies = propertyValue.toObject()["properties"].toObject();
bool valid = false;
for (QJsonObject::const_iterator d = dependencies.begin(); d != dependencies.end(); ++d)
{
QString dependency = d.key();
const QJsonValue & dependencyValue = *d;
if (dependencyValue.toObject()["enum"].isArray())
{
QJsonArray jArray = dependencyValue.toObject()["enum"].toArray();
for(int a = 0; a < jArray.size(); ++a)
{
if (value[dependency] == jArray[a])
{
valid = true;
break;
}
else
valid = false;
}
}
else
valid = (value[dependency] == dependencyValue.toObject()["enum"]);
}
if (value.contains(property) && !valid)
{
_error = true;
if (_correct == "remove")
{
QJsonUtils::modify(_autoCorrected, _currentPath);
setMessage("Removed property: "+property);
}
if (_correct == "")
setMessage("Property not required");
}
_currentPath.removeLast();
}
}
}
void QJsonSchemaChecker::checkAdditionalProperties(const QJsonObject & value, const QJsonValue & schema, const QStringList & ignoredProperties)
{
for (QJsonObject::const_iterator i = value.begin(); i != value.end(); ++i)