Class xwds.uart
XWLUA模块:UART
CAPI
MetaMethods
xwds.uart:metatable.__tostring (uart) | 元方法:__tostring |
Methods
xwds.uart:rx (uart, size, time) | 从接收队列中获取数据 |
xwds.uart:try_rx (uart, size) | 尝试从接收队列中获取数据 |
xwds.uart:tx (uart, data, time) | 发送数据 |
MetaMethods
- xwds.uart:metatable.__tostring (uart)
-
元方法:__tostring
将UART对象格式化成字符串,可用于终端打印调试。
Parameters:
- uart userdata (in) C代码中注册的UART控制器
Methods
- xwds.uart:rx (uart, size, time)
-
从接收队列中获取数据
Parameters:
- uart userdata (in) C代码中注册的UART控制器
- size number (in) 申请的缓冲区大小
- time number (in) 期望的阻塞等待时间
Returns:
-
number
错误码
● 0 没有错误
● -EINTR 等待被中断
● -ENOTTHDCTX 不在线程上下文中
● -ETIMEDOUT 超时 - number 实际接受的大小
- string 接收的数据
Usage:
-- 从uart3接收数据,接收10个字节,最多等待时间2s rc, rxsize, rxd = uart3:rx(10, xwtm.ft(xwtm.s(2)))
- xwds.uart:try_rx (uart, size)
-
尝试从接收队列中获取数据
Parameters:
- uart userdata (in) C代码中注册的UART控制器
- size number (in) 申请的缓冲区大小
Returns:
-
number
错误码
● 0 没有错误
● -EINTR 等待被中断
● -ENOTTHDCTX 不在线程上下文中
● -ENODATA 尝试失败 - number 实际接受的大小
- string 接收的数据
Usage:
-- 尝试从uart3接收数据,接收10个字节 rc, rxsize, rxd = uart3:try_rx(10)
- xwds.uart:tx (uart, data, time)
-
发送数据
Parameters:
- uart userdata (in) C代码中注册的UART控制器
- data string (in) 待发送的数据
- time number (in , optional) 期望的阻塞等待时间
Returns:
-
number
错误码
● 0 没有错误
● -EINTR 等待被中断
● -ENOTTHDCTX 不在线程上下文中
● -ETIMEDOUT 超时 - number 实际发送的大小
Usage:
-- 打包{88, 87, 79, 83} txd = string.pack("BBBB", 88, 87, 79, 83) -- 发送打包数据,期望等待时间2s rc, txsize = uart3:tx(txd, xwtm.ft(xwtm.s(2)))