Few fixes in RPC generation routines
This commit is contained in:
1 parent
7b18cb3bbf
commit
8ac94474aa
1 file changed
+11
-5
+11
-5
@@ -150,11 +150,11 @@ generateRpcRequest = (sessionData) ->
|
|||||||
r.exist = true
|
r.exist = true
|
||||||
|
|
||||||
if declaration[2] > current[2]
|
if declaration[2] > current[2]
|
||||||
r.writable = true
|
r.object = true
|
||||||
r.exist = false
|
r.exist = false
|
||||||
|
|
||||||
if declaration[4] > current[4]
|
if declaration[4] > current[4]
|
||||||
r.object = true
|
r.writable = true
|
||||||
r.exist = false
|
r.exist = false
|
||||||
|
|
||||||
if declaration[6] > current[6]
|
if declaration[6] > current[6]
|
||||||
@@ -164,7 +164,7 @@ generateRpcRequest = (sessionData) ->
|
|||||||
r.object = false
|
r.object = false
|
||||||
r.exist = false
|
r.exist = false
|
||||||
gpn = false
|
gpn = false
|
||||||
else if not current[3]?
|
else if not current[2] > 0
|
||||||
r.object = true
|
r.object = true
|
||||||
|
|
||||||
if declaration[7]? and current[7]?
|
if declaration[7]? and current[7]?
|
||||||
@@ -255,6 +255,11 @@ loadDeclarations = (sessionData, virtualParameters, callback) ->
|
|||||||
for d, j in descendantLoad when d
|
for d, j in descendantLoad when d
|
||||||
toLoad.push(path.concat(descendantTimestamps[j][0][path.length] ? null))
|
toLoad.push(path.concat(descendantTimestamps[j][0][path.length] ? null))
|
||||||
|
|
||||||
|
if declaration[7]? and not current[4]?
|
||||||
|
# Need writable attribute when declaring a value
|
||||||
|
toLoad.push(path)
|
||||||
|
return
|
||||||
|
|
||||||
for i in [0...declaration.length] by 2
|
for i in [0...declaration.length] by 2
|
||||||
if declaration[i]? and not current[i]?
|
if declaration[i]? and not current[i]?
|
||||||
toLoad.push(path)
|
toLoad.push(path)
|
||||||
@@ -343,7 +348,7 @@ rpcRequest = (sessionData, declarations, callback) ->
|
|||||||
path = common.parsePath(provision[1])
|
path = common.parsePath(provision[1])
|
||||||
for i in [path.length...16] by 1
|
for i in [path.length...16] by 1
|
||||||
path.length = i
|
path.length = i
|
||||||
allDeclarations.push([path.slice(), provision[2], null, null, null, null, null, provision[2]])
|
allDeclarations.push([path.slice(), provision[2], null, 1, null, 1, null, provision[2]])
|
||||||
when 'value'
|
when 'value'
|
||||||
allDeclarations.push([[common.parsePath(provision[1]), provision[2], null, null, null, null, null, provision[2]]])
|
allDeclarations.push([[common.parsePath(provision[1]), provision[2], null, null, null, null, null, provision[2]]])
|
||||||
when 'tag'
|
when 'tag'
|
||||||
@@ -400,7 +405,8 @@ rpcRequest = (sessionData, declarations, callback) ->
|
|||||||
device.declare(sessionData.deviceData, d[0], d.slice(1), sessionData.timestamp)
|
device.declare(sessionData.deviceData, d[0], d.slice(1), sessionData.timestamp)
|
||||||
else
|
else
|
||||||
for declaration in decs
|
for declaration in decs
|
||||||
params = device.getAll(sessionData.deviceData, declaration[0], sessionData.revisions[iter] >> 1)
|
params = device.getAll(sessionData.deviceData, declaration[0], (sessionData.revisions[iter] >> 1) + 1)
|
||||||
|
# TODO move setting tags elsewhere
|
||||||
if declaration[0][0] == 'Tags' and declaration[0].length == 2
|
if declaration[0][0] == 'Tags' and declaration[0].length == 2
|
||||||
if not declaration[0][1]?
|
if not declaration[0][1]?
|
||||||
continue if declaration[8][0]
|
continue if declaration[8][0]
|
||||||
|
|||||||
Reference in new issue
Block a user