Few fixes in RPC generation routines

This commit is contained in:
Zaid Abdulla committed 2016-04-19 03:07:32 +03:00
1 parent 7b18cb3bbf
commit 8ac94474aa
1 file changed
+11 -5
+11 -5
View File
@@ -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]