Yesterday, 11:34
(Yesterday, 11:27)hocine Wrote:Hi,hello, try thisCode:function calcolo32bit (data)
if data[3] then
--log('sono passato', data)
local byte_1 = data[6]
local byte_2 = data[5]
local byte_3 = data[4]
local byte_4 = data[3]
byte_received = ((byte_4 * 16777216)+(byte_3 * 65536)+(byte_2 * 256)+byte_1)
--log(byte_received)
s = bit.rshift(byte_received, 31)
--log(s)
exp1 = bit.rshift(byte_received, 23)
--log(exp1)
matissa = bit.band(byte_received , 8388607)
--log(matissa)
matissa2 = (matissa * 0.0000001) + 1
--log(matissa2)
risultato = (((-1)^s) * (2^(exp1-127))* matissa2)
return(risultato)
else
return(0)
end
end
function crc_calc(inv,cmd_set)
inv_num = {0x02,0x03,0x04,0x05,0x06,0x07}
--log('inv_num',inv_num[inv])
cmd = {{0x32,0x20,0x20,0x20,0x20,0x20,0x20},
{0x3B,0x01,0x00,0x20,0x20,0x20,0x20},
{0x3B,0x02,0x00,0x20,0x20,0x20,0x20},
{0x3B,0x03,0x00,0x20,0x20,0x20,0x20},
{0x3B,0x04,0x00,0x20,0x20,0x20,0x20},
{0x3B,0x08,0x00,0x20,0x20,0x20,0x20},
{0x3B,0x09,0x00,0x20,0x20,0x20,0x20},
{0x3B,0x1E,0x00,0x20,0x20,0x20,0x20},
{0x3B,0x31,0x00,0x20,0x20,0x20,0x20},
{0x4E,0x00,0x20,0x20,0x20,0x20,0x20},
{0x4E,0x01,0x20,0x20,0x20,0x20,0x20},
{0x4E,0x03,0x20,0x20,0x20,0x20,0x20},
{0x4E,0x04,0x20,0x20,0x20,0x20,0x20},
{0x4E,0x05,0x20,0x20,0x20,0x20,0x20}}
data = string.char(inv_num[inv],cmd[cmd_set][1],cmd[cmd_set][2],cmd[cmd_set][3],cmd[cmd_set][4],cmd[cmd_set][5],cmd[cmd_set][6],cmd[cmd_set][7])
--log('valore grezzo = ',data)
local crc_result = crc16(data) -- use different name
--log(crc_result)
return (crc_result)
end
for i = 1, 6, 1 do
--log(i)
crc = crc_calc(i,1)
--log(crc)
end
thanks but it is the same error. Always first step and then error.
BR Cristian