13.01.2021, 10:47
(This post was last modified: 13.01.2021, 10:49 by davidchispas.)
Hello, in the Dali controls, having a minimum physical regulation value, the regulation bar is always at very high values, since I have a status object associated with it.
To fix this, I have created a script to fool my client.
In this case, I have a ballast with a minimum physical value of 161 which is 63%. This tells us that we have 37% regulation.
1- I made this script so that my control object, when I send 1%, actually send the value 63% and from there the final result would increase until it reaches 100%.
2- I have created another status script, which does the same calculation but in reverse.
My problem here is that the calculations are not exactly identical in one script and the other, with a minimal difference due to the decimals.
Surely there is another way to achieve this ... can you help me?
Control object% visu (1/3/9)
Status object% visu (1/4/9)
Ballast control object (1/5/9)
Ballast Status Object (1/6/9)
Control script (1/3/9)
State script (1/6/9)
To fix this, I have created a script to fool my client.
In this case, I have a ballast with a minimum physical value of 161 which is 63%. This tells us that we have 37% regulation.
1- I made this script so that my control object, when I send 1%, actually send the value 63% and from there the final result would increase until it reaches 100%.
2- I have created another status script, which does the same calculation but in reverse.
My problem here is that the calculations are not exactly identical in one script and the other, with a minimal difference due to the decimals.
Surely there is another way to achieve this ... can you help me?
Control object% visu (1/3/9)
Status object% visu (1/4/9)
Ballast control object (1/5/9)
Ballast Status Object (1/6/9)
Control script (1/3/9)
Code:
--Minimum physical value of ballast
VFM = 63
--Regulation output object
VReg= '1/5/9'
------------------------------------
value = event.getvalue()
OP1 = (100-VFM)/100
OP2 = (value*OP1)+VFM
if value==0 then
grp.write(VReg, 0)
elseif value>=1 then
grp.write(VReg, OP2)
end
State script (1/6/9)
Code:
--Minimum physical value of ballast
VFM = 63
--Regulation output object
VReg= '1/4/9'
------------------------------------
value = event.getvalue()
OP1 = (100-VFM)/100
OP2 = (value-VFM)/OP1
if value == VFM then
grp.write(VReg, 1)
elseif value ~= VFM then
grp.write(VReg, OP2)
end