更新串口插件

This commit is contained in:
2026-06-03 15:49:48 +08:00
parent 923b4a3292
commit f5e47f37b3
16 changed files with 1106 additions and 1871 deletions
@@ -1,3 +1,15 @@
## 1.0.162026-02-06
改16k
## 1.0.152025-12-15
优化
## 1.0.132025-12-03
优化
## 1.0.122025-12-02
优化
## 1.0.112025-11-20
优化
## 1.0.102025-10-21
优化
## 1.0.92025-04-19
优化
Binary file not shown.
+69 -50
View File
@@ -1,16 +1,18 @@
{
"id": "android-serialport",
"displayName": "Android平台串口通信 serialport(长期维护)",
"version": "1.0.9",
"displayName": "Android串口通信 串口开发 serialport 多串口(长期维护)",
"version": "1.0.16",
"description": "android/安卓平台串口通信uts,支持串口号、波特率、数据位、校验位、停止位、流控等参数设置(长期维护)",
"keywords": [
"SerialPort串口",
"UTS",
"安卓串口,233,485"
"串口",
"SerialPort",
"串口通信,233,485"
],
"repository": "",
"engines": {
"HBuilderX": "^3.91"
"HBuilderX": "^3.91",
"uni-app": "^4.31",
"uni-app-x": "^3.8.11"
},
"dcloudext": {
"type": "uts",
@@ -19,7 +21,7 @@
"price": "19.99"
},
"sourcecode": {
"price": "101.00"
"price": "199.00"
}
},
"contact": {
@@ -28,59 +30,76 @@
"declaration": {
"ads": "无",
"data": "插件不采集任何数据\n使用过程中有任何问题可以加qq 1530948626 联系,随时修复",
"permissions": "必须ROOT"
"permissions": "需要系统授权串口权限"
},
"npmurl": ""
"npmurl": "",
"darkmode": "√",
"i18n": "√",
"widescreen": "√"
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y",
"alipay": "y"
},
"client": {
"Vue": {
"vue2": "u",
"vue3": "y"
},
"App": {
"app-android": {
"minVersion": "21"
"uni-app": {
"vue": {
"vue2": "",
"vue3": "√"
},
"web": {
"safari": "-",
"chrome": "-"
},
"app": {
"vue": "√",
"nvue": "√",
"android": {
"extVersion": "",
"minVersion": "21"
},
"app-ios": "n",
"app-harmony": "u"
"ios": "-",
"harmony": "-"
},
"mp": {
"weixin": "-",
"alipay": "-",
"toutiao": "-",
"baidu": "-",
"kuaishou": "-",
"jd": "-",
"harmony": "-",
"qq": "-",
"lark": "-",
"xhs": "-"
},
"quickapp": {
"huawei": "-",
"union": "-"
}
},
"H5-mobile": {
"Safari": "n",
"Android Browser": "n",
"微信浏览器(Android)": "n",
"QQ浏览器(Android)": "n"
},
"H5-pc": {
"Chrome": "n",
"IE": "n",
"Edge": "n",
"Firefox": "n",
"Safari": "n"
},
"小程序": {
"微信": "n",
"阿里": "n",
"百度": "n",
"字节跳动": "n",
"QQ": "n",
"钉钉": "n",
"快手": "n",
"飞书": "n",
"京东": "n"
},
"快应用": {
"华为": "n",
"联盟": "n"
"uni-app-x": {
"web": {
"safari": "-",
"chrome": "-"
},
"app": {
"android": {
"extVersion": "",
"minVersion": "21"
},
"ios": "-",
"harmony": "-"
},
"mp": {
"weixin": "-"
}
}
},
"cloud": {
"tcb": "x",
"aliyun": "x",
"alipay": "x"
}
}
}
+148 -11
View File
@@ -13,6 +13,7 @@
5. 运行 -》 运行到手机或模拟器-》运行到Androidapp基座-》选择使用自定义基座运行-》选择手机-》运行
### uni-app x项目(uvue)中调用示例:(调试需要自定义基座)
```
import {SerialPortHelper} from "@/uni_modules/android-serialport";
@@ -29,7 +30,7 @@ helper.setBaudrate(9600);
// helper.flags(0)
var state= helper.open();
if(state){
helper.startAutoReadData(function(res){
helper.onStartAutoReadData(function(res:number[]){
// console.log(res[0])
console.log(helper.byte2HexString(res))
})
@@ -51,7 +52,10 @@ if(state){
}
```
### uni-app 项目(vue nvue)中调用示例:(调试需要自定义基座)
```
import {SerialPortHelper} from "@/uni_modules/android-serialport";
@@ -62,7 +66,7 @@ import {SerialPortHelper} from "@/uni_modules/android-serialport";
helper.setBaudrate(9600);
var state= helper.open();
if(state){
helper.startAutoReadData(function(res){
helper.onStartAutoReadData(function(res){
console.log(helper.uint8ArrayToHexString(res))
})
var b=new Uint8Array(5);
@@ -78,22 +82,56 @@ import {SerialPortHelper} from "@/uni_modules/android-serialport";
```
### 开发文档
### 获取设备列表
#### getAllDevice()
return 串口列表
uniappx
~~~
var portList:string[]=helper.getAllDevice()
~~~
uniapp
~~~
var portList=helper.getAllDevice()
~~~
### 设置串口参数
setPath 设置路径
~~~
helper.setPath("/dev/ttyS7");
~~~
####
setBaudrate 设置波特率
~~~
helper.setBaudrate(9600);
~~~
####
dataBits 数据位 默认8,可选值为5~8
~~~
helper.dataBits(8);
~~~
####
parity 校验位 parity 0:无校验位(默认);1:奇校验位
~~~
helper.parity(0);
~~~
###
stopBits 停止位 stopBits 默认11:1位停止位;2:2位停止位
~~~
helper.stopBits(1);
~~~
###
flags 标志 flags 默认0
~~~
helper.flags(0)
~~~
### 打开串口
@@ -101,50 +139,149 @@ flags 标志 flags 默认0
#### open 需要调用才可打开
return 返回是否打开成功
~~~
var open= helper.open()
~~~
#### isOpen
return 返回是否打开成功
~~~
var open= helper.isOpen()
~~~
### 关闭串口
close
~~~
var open= helper.close()
~~~
### 开启自动读取串口数据,需要先打开串口
#### startAutoReadData
回调读取的数据function 数据类型为ByteArray
#### onStartAutoReadData
回调读取的数据
uniappx
~~~
helper.onStartAutoReadData(function(res:number[]){
console.log(helper.byte2HexString(res))
})
~~~
uniapp
~~~
helper.onStartAutoReadData(function(res){
console.log(helper.byte2HexString(res))
})
~~~
### 关闭自动读取串口数据
#### stopReadPortData
~~~
helper.stopReadPortData()
~~~
### 手动读取串口数据 手动读取之前需先打开串口 且不可和自动读串口数据同时调用
#### available()
return 返回-1 表示无可读数据 其它为可读数据长度
~~~
var len= helper.available()
~~~
#### readData
#### onReadData
参数1 需要读取数据的长度 number
参数2 开始读取位置 number
参数3 读取数据结束位置 number
参数4 回调读取的数据function 数据类型为ByteArray
参数4 回调读取的数据function 数据类型为number[]
uniappx
~~~
helper.onReadData(10,0,10,function(b:number[]){
})
~~~
uniapp
~~~
helper.onReadData(10,0,10,function(b){
})
~~~
### 发送数据
#### sendData
#### sendData (uniappx)
参数1 需要发送的ByteArray
~~~
var b:ByteArray=new ByteArray(5);
b[0]=0x55;
b[1]=0x00;
b[2]=0x12;
b[3]=0x00;
b[4]=0x7B;
helper.sendData(b)
~~~
#### sendDataString
#### sendDataString()
参数1 string 类型的16进制的字符串 例如 "550120057B"
~~~
helper.sendDataString("550120057B")
~~~
#### sendDataUnit8Array (uniapp)
~~~
var b=new Uint8Array(5);
b[0]=0x55;
b[1]=0x00;
b[2]=0x12;
b[3]=0x00;
b[4]=0x7B;
helper.sendDataUnit8Array(b)
~~~
### 辅助转换方法
### 将16进制字符串转换为ByteArray
### 将16进制字符串转换为ByteArray (uniappx)
#### parseHexStr2Byte
参数1 为16进制字符串
~~~
var by = helper.parseHexStr2Byte("55 66 a1")
~~~
### ByteArray转换成16进制字符串
#### byte2HexString
参数1 ByteArray
~~~
var b:ByteArray=new ByteArray(5);
b[0]=0x55;
b[1]=0x00;
b[2]=0x12;
b[3]=0x00;
b[4]=0x7B;
var by = helper.byte2HexString(b)
~~~
### 字符转16进制拼接字符
### string2ByteStrWithCharset
参数1 普通文本
参数2 传utf-8 gbk
~~~
var hex=helper.string2ByteStrWithCharset("测试","utf-8")
~~~
### 进制拼接字符转文本
### byte2StringWithCharset
参数1 16进制拼接字符
参数2 传utf-8 gbk
~~~
var text=helper.string2ByteStrWithCharset("E6B58BE8AF95","utf-8")
~~~
### ByteArray 辅助操作方法
#### 将两个ByteArray进行合并