/UniSerialPort

uni-app的Android平台串口通信插件,支持串口号、波特率、数据位、校验位、停止位、流控等参数设置,能够控制数据的收发

Primary LanguageJava

Uni-Plugin-SerialPort

使用此插件必须root

基于 F1ReKing/Android-SerialPort 开发的 uni-app 插件,Android平台上的usb串口通信插件,支持串口号、波特率、数据位、校验位、停止位、流控等参数设置,能够控制数据的收发。

uni-app

将本地插件复制到你的项目中并配置好 mainfest.json,打包自定义基座即可体验

参考文档 HbuilderX中使用本地插件

使用方法

设备必须root

引用方式

const serialPort = uni.requireNativePlugin('Fvv-UniSerialPort')

API

//获取设备信息
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")

android

已集成离线打包及插件开发环境,可以使用离线打包或生成自定义基座来调试插件和uni-app项目。

使用android studio导入此工程,run 'app' 即可体验!

参考文档 集成uni-app项目测试插件

参考文档 离线打包制作自定义基座

学习uni-app原生插件开发

Android uni-app原生插件开发教程