软件开发 | Uniapp开发-1
使用uniapp连接串口
uni-app的Android平台串口通信插件

在uniapp中像这样引入插件并进行一次自定义打包基座就能通过 uni.requireNativePlugin('Fvv-UniSerialPort') 的方式引入
调用多个串口
uniapp-H5+-调用原生android串口操作_RZL_01的技术博客_51CTO博客
通过这篇文章得知如果想使用多个串口进行连接,可以直接调该插件包装的 me.f1reking.serialportlib.SerialPortHelper 类,可以在原项目的 SerialPortHelper.java 下看到有哪些方法 Android-SerialPort ,如果只需要一个可以直接调 export const serialPort = uni.requireNativePlugin('Fvv-UniSerialPort') ,在使用多个串口时可以使用 serialPort 作为是否有串口的,是否能使用的依据,可以用它来直接获取所有串口列表,但是在打开该串口时通过回调获取该串口的 helper ,下面低 13 行提到的,这只是我的方法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
export const serialPort = uni.requireNativePlugin('Fvv-UniSerialPort')
var SerialPortHelper = plus.android.importClass(
'me.f1reking.serialportlib.SerialPortHelper'
)
// 打开串口
export function openSerialPort(port, baudRate, opt) {
// 使用传入的serialHelper或默认的serialPortHelper
const helper = new SerialPortHelper()
//设置串口
helper.setPort(port)
//设置波特率这里传的是要数值
helper.setBaudRate(baudRate)
// 通过回调获取该串口的helper,未来通过发数据,监听,都可以操作该helper来实现
opt && opt.onHelperReceived && opt.onHelperReceived(helper)
//实现原生java打开串口相关的事件
var iop = plus.android.implements(
'me.f1reking.serialportlib.listener.IOpenSerialPortListener',
{
onSuccess: function (res) {
opt && opt.onSuccess && opt.onSuccess(res)
},
onFail: function (res) {
opt && opt.onFail && opt.onFail(res)
},
}
)
//实现原生java打开串口后数据接收/发送相关的事件
var isd = plus.android.implements(
'me.f1reking.serialportlib.listener.ISerialPortDataListener',
{
onDataReceived: function (res) {
console.warn('===================原生接收到数据:===============', res)
opt && opt.onDataReceived && opt.onDataReceived(res)
},
onDataSend: function (str) {
console.log(str)
},
}
)
//配置相关内容
helper.setIOpenSerialPortListener(iop)
helper.setISerialPortDataListener(isd)
//打开串口
helper.open()
}
// 关闭串口
export function closeSerialPort(serialHelper) {
const helper = serialHelper
try {
helper.close()
return true
} catch (error) {
console.error('关闭串口失败:', error)
return false
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
const lockSerialHelper = ref(null)
function connectSerial() {
openSerialPort(selectedPort, selectedBaudrate, {
// 传入串口助手实例
onHelperReceived: (helper) => {
lockSerialHelper.value = helper
console.log('串口助手实例:', helper)
},
// 监听数据接收
onDataReceived: (directData) => {
// ...
},
onSuccess: (str) => {
// ...
},
onFail: (error) => {
// ...
},
})
}
|