556 字
3 分钟
开发 | Uniapp开发-1
本文最后更新于 305 天前,内容可能已不准确,请注意甄别。
开发 | Uniapp开发-1
使用uniapp连接串口

在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 行提到的,这只是我的方法。
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 }}const lockSerialHelper = ref(null)function connectSerial() { openSerialPort(selectedPort, selectedBaudrate, { // 传入串口助手实例 onHelperReceived: (helper) => { lockSerialHelper.value = helper console.log('串口助手实例:', helper) }, // 监听数据接收 onDataReceived: (directData) => { // ... }, onSuccess: (str) => { // ... }, onFail: (error) => { // ... },})} 开发 | Uniapp开发-1
https://fuwari.wisansiiz.top/posts/软件开发-uniapp开发-1/indexzh-cn/