Match the existing parameter type when applying configuration
This commit is contained in:
1 parent
c568bb6332
commit
5c834568ab
2 files changed
+32
-9
No files matched your search
+28
-7
@@ -1,11 +1,12 @@
|
|||||||
exports.UNDEFINED_TYPE = '[object Undefined]'
|
UNDEFINED_TYPE = '[object Undefined]'
|
||||||
exports.NULL_TYPE = '[object Null]'
|
NULL_TYPE = '[object Null]'
|
||||||
exports.NUMBER_TYPE = '[object Number]'
|
NUMBER_TYPE = '[object Number]'
|
||||||
exports.STRING_TYPE = '[object String]'
|
STRING_TYPE = '[object String]'
|
||||||
exports.ARRAY_TYPE = '[object Array]'
|
ARRAY_TYPE = '[object Array]'
|
||||||
exports.OBJECT_TYPE = '[object Object]'
|
OBJECT_TYPE = '[object Object]'
|
||||||
|
|
||||||
exports.typeOf = (obj) ->
|
|
||||||
|
typeOf = (obj) ->
|
||||||
Object.prototype.toString.call(obj)
|
Object.prototype.toString.call(obj)
|
||||||
|
|
||||||
|
|
||||||
@@ -39,3 +40,23 @@ exports.getParamValueFromPath = (obj, path) ->
|
|||||||
for p in pp
|
for p in pp
|
||||||
ref = ref[p]
|
ref = ref[p]
|
||||||
return ref
|
return ref
|
||||||
|
|
||||||
|
|
||||||
|
exports.matchType = (src, dst) ->
|
||||||
|
switch typeOf(src)
|
||||||
|
when STRING_TYPE
|
||||||
|
String(dst)
|
||||||
|
when NUMBER_TYPE
|
||||||
|
Number(dst)
|
||||||
|
else
|
||||||
|
dst
|
||||||
|
|
||||||
|
|
||||||
|
exports.UNDEFINED_TYPE = UNDEFINED_TYPE
|
||||||
|
exports.NULL_TYPE = NULL_TYPE
|
||||||
|
exports.NUMBER_TYPE = NUMBER_TYPE
|
||||||
|
exports.STRING_TYPE = STRING_TYPE
|
||||||
|
exports.ARRAY_TYPE = ARRAY_TYPE
|
||||||
|
exports.OBJECT_TYPE = OBJECT_TYPE
|
||||||
|
|
||||||
|
exports.typeOf = typeOf
|
||||||
+4
-2
@@ -72,8 +72,10 @@ exports.assertPresets = (deviceId, presetsHash, callback) ->
|
|||||||
for c in configurations
|
for c in configurations
|
||||||
switch c.type
|
switch c.type
|
||||||
when 'value'
|
when 'value'
|
||||||
if c.value != common.getParamValueFromPath(device, "#{c.name}._value")
|
src = common.getParamValueFromPath(device, "#{c.name}._value")
|
||||||
setParameterValues.push([c.name, c.value])
|
dst = common.matchType(src, c.value)
|
||||||
|
if src != dst
|
||||||
|
setParameterValues.push([c.name, dst])
|
||||||
when 'age'
|
when 'age'
|
||||||
timeDiff = (now - common.getParamValueFromPath(device, "#{c.name}._timestamp")) / 1000
|
timeDiff = (now - common.getParamValueFromPath(device, "#{c.name}._timestamp")) / 1000
|
||||||
if (c.age - timeDiff < config.PRESETS_TIME_PADDING)
|
if (c.age - timeDiff < config.PRESETS_TIME_PADDING)
|
||||||
|
|||||||
Reference in new issue
Block a user