Ancora test integrazione decodificatore gestione allarmi in LUA
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
|
||||
-- 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
|
||||
Reference in New Issue
Block a user