-- This is a one-line comment that ends at the end of the line --[[ This a multi-line (long) [comment](http://www.lua.org/manual/5.1/manual.html#2.1) that ends with this closing bracket --> ]] --[=[ This is also a long comment ]=] --[[--------------------------------------------------- Procedura decodifica Allarmi: - ricezione tab elenco allarmi gestiti a bitmap, se ## = silenziati - produzione var string con status finale risultati - ricezione obj stato corrente x i vari allarmi - decodifica x ogni info ricevuta dello stato allarmi relativo - invio (salvataggio) stato allarmi tramite funzione ---------------------------------------------------]]-- -- ricezione da codice tab status allarmi, attenzione da C# è 0 based, qui è 1 based --> fix costruzione tabella -- variabile semaforo callMode x chiamate locali o remote da NLua callMode = callMode or '' -- se non è da NLua inizializzo variabili accessorie if(callMode ~= 'NLua') then alarmList = {"Allarme01", "Allarme02", "##Silenzio", "##Allarme04", "Allarme05", "Allarme06", "Allarme07", "##Allarme08"} numAlarm = #alarmList --print(alarmList) end alarmListTable={} if numAlarm > 0 and alarmList[0] ~= nil then for i = numAlarm,1, -1 do alarmListTable[i] = alarmList[i-1] end else alarmListTable = alarmList end print('------------------------------') for i = 1, numAlarm do print("AL"..i.." | "..alarmListTable[i]) end --print('------------------------------') -- --for i,val in pairs(alarmListTable) do -- print("AL"..i.." | "..val) --end --print('------------------------------') -- --for i,val in ipairs(alarmListTable) do -- print("AL"..i.." | "..val) --end rawVal = 6 b0 = 1 b1 = 2 b2 = 4 --bVal = bit.tobit(rawVal) --bHex = bit.tohex(rawVal) --print(bit.band(bVal,b0)) --print(bit.band(bVal,b1)) --print(bit.band(bVal,b2)) --print(bHex) --print('------------------------------') --print(6&1 == 1) --print(6&2 == 2) --print(6&4 == 4) --print(6&2 == 8) --print(6&4 == 16) --print('------------------------------') --print(6|1) --print(6|2) --print(6|4) --print(6|2) --print(6|4) --OR, XOR, AND = 1, 3, 4 -- --function bitoper(a, b, oper) -- local r, m, s = 0, 2^31 -- repeat -- s,a,b = a+b+m, a%m, b%m -- r,m = r + m*oper%(s-a-b), m/2 -- until m < 1 -- return r --end -- --print(bitoper(6,3,OR)) --> 7 --print(bitoper(6,3,XOR)) --> 5 --print(bitoper(6,3,AND)) --> 2