使用此插件必须root
基于 F1ReKing/Android-SerialPort 开发的 uni-app 插件,Android平台上的usb串口通信插件,支持串口号、波特率、数据位、校验位、停止位、流控等参数设置,能够控制数据的收发。
将本地插件复制到你的项目中并配置好 mainfest.json,打包自定义基座即可体验
参考文档 HbuilderX中使用本地插件
设备必须root
const serialPort = uni.requireNativePlugin('Fvv-UniSerialPort')
//获取设备信息
getAllDeviceList(callback)
getAllDevicePath(callback)
//设置串口连接信息
setPath(path)
setBaudRate(baudRate)
setStopBits(stopBits)
setDataBits(dataBits)
setParity(parity)
setFlowCon(flowCon)
setFlags(flags)
//串口操作
open(callback)
close()
isOpen()
//接收消息,以下3个任选1个即可,多选无效
onMessage(callback,sendCallback)
onMessageHex(callback,sendCallback)
onMessageASCII(callback,sendCallback)
//发送消息
sendBytes(bytes)
sendHex(string)
sendASCII(string)
获取所有设备列表
getAllDeviceList(callback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | function | 否 | 回调函数 |
callback(arr)
参数 | 类型 | 说明 |
---|---|---|
arr | array | 设备列表 |
示例
serialPort.getAllDeviceList(res => {
console.log(res) //设备列表
})
获取所有设备路径
getAllDevicePath(callback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | function | 否 | 回调函数 |
callback(arr)
参数 | 类型 | 说明 |
---|---|---|
arr | array | 路径列表 |
示例
serialPort.getAllDevicePath(res => {
console.log(res) //路径列表
})
设置路径
setPath(path)
参数说明
参数 | 类型 | 说明 |
---|---|---|
path | string | 设置路径 |
示例
serialPort.setPath('/dev/ttyS1')
设置波特率
setBaudRate(baudRate)
参数说明
参数 | 类型 | 说明 |
---|---|---|
baudRate | int | 设置波特率,默认115200 |
示例
serialPort.setBaudRate(9600)
设置停止位
setStopBits(stopBits)
参数说明
参数 | 类型 | 说明 |
---|---|---|
stopBits | int | 设置停止位 默认值为2 |
示例
serialPort.setStopBits(2)
设置数据位
setDataBits(dataBits)
参数说明
参数 | 类型 | 说明 |
---|---|---|
dataBits | int | 设置数据位 默认值为8 |
示例
serialPort.setDataBits(8)
设置检验位
setParity(parity)
参数说明
参数 | 类型 | 说明 |
---|---|---|
parity | int | 设置检验位 默认值为0 |
示例
serialPort.setParity(0)
设置流控
setFlowCon(flowCon)
参数说明
参数 | 类型 | 说明 |
---|---|---|
flowCon | int | 设置流控 默认值为0 |
示例
serialPort.setFlowCon(0)
设置标志
setFlags(flags)
参数说明
参数 | 类型 | 说明 |
---|---|---|
flags | int | 设置标志 默认值为0,O_RDWR 读写方式打开 |
示例
serialPort.setFlags(0)
打开串口
open(callback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | function | 否 | 回调函数 |
callback(object)
参数 | 类型 | 说明 |
---|---|---|
object.status | bool | 打开串口结果 |
object.msg | string | 成功为空,失败为原因 |
示例
serialPort.open(res => {
console.log(res)
})
关闭当前串口
close()
参数说明
无
示例
serialPort.close()
获取打开状态
isOpen()
参数说明
无
返回值
参数 | 类型 | 说明 |
---|---|---|
isOpen | bool | 当前打开状态 |
示例
let isOpen = serialPort.isOpen()
监听消息 - 字节
onMessage(callback,sendCallback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | function | 是 | 回调函数 |
sendCallback | function | 否 | 回调函数 |
callback(byte)
参数 | 类型 | 说明 |
---|---|---|
byte | byte | 收到的字节消息 |
sendCallback(byte)
参数 | 类型 | 说明 |
---|---|---|
byte | byte | 发送的字节消息 |
示例
serialPort.onMessage(rec => {
console.log(rec)
},send => {
console.log(send)
})
监听消息 - 十六进制
onMessageHex(callback,sendCallback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | function | 是 | 回调函数 |
sendCallback | function | 否 | 回调函数 |
callback(byte)
参数 | 类型 | 说明 |
---|---|---|
hex | string | 收到的十六进制消息 |
sendCallback(byte)
参数 | 类型 | 说明 |
---|---|---|
hex | string | 发送的十六进制消息 |
示例
serialPort.onMessageHex(rec => {
console.log(rec)
},send => {
console.log(send)
})
监听消息 - ASCII
onMessageASCII(callback,sendCallback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | function | 是 | 回调函数 |
sendCallback | function | 否 | 回调函数 |
callback(byte)
参数 | 类型 | 说明 |
---|---|---|
ascii | string | 收到的ASCII消息 |
sendCallback(byte)
参数 | 类型 | 说明 |
---|---|---|
hex | string | 发送的ASCII消息 |
示例
serialPort.onMessageASCII(rec => {
console.log(rec)
},send => {
console.log(send)
})
发送字节消息
sendBytes(bytes)
参数说明
参数 | 类型 | 说明 |
---|---|---|
bytes | array | 发送的字节消息 |
示例
let bytes = []
bytes[0] = 1
bytes[1] = 2
serialPort.sendBytes(bytes)
发送十六进制消息
sendHex(string)
参数说明
参数 | 类型 | 说明 |
---|---|---|
string | string | 发送的十六进制消息 |
示例
serialPort.sendHex("1AA1")
发送ASCII消息
sendASCII(string)
参数说明
参数 | 类型 | 说明 |
---|---|---|
string | string | 发送的ASCII消息 |
示例
serialPort.sendASCII("hello Fvv")
已集成离线打包及插件开发环境,可以使用离线打包或生成自定义基座来调试插件和uni-app项目。
使用android studio导入此工程,run 'app' 即可体验!
参考文档 集成uni-app项目测试插件
参考文档 离线打包制作自定义基座