39 lines
1.3 KiB
Lua
39 lines
1.3 KiB
Lua
|
|
--- 模块功能:完善luat的c库接口
|
|||
|
|
-- @module clib
|
|||
|
|
-- @author openLuat
|
|||
|
|
-- @license MIT
|
|||
|
|
-- @copyright openLuat
|
|||
|
|
-- @release 2017.9.20
|
|||
|
|
local uartReceiveCallbacks = {}
|
|||
|
|
local uartSentCallbacks = {}
|
|||
|
|
|
|||
|
|
--- 注册串口事件的处理函数
|
|||
|
|
-- @number id 串口ID,1表示串口1,2表示串口2,uart.ATC表示虚拟AT口
|
|||
|
|
-- @string event 串口事件:
|
|||
|
|
-- "recieve"表示串口收到数据,注意:使用uart.setup配置串口时,第6个参数设置为nil或者0,收到数据时,才会产生"receive"事件
|
|||
|
|
-- "sent"表示串口数据发送完成,注意:使用uart.setup配置串口时,第7个参数设置为1,调用uart.write接口发送数据之后,才会产生"sent"事件
|
|||
|
|
-- @function[opt=nil] callback 串口事件的处理函数
|
|||
|
|
-- @return nil
|
|||
|
|
-- @usage
|
|||
|
|
-- uart.on(1,"receive",rcvFnc)
|
|||
|
|
-- uart.on(1,"sent",sentFnc)
|
|||
|
|
uart.on = function(id, event, callback)
|
|||
|
|
if event == "receive" then
|
|||
|
|
uartReceiveCallbacks[id] = callback
|
|||
|
|
elseif event == "sent" then
|
|||
|
|
uartSentCallbacks[id] = callback
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
rtos.on(rtos.MSG_UART_RXDATA, function(id, length)
|
|||
|
|
if uartReceiveCallbacks[id] then
|
|||
|
|
uartReceiveCallbacks[id](id, length)
|
|||
|
|
end
|
|||
|
|
end)
|
|||
|
|
|
|||
|
|
rtos.on(rtos.MSG_UART_TX_DONE, function(id)
|
|||
|
|
if uartSentCallbacks[id] then
|
|||
|
|
uartSentCallbacks[id](id)
|
|||
|
|
end
|
|||
|
|
end)
|