Update script LUA
This commit is contained in:
@@ -4,7 +4,7 @@ Procedura decodifica Allarmi:
|
||||
Variabili IN:
|
||||
- alarmList(array/tabella) (elenco allarmi gestiti a bitmap, se ## = silenziati)
|
||||
- currVal(INT) stato corrente
|
||||
- lastVal(INT) ultimo stato (oppure 0) - opzionale
|
||||
- lastVal(INT) ultimo stato (oppure 0)
|
||||
- muteMask(INT) valore disableMask x silenziamento allarmi (xFF default = tutto attivo, ogni bit a 0 è silenziato) - opzionale
|
||||
|
||||
Variabili OUT:
|
||||
@@ -21,22 +21,25 @@ currVal = currVal or 0
|
||||
lastVal = lastVal or 0
|
||||
muteMask = muteMask or 0XFF
|
||||
disableMask = disableMask or 0xFF
|
||||
--disableMask = disableMask or 0x00 -- caso calcolato internamente
|
||||
valueChanged = false
|
||||
prefix = prefix or 'AREA'
|
||||
|
||||
-- se non è da NLua inizializzo variabili accessorie
|
||||
local function checkInit()
|
||||
if(callMode ~= 'NLua') then
|
||||
alarmList = {"Allarme01", "Allarme02", "Allarme03", "Allarme04", "Allarme05", "Allarme06", "Allarme07", "Allarme08", "##Allarme09", "##Allarme10", "##Allarme11", "##Allarme12", "##Allarme13", "##Allarme14", "##Allarme15", "##Allarme16"}
|
||||
numAlarm = #alarmList
|
||||
-- valori status da testare
|
||||
lastVal = 0
|
||||
currVal = 255
|
||||
disableMask = 0x00
|
||||
end
|
||||
if (callMode ~= 'NLua') then
|
||||
alarmList = {"Allarme01", "Allarme02", "Allarme03", "Allarme04", "Allarme05", "Allarme06", "Allarme07",
|
||||
"Allarme08", "##Allarme09", "##Allarme10", "##Allarme11", "##Allarme12", "##Allarme13",
|
||||
"##Allarme14", "##Allarme15", "##Allarme16"}
|
||||
numAlarm = #alarmList
|
||||
-- valori status da testare
|
||||
lastVal = 0
|
||||
currVal = 1403
|
||||
disableMask = 0xFF
|
||||
muteMask = 0xFF3F
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local function testBit(testVal, i)
|
||||
local answ=0
|
||||
local idx=2^(i-1)
|
||||
@@ -51,7 +54,7 @@ end
|
||||
|
||||
local function setupTable()
|
||||
if numAlarm > 0 and alarmList[0] ~= nil then
|
||||
disableMask = 0
|
||||
--disableMask = 0
|
||||
for i = numAlarm,1, -1 do
|
||||
alarmListTable[i] = alarmList[i-1]
|
||||
end
|
||||
@@ -59,84 +62,85 @@ local function setupTable()
|
||||
alarmListTable = alarmList
|
||||
end
|
||||
end
|
||||
-- calcolo maschera...
|
||||
local function setupdisableMask()
|
||||
if(callMode ~= 'NLua') then
|
||||
for i = 1, numAlarm,1 do
|
||||
if(string.sub(alarmListTable[i],0,2)~='##') then
|
||||
disableMask = disableMask + 2^(i-1)
|
||||
end
|
||||
end
|
||||
disableMask = math.tointeger(disableMask)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- confronto lastVal e currVal
|
||||
local function checkVariation()
|
||||
valueChanged = valMask(lastVal) ~= valMask(currVal)
|
||||
if(callMode ~= 'NLua') then
|
||||
if(valueChanged) then
|
||||
print('LastVal: '.. lastVal .. ' | CurrVal: '.. currVal .. ' || LastValMask: '.. valMask(lastVal) .. ' | CurrValMask: '.. valMask(currVal))
|
||||
else
|
||||
print('UNCHANGED | LastValMask: '.. valMask(lastVal) .. ' | CurrValMask: '.. valMask(currVal))
|
||||
valueChanged = valMask(lastVal) ~= valMask(currVal)
|
||||
if (callMode ~= 'NLua') then
|
||||
if (valueChanged) then
|
||||
print('LastVal: ' .. lastVal .. ' | CurrVal: ' .. currVal .. ' || LastValMask: ' .. valMask(lastVal) .. ' | CurrValMask: ' .. valMask(currVal))
|
||||
else
|
||||
print('UNCHANGED | LastValMask: ' .. valMask(lastVal) .. ' | CurrValMask: ' .. valMask(currVal))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- salva nuovo valore corrente (post mask)
|
||||
lastVal = valMask(currVal)
|
||||
|
||||
-- salva nuovo valore corrente (post mask)
|
||||
lastVal = valMask(currVal)
|
||||
end
|
||||
|
||||
|
||||
local function checkActiveAlarms()
|
||||
local hasAlarms = 0
|
||||
for i = 1, numAlarm do
|
||||
bTest = testBit(valMask(currVal),i)
|
||||
if(bTest) then
|
||||
alarmListActive[#alarmListActive+1]= '[' .. prefix ..'.' .. string.format("%02d",i) ..'] '.. alarmListTable[i]
|
||||
hasAlarms = 1
|
||||
local hasAlarms = 0
|
||||
for i = 1, numAlarm do
|
||||
bTest = testBit(lastVal, i)
|
||||
--bTest = testBit(valMask(currVal), i)
|
||||
if (bTest) then
|
||||
alarmListActive[#alarmListActive + 1] = '[' .. prefix .. '.' .. string.format("%02d", i) .. '] ' .. alarmListTable[i]
|
||||
hasAlarms = 1
|
||||
end
|
||||
end
|
||||
end
|
||||
-- ordino allarmi...
|
||||
if(hasAlarms==1) then
|
||||
table.sort(alarmListActive)
|
||||
end
|
||||
end
|
||||
|
||||
local function calcStatusVar()
|
||||
for k, v in pairs(alarmListActive) do
|
||||
alarmStatus = alarmStatus .. v .. ' | '
|
||||
end
|
||||
|
||||
if(#alarmStatus == 0) then
|
||||
alarmStatus = 'All OK'
|
||||
else
|
||||
if(#alarmStatus > 3) then
|
||||
alarmStatus = string.sub(alarmStatus, 0, #alarmStatus -3)
|
||||
-- ordino allarmi...
|
||||
if (hasAlarms == 1) then
|
||||
table.sort(alarmListActive)
|
||||
end
|
||||
end
|
||||
local function calcStatusVar()
|
||||
for k, v in pairs(alarmListActive) do
|
||||
alarmStatus = alarmStatus .. v .. ' | '
|
||||
end
|
||||
|
||||
if (#alarmStatus == 0) then
|
||||
alarmStatus = 'All OK'
|
||||
else
|
||||
if (#alarmStatus > 3) then
|
||||
alarmStatus = string.sub(alarmStatus, 0, #alarmStatus - 3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function displayTestInfo()
|
||||
if(callMode ~= 'NLua') then
|
||||
print('muteMask: '.. muteMask .. ' | disableMask: '.. disableMask)
|
||||
print(alarmStatus)
|
||||
--print('------------------------------')
|
||||
--for i,val in pairs(alarmListTable) do
|
||||
-- print("AL"..i.." | "..val)
|
||||
--end
|
||||
end
|
||||
if (callMode ~= 'NLua') then
|
||||
print('muteMask: ' .. muteMask .. ' | disableMask: ' .. disableMask)
|
||||
print(alarmStatus)
|
||||
-- print('------------------------------')
|
||||
-- for i,val in pairs(alarmListTable) do
|
||||
-- print("AL"..i.." | "..val)
|
||||
-- end
|
||||
end
|
||||
end
|
||||
|
||||
-- calcolo maschera...
|
||||
local function setupDisableMask()
|
||||
if (callMode ~= 'NLua') then
|
||||
for i = 1, numAlarm, 1 do
|
||||
if (string.sub(alarmListTable[i], 0, 2) ~= '##') then
|
||||
disableMask = disableMask + 2 ^ (i - 1)
|
||||
end
|
||||
end
|
||||
disableMask = math.tointeger(disableMask)
|
||||
end
|
||||
end
|
||||
|
||||
-- MAIN
|
||||
alarmListTable = {}
|
||||
alarmListTable = {}
|
||||
alarmListActive = {}
|
||||
alarmStatus = ""
|
||||
alarmStatus = ""
|
||||
|
||||
checkInit()
|
||||
setupTable()
|
||||
setupdisableMask()
|
||||
--setupDisableMask()
|
||||
|
||||
checkVariation()
|
||||
checkActiveAlarms()
|
||||
calcStatusVar()
|
||||
calcStatusVar()
|
||||
displayTestInfo()
|
||||
|
||||
Reference in New Issue
Block a user