618 lines
23 KiB
Lua
618 lines
23 KiB
Lua
|
|
uart_free_protocol = 1 -- 设置全局变量uart_free_protocol,使用自由串口协议
|
|||
|
|
|
|||
|
|
-- 开锁指令数组(按地址1-5和锁编号1-12顺序)
|
|||
|
|
openlock = {
|
|||
|
|
-- 0x01地址
|
|||
|
|
[0] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x01,0x05}, -- 01锁
|
|||
|
|
[1] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x02,0x06}, -- 02锁
|
|||
|
|
[2] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x03,0x07}, -- 03锁
|
|||
|
|
[3] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x04,0x00}, -- 04锁
|
|||
|
|
[4] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x05,0x01}, -- 05锁
|
|||
|
|
[5] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x06,0x02}, -- 06锁
|
|||
|
|
[6] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x07,0x03}, -- 07锁
|
|||
|
|
[7] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x08,0x0C}, -- 08锁
|
|||
|
|
[8] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x09,0x0D}, -- 09锁
|
|||
|
|
[9] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x0A,0x0E}, -- 10锁
|
|||
|
|
[10] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x0B,0x0F}, -- 11锁
|
|||
|
|
[11] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x04,0x00,0x01,0x0C,0x08}, -- 12锁
|
|||
|
|
|
|||
|
|
-- 0x02地址
|
|||
|
|
[12] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x01,0x06}, -- 13锁
|
|||
|
|
[13] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x02,0x05}, -- 14锁
|
|||
|
|
[14] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x03,0x04}, -- 15锁
|
|||
|
|
[15] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x04,0x03}, -- 16锁
|
|||
|
|
[16] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x05,0x02}, -- 17锁
|
|||
|
|
[17] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x06,0x01}, -- 18锁
|
|||
|
|
[18] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x07,0x00}, -- 19锁
|
|||
|
|
[19] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x08,0x0F}, -- 20锁
|
|||
|
|
[20] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x09,0x0E}, -- 21锁
|
|||
|
|
[21] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x0A,0x0D}, -- 22锁
|
|||
|
|
[22] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x0B,0x0C}, -- 23锁
|
|||
|
|
[23] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x04,0x00,0x01,0x0C,0x0B}, -- 24锁
|
|||
|
|
|
|||
|
|
-- 0x03地址
|
|||
|
|
[24] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x01,0x07}, -- 25锁
|
|||
|
|
[25] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x02,0x04}, -- 26锁
|
|||
|
|
[26] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x03,0x05}, -- 27锁
|
|||
|
|
[27] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x04,0x02}, -- 28锁
|
|||
|
|
[28] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x05,0x03}, -- 29锁
|
|||
|
|
[29] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x06,0x00}, -- 30锁
|
|||
|
|
[30] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x07,0x01}, -- 31锁
|
|||
|
|
[31] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x08,0x0E}, -- 32锁
|
|||
|
|
[32] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x09,0x0F}, -- 33锁
|
|||
|
|
[33] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x0A,0x0C}, -- 34锁
|
|||
|
|
[34] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x0B,0x0D}, -- 35锁
|
|||
|
|
[35] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x04,0x00,0x01,0x0C,0x0A}, -- 36锁
|
|||
|
|
|
|||
|
|
-- 0x04地址
|
|||
|
|
[36] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x01,0x00}, -- 37锁
|
|||
|
|
[37] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x02,0x03}, -- 38锁
|
|||
|
|
[38] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x03,0x02}, -- 39锁
|
|||
|
|
[39] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x04,0x05}, -- 40锁
|
|||
|
|
[40] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x05,0x04}, -- 41锁
|
|||
|
|
[41] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x06,0x07}, -- 42锁
|
|||
|
|
[42] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x07,0x06}, -- 43锁
|
|||
|
|
[43] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x08,0x09}, -- 44锁
|
|||
|
|
[44] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x09,0x08}, -- 45锁
|
|||
|
|
[45] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x0A,0x0B}, -- 46锁
|
|||
|
|
[46] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x0B,0x0A}, -- 47锁
|
|||
|
|
[47] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x04,0x00,0x01,0x0C,0x0D}, -- 48锁
|
|||
|
|
|
|||
|
|
-- 0x05地址
|
|||
|
|
[48] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x01,0x01}, -- 49锁
|
|||
|
|
[49] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x02,0x02}, -- 50锁
|
|||
|
|
[50] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x03,0x03}, -- 51锁
|
|||
|
|
[51] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x04,0x04}, -- 52锁
|
|||
|
|
[52] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x05,0x05}, -- 53锁
|
|||
|
|
[53] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x06,0x06}, -- 54锁
|
|||
|
|
[54] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x07,0x07}, -- 55锁
|
|||
|
|
[55] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x08,0x08}, -- 56锁
|
|||
|
|
[56] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x09,0x09}, -- 57锁
|
|||
|
|
[57] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x0A,0x0A}, -- 58锁
|
|||
|
|
[58] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x0B,0x0B}, -- 59锁
|
|||
|
|
[59] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x04,0x00,0x01,0x0C,0x0C} -- 60锁
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-- 一键全开指令数组(按地址1-5顺序)
|
|||
|
|
openAlllock = {
|
|||
|
|
[0] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x05,0x00,0x00,0x04}, -- 0x01地址
|
|||
|
|
[1] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x05,0x00,0x00,0x07}, -- 0x02地址
|
|||
|
|
[2] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x05,0x00,0x00,0x06}, -- 0x03地址
|
|||
|
|
[3] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x05,0x00,0x00,0x01}, -- 0x04地址
|
|||
|
|
[4] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x05,0x00,0x00,0x00} -- 0x05地址
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-- 读取所有通道状态指令数组(按地址1-5顺序)
|
|||
|
|
readLockState = {
|
|||
|
|
[0] = {[0] = 0xA5,0xA5,0x00,0x01,0x00,0x0A,0x00,0x00,0x0B}, -- 0x01地址
|
|||
|
|
[1] = {[0] = 0xA5,0xA5,0x00,0x02,0x00,0x0A,0x00,0x00,0x08}, -- 0x02地址
|
|||
|
|
[2] = {[0] = 0xA5,0xA5,0x00,0x03,0x00,0x0A,0x00,0x00,0x09}, -- 0x03地址
|
|||
|
|
[3] = {[0] = 0xA5,0xA5,0x00,0x04,0x00,0x0A,0x00,0x00,0x0E}, -- 0x04地址
|
|||
|
|
[4] = {[0] = 0xA5,0xA5,0x00,0x05,0x00,0x0A,0x00,0x00,0x0F} -- 0x05地址
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
sendID = 0 -- 全局发送ID
|
|||
|
|
sendFlag = 0 -- 全局发送状态,设置优先级 0-查询状态 1-发送开锁
|
|||
|
|
|
|||
|
|
-- 系统加载LUA脚本文件之后,立即调用此回调函数,通常用于执行初始化操作,仅执行一次。
|
|||
|
|
-- on_timer(timer_id)函数是LUA定时器中断函数,timer_id值范围为0-31。
|
|||
|
|
function on_init()
|
|||
|
|
start_timer(1, 200, 0, 0)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 接收查询所有通道状态指令,改变状态
|
|||
|
|
function on_uart_recv_data(packet, bytelen)
|
|||
|
|
|
|||
|
|
-- 第3个字节packet[2]为锁控板地址,第9个字节packet[8 + i]为所有锁状态(一个锁控板有12把锁)
|
|||
|
|
if packet[0] == 0xA5 and packet[1] == 0xA5 and packet[2] ~= 0x00 and packet[3] == 0x00 and packet[5] == 0x0A and packet[6] == 0x00 and packet[7] == 0x0C then
|
|||
|
|
|
|||
|
|
-- 采用遍历赋值,待验证
|
|||
|
|
-- local screenId = 0
|
|||
|
|
-- if packet[2] == 1 then
|
|||
|
|
-- screenId = 0
|
|||
|
|
-- elseif packet[2] == 2 then
|
|||
|
|
-- screenId = 1
|
|||
|
|
-- elseif packet[2] == 3 then
|
|||
|
|
-- screenId = 2
|
|||
|
|
-- elseif packet[2] == 4 then
|
|||
|
|
-- screenId = 3
|
|||
|
|
-- elseif packet[2] == 5 then
|
|||
|
|
-- screenId = 4
|
|||
|
|
-- end
|
|||
|
|
|
|||
|
|
-- for i = 0, 11 do
|
|||
|
|
-- if packet[8 + i] == 0 then
|
|||
|
|
-- set_value(screenId, i + 1, 1)
|
|||
|
|
-- else
|
|||
|
|
-- set_value(screenId, i + 1, 0)
|
|||
|
|
-- end
|
|||
|
|
-- end
|
|||
|
|
|
|||
|
|
if packet[2] == 1 then -- 0x01地址
|
|||
|
|
if packet[8] == 0 then
|
|||
|
|
set_value(0, 1, 1)
|
|||
|
|
else
|
|||
|
|
set_value(0, 1, 0)
|
|||
|
|
end
|
|||
|
|
if packet[9] == 0 then
|
|||
|
|
set_value(0, 2, 1)
|
|||
|
|
else
|
|||
|
|
set_value(0, 2, 0)
|
|||
|
|
end
|
|||
|
|
if packet[10] == 0 then
|
|||
|
|
set_value(0, 3, 1)
|
|||
|
|
else
|
|||
|
|
set_value(0, 3, 0)
|
|||
|
|
end
|
|||
|
|
if packet[11] == 0 then
|
|||
|
|
set_value(0, 4, 1)
|
|||
|
|
else
|
|||
|
|
set_value(0, 4, 0)
|
|||
|
|
end
|
|||
|
|
if packet[12] == 0 then
|
|||
|
|
set_value(0, 5, 1)
|
|||
|
|
else
|
|||
|
|
set_value(0, 5, 0)
|
|||
|
|
end
|
|||
|
|
if packet[13] == 0 then
|
|||
|
|
set_value(0, 6, 1)
|
|||
|
|
else
|
|||
|
|
set_value(0, 6, 0)
|
|||
|
|
end
|
|||
|
|
if packet[14] == 0 then
|
|||
|
|
set_value(0, 7, 1)
|
|||
|
|
else
|
|||
|
|
set_value(0, 7, 0)
|
|||
|
|
end
|
|||
|
|
if packet[15] == 0 then
|
|||
|
|
set_value(0, 8, 1)
|
|||
|
|
else
|
|||
|
|
set_value(0, 8, 0)
|
|||
|
|
end
|
|||
|
|
if packet[16] == 0 then
|
|||
|
|
set_value(0, 9, 1)
|
|||
|
|
else
|
|||
|
|
set_value(0, 9, 0)
|
|||
|
|
end
|
|||
|
|
if packet[17] == 0 then
|
|||
|
|
set_value(0, 10, 1)
|
|||
|
|
else
|
|||
|
|
set_value(0, 10, 0)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
if packet[2] == 2 then -- 0x02地址
|
|||
|
|
if packet[8] == 0 then
|
|||
|
|
set_value(1, 1, 1)
|
|||
|
|
else
|
|||
|
|
set_value(1, 1, 0)
|
|||
|
|
end
|
|||
|
|
if packet[9] == 0 then
|
|||
|
|
set_value(1, 2, 1)
|
|||
|
|
else
|
|||
|
|
set_value(1, 2, 0)
|
|||
|
|
end
|
|||
|
|
if packet[10] == 0 then
|
|||
|
|
set_value(1, 3, 1)
|
|||
|
|
else
|
|||
|
|
set_value(1, 3, 0)
|
|||
|
|
end
|
|||
|
|
if packet[11] == 0 then
|
|||
|
|
set_value(1, 4, 1)
|
|||
|
|
else
|
|||
|
|
set_value(1, 4, 0)
|
|||
|
|
end
|
|||
|
|
if packet[12] == 0 then
|
|||
|
|
set_value(1, 5, 1)
|
|||
|
|
else
|
|||
|
|
set_value(1, 5, 0)
|
|||
|
|
end
|
|||
|
|
if packet[13] == 0 then
|
|||
|
|
set_value(1, 6, 1)
|
|||
|
|
else
|
|||
|
|
set_value(1, 6, 0)
|
|||
|
|
end
|
|||
|
|
if packet[14] == 0 then
|
|||
|
|
set_value(1, 7, 1)
|
|||
|
|
else
|
|||
|
|
set_value(1, 7, 0)
|
|||
|
|
end
|
|||
|
|
if packet[15] == 0 then
|
|||
|
|
set_value(1, 8, 1)
|
|||
|
|
else
|
|||
|
|
set_value(1, 8, 0)
|
|||
|
|
end
|
|||
|
|
if packet[16] == 0 then
|
|||
|
|
set_value(1, 9, 1)
|
|||
|
|
else
|
|||
|
|
set_value(1, 9, 0)
|
|||
|
|
end
|
|||
|
|
if packet[17] == 0 then
|
|||
|
|
set_value(1, 10, 1)
|
|||
|
|
else
|
|||
|
|
set_value(1, 10, 0)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
if packet[2] == 3 then -- 0x03地址
|
|||
|
|
if packet[8] == 0 then
|
|||
|
|
set_value(2, 1, 1)
|
|||
|
|
else
|
|||
|
|
set_value(2, 1, 0)
|
|||
|
|
end
|
|||
|
|
if packet[9] == 0 then
|
|||
|
|
set_value(2, 2, 1)
|
|||
|
|
else
|
|||
|
|
set_value(2, 2, 0)
|
|||
|
|
end
|
|||
|
|
if packet[10] == 0 then
|
|||
|
|
set_value(2, 3, 1)
|
|||
|
|
else
|
|||
|
|
set_value(2, 3, 0)
|
|||
|
|
end
|
|||
|
|
if packet[11] == 0 then
|
|||
|
|
set_value(2, 4, 1)
|
|||
|
|
else
|
|||
|
|
set_value(2, 4, 0)
|
|||
|
|
end
|
|||
|
|
if packet[12] == 0 then
|
|||
|
|
set_value(2, 5, 1)
|
|||
|
|
else
|
|||
|
|
set_value(2, 5, 0)
|
|||
|
|
end
|
|||
|
|
if packet[13] == 0 then
|
|||
|
|
set_value(2, 6, 1)
|
|||
|
|
else
|
|||
|
|
set_value(2, 6, 0)
|
|||
|
|
end
|
|||
|
|
if packet[14] == 0 then
|
|||
|
|
set_value(2, 7, 1)
|
|||
|
|
else
|
|||
|
|
set_value(2, 7, 0)
|
|||
|
|
end
|
|||
|
|
if packet[15] == 0 then
|
|||
|
|
set_value(2, 8, 1)
|
|||
|
|
else
|
|||
|
|
set_value(2, 8, 0)
|
|||
|
|
end
|
|||
|
|
if packet[16] == 0 then
|
|||
|
|
set_value(2, 9, 1)
|
|||
|
|
else
|
|||
|
|
set_value(2, 9, 0)
|
|||
|
|
end
|
|||
|
|
if packet[17] == 0 then
|
|||
|
|
set_value(2, 10, 1)
|
|||
|
|
else
|
|||
|
|
set_value(2, 10, 0)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
if packet[2] == 4 then -- 0x04地址
|
|||
|
|
if packet[8] == 0 then
|
|||
|
|
set_value(3, 1, 1)
|
|||
|
|
else
|
|||
|
|
set_value(3, 1, 0)
|
|||
|
|
end
|
|||
|
|
if packet[9] == 0 then
|
|||
|
|
set_value(3, 2, 1)
|
|||
|
|
else
|
|||
|
|
set_value(3, 2, 0)
|
|||
|
|
end
|
|||
|
|
if packet[10] == 0 then
|
|||
|
|
set_value(3, 3, 1)
|
|||
|
|
else
|
|||
|
|
set_value(3, 3, 0)
|
|||
|
|
end
|
|||
|
|
if packet[11] == 0 then
|
|||
|
|
set_value(3, 4, 1)
|
|||
|
|
else
|
|||
|
|
set_value(3, 4, 0)
|
|||
|
|
end
|
|||
|
|
if packet[12] == 0 then
|
|||
|
|
set_value(3, 5, 1)
|
|||
|
|
else
|
|||
|
|
set_value(3, 5, 0)
|
|||
|
|
end
|
|||
|
|
if packet[13] == 0 then
|
|||
|
|
set_value(3, 6, 1)
|
|||
|
|
else
|
|||
|
|
set_value(3, 6, 0)
|
|||
|
|
end
|
|||
|
|
if packet[14] == 0 then
|
|||
|
|
set_value(3, 7, 1)
|
|||
|
|
else
|
|||
|
|
set_value(3, 7, 0)
|
|||
|
|
end
|
|||
|
|
if packet[15] == 0 then
|
|||
|
|
set_value(3, 8, 1)
|
|||
|
|
else
|
|||
|
|
set_value(3, 8, 0)
|
|||
|
|
end
|
|||
|
|
if packet[16] == 0 then
|
|||
|
|
set_value(3, 9, 1)
|
|||
|
|
else
|
|||
|
|
set_value(3, 9, 0)
|
|||
|
|
end
|
|||
|
|
if packet[17] == 0 then
|
|||
|
|
set_value(3, 10, 1)
|
|||
|
|
else
|
|||
|
|
set_value(3, 10, 0)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
if packet[2] == 5 then -- 0x05地址
|
|||
|
|
if packet[8] == 0 then
|
|||
|
|
set_value(4, 1, 1)
|
|||
|
|
else
|
|||
|
|
set_value(4, 1, 0)
|
|||
|
|
end
|
|||
|
|
if packet[9] == 0 then
|
|||
|
|
set_value(4, 2, 1)
|
|||
|
|
else
|
|||
|
|
set_value(4, 2, 0)
|
|||
|
|
end
|
|||
|
|
if packet[10] == 0 then
|
|||
|
|
set_value(4, 3, 1)
|
|||
|
|
else
|
|||
|
|
set_value(4, 3, 0)
|
|||
|
|
end
|
|||
|
|
if packet[11] == 0 then
|
|||
|
|
set_value(4, 4, 1)
|
|||
|
|
else
|
|||
|
|
set_value(4, 4, 0)
|
|||
|
|
end
|
|||
|
|
if packet[12] == 0 then
|
|||
|
|
set_value(4, 5, 1)
|
|||
|
|
else
|
|||
|
|
set_value(4, 5, 0)
|
|||
|
|
end
|
|||
|
|
if packet[13] == 0 then
|
|||
|
|
set_value(4, 6, 1)
|
|||
|
|
else
|
|||
|
|
set_value(4, 6, 0)
|
|||
|
|
end
|
|||
|
|
if packet[14] == 0 then
|
|||
|
|
set_value(4, 7, 1)
|
|||
|
|
else
|
|||
|
|
set_value(4, 7, 0)
|
|||
|
|
end
|
|||
|
|
if packet[15] == 0 then
|
|||
|
|
set_value(4, 8, 1)
|
|||
|
|
else
|
|||
|
|
set_value(4, 8, 0)
|
|||
|
|
end
|
|||
|
|
if packet[16] == 0 then
|
|||
|
|
set_value(4, 9, 1)
|
|||
|
|
else
|
|||
|
|
set_value(4, 9, 0)
|
|||
|
|
end
|
|||
|
|
if packet[17] == 0 then
|
|||
|
|
set_value(4, 10, 1)
|
|||
|
|
else
|
|||
|
|
set_value(4, 10, 0)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 用户触摸修改控件后,执行此回调函数.点击按钮控件,修改文本控件、修改滑动条、滑动选择都会触发此事件。
|
|||
|
|
-- screen 画面ID
|
|||
|
|
-- control 控件ID
|
|||
|
|
-- value 控件值
|
|||
|
|
function on_control_notify(screen, control, value)
|
|||
|
|
-- 按钮点击事件开锁,后期考虑采用一定的规律定制计算公式,如sendID = (screen * 12) + (control - 11)
|
|||
|
|
if screen == 0 and control == 11 and value == 1 then -- 画面0, 0x01地址
|
|||
|
|
sendID = 0
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 0 and control == 12 and value == 1 then
|
|||
|
|
sendID = 1
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 0 and control == 13 and value == 1 then
|
|||
|
|
sendID = 2
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 0 and control == 14 and value == 1 then
|
|||
|
|
sendID = 3
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 0 and control == 15 and value == 1 then
|
|||
|
|
sendID = 4
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 0 and control == 16 and value == 1 then
|
|||
|
|
sendID = 5
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 0 and control == 17 and value == 1 then
|
|||
|
|
sendID = 6
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 0 and control == 18 and value == 1 then
|
|||
|
|
sendID = 7
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 0 and control == 19 and value == 1 then
|
|||
|
|
sendID = 8
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 0 and control == 20 and value == 1 then
|
|||
|
|
sendID = 9
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 11 and value == 1 then -- 画面1,0x02地址
|
|||
|
|
sendID = 12
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 12 and value == 1 then
|
|||
|
|
sendID = 13
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 13 and value == 1 then
|
|||
|
|
sendID = 14
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 14 and value == 1 then
|
|||
|
|
sendID = 15
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 15 and value == 1 then
|
|||
|
|
sendID = 16
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 16 and value == 1 then
|
|||
|
|
sendID = 17
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 17 and value == 1 then
|
|||
|
|
sendID = 18
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 18 and value == 1 then
|
|||
|
|
sendID = 19
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 19 and value == 1 then
|
|||
|
|
sendID = 20
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 20 and value == 1 then
|
|||
|
|
sendID = 21
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 11 and value == 1 then -- 画面2,0x03地址
|
|||
|
|
sendID = 24
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 12 and value == 1 then
|
|||
|
|
sendID = 25
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 13 and value == 1 then
|
|||
|
|
sendID = 26
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 14 and value == 1 then
|
|||
|
|
sendID = 27
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 15 and value == 1 then
|
|||
|
|
sendID = 28
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 16 and value == 1 then
|
|||
|
|
sendID = 29
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 17 and value == 1 then
|
|||
|
|
sendID = 30
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 18 and value == 1 then
|
|||
|
|
sendID = 31
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 19 and value == 1 then
|
|||
|
|
sendID = 32
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 20 and value == 1 then
|
|||
|
|
sendID = 33
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 11 and value == 1 then -- 画面3,0x04地址
|
|||
|
|
sendID = 36
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 12 and value == 1 then
|
|||
|
|
sendID = 37
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 13 and value == 1 then
|
|||
|
|
sendID = 38
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 14 and value == 1 then
|
|||
|
|
sendID = 39
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 15 and value == 1 then
|
|||
|
|
sendID = 40
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 16 and value == 1 then
|
|||
|
|
sendID = 41
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 17 and value == 1 then
|
|||
|
|
sendID = 42
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 18 and value == 1 then
|
|||
|
|
sendID = 43
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 19 and value == 1 then
|
|||
|
|
sendID = 44
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 20 and value == 1 then
|
|||
|
|
sendID = 45
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 11 and value == 1 then -- 画面4,0x05地址
|
|||
|
|
sendID = 48
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 12 and value == 1 then
|
|||
|
|
sendID = 49
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 13 and value == 1 then
|
|||
|
|
sendID = 50
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 14 and value == 1 then
|
|||
|
|
sendID = 51
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 15 and value == 1 then
|
|||
|
|
sendID = 52
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 16 and value == 1 then
|
|||
|
|
sendID = 53
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 17 and value == 1 then
|
|||
|
|
sendID = 54
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 18 and value == 1 then
|
|||
|
|
sendID = 55
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 19 and value == 1 then
|
|||
|
|
sendID = 56
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 20 and value == 1 then
|
|||
|
|
sendID = 57
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 0 and control == 100 and value == 1 then -- 一键全开,控件ID统一为100
|
|||
|
|
sendID = 100
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 1 and control == 100 and value == 1 then
|
|||
|
|
sendID = 200
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 2 and control == 100 and value == 1 then
|
|||
|
|
sendID = 300
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 3 and control == 100 and value == 1 then
|
|||
|
|
sendID = 400
|
|||
|
|
sendFlag = 1
|
|||
|
|
elseif screen == 4 and control == 100 and value == 1 then
|
|||
|
|
sendID = 500
|
|||
|
|
sendFlag = 1
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 系统每隔1秒钟会自动调用此回调函数。
|
|||
|
|
function on_systick()
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 当画面切换时,执行此回调函数,screen为切换后的画面ID。
|
|||
|
|
function on_screen_change(screen)
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- LUA定时器中断函数,timer_id值范围为0-31。
|
|||
|
|
-- 单独使用该函数不生效,该函数触发回调需要配合 start_timer(timer_id, timeout, countdown, repeatNum) ,来开启定时器,定时器溢出超时了,才会触发on_timer(timer_id)。
|
|||
|
|
function on_timer(timer_id)
|
|||
|
|
|
|||
|
|
if sendFlag == 1 then
|
|||
|
|
sendFlag = 0 -- 发送开锁的优先级更高
|
|||
|
|
if sendID == 100 then
|
|||
|
|
uart_send_data(openAlllock[0]) -- 0x01地址全开
|
|||
|
|
elseif sendID == 200 then
|
|||
|
|
uart_send_data(openAlllock[1]) -- 0x02地址全开
|
|||
|
|
elseif sendID == 300 then
|
|||
|
|
uart_send_data(openAlllock[2]) -- 0x03地址全开
|
|||
|
|
elseif sendID == 400 then
|
|||
|
|
uart_send_data(openAlllock[3]) -- 0x04地址全开
|
|||
|
|
elseif sendID == 500 then
|
|||
|
|
uart_send_data(openAlllock[4]) -- 0x05地址全开
|
|||
|
|
else
|
|||
|
|
uart_send_data(openlock[sendID]) -- 根据sendId获取对应的openlock数组开锁指令发送
|
|||
|
|
end
|
|||
|
|
else -- 读取锁控板所有通道状态, 根据当前画面ID获取对应的查询所有锁状态的指令发送
|
|||
|
|
local currentScreenId = get_current_screen()
|
|||
|
|
if currentScreenId == 0 then
|
|||
|
|
uart_send_data(readLockState[0])
|
|||
|
|
elseif currentScreenId == 1 then
|
|||
|
|
uart_send_data(readLockState[1])
|
|||
|
|
elseif currentScreenId == 2 then
|
|||
|
|
uart_send_data(readLockState[2])
|
|||
|
|
elseif currentScreenId == 3 then
|
|||
|
|
uart_send_data(readLockState[3])
|
|||
|
|
else
|
|||
|
|
uart_send_data(readLockState[4])
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
end
|