rewrite - Gadjoken - 09.08.2019
Hello,
I use scripts to read or write BACNET values.
I would like to know if there is an easy way to rewrite this script more clearly and not send the values every time (If the value read on the BACNET is the same as the previous one then we do not rewrite it) :
Code: require('bacnet')
--CASSETTE 2
value2 = bacnet.readvalue(16002, 'binary value', 8) -- Prise du statut Fenetre
grp.write('5/3/2', value2)
--CASSETTE 3
value3 = bacnet.readvalue(16003, 'binary value', 8) -- Prise du statut Fenetre
grp.write('5/3/3', value3)
--CASSETTE 4
value4 = bacnet.readvalue(16004, 'binary value', 8) -- Prise du statut Fenetre
grp.write('5/3/4', value4)
--CASSETTE 5
value5 = bacnet.readvalue(16005, 'binary value', 8) -- Prise du statut Fenetre
grp.write('5/3/5', value5)
--CASSETTE 6
value6 = bacnet.readvalue(16006, 'binary value', 8) -- Prise du statut Fenetre
grp.write('5/3/6', value6)
--CASSETTE 7
value7 = bacnet.readvalue(16007, 'binary value', 8) -- Prise du statut Fenetre
grp.write('5/3/7', value7)
--CASSETTE 8
value8 = bacnet.readvalue(16008, 'binary value', 8) -- Prise du statut Fenetre
grp.write('5/3/8', value8)
--CASSETTE 9
value9 = bacnet.readvalue(16009, 'binary value', 8) -- Prise du statut Fenetre
grp.write('5/3/9', value9)
--CASSETTE 10
value10 = bacnet.readvalue(16010, 'binary value', 8) -- Prise du statut Fenetre
grp.write('5/3/10', value10)
--CASSETTE 11
value11 = bacnet.readvalue(16011, 'binary value', 8) -- Prise du statut Fenetre
grp.write('5/3/11', value11)
This script is one of the resident scripts for reading values I have many and some are for writing.
B.R.
RE: rewrite - admin - 09.08.2019
You can use for loop and checkwrite which will not send the same value again.
Code: require('bacnet')
for i = 2, 11 do
id = 16000 + i
value = bacnet.readvalue(id, 'binary value', 8) -- Prise du statut Fenetre
grp.checkwrite('5/3/' .. i, value)
end
RE: rewrite - Gadjoken - 09.08.2019
(09.08.2019, 06:34)admin Wrote: You can use for loop and checkwrite which will not send the same value again.
Code: require('bacnet')
for i = 2, 11 do
id = 16000 + i
value = bacnet.readvalue(id, 'binary value', 8) -- Prise du statut Fenetre
grp.checkwrite('5/3/' .. i, value)
end
Thanks !!
|