# android-serialport ### uniappx/uniapp demo 亲测可用 ### 长期维护 有任何问题 可在群中联系 ### uniapp demo 在例子项目下的 zip 文件 #### 插件测试使用方法 1. 选择试用,绑定要试用的项目appid, 2. 选择后下载到对应的本地项目, 3. 按照文档 -》把插件引入项目(即 import {SerialPortHelper} from "@/uni_modules/android-serialport"; 需要先引入), 4. 发布-》云打包-》选择制作基座-》打包等基座制作完成 5. 运行 -》 运行到手机或模拟器-》运行到Androidapp基座-》选择使用自定义基座运行-》选择手机-》运行 ### uni-app x项目(uvue)中调用示例:(调试需要自定义基座) ``` import {SerialPortHelper} from "@/uni_modules/android-serialport"; var helper=new SerialPortHelper(); // var array=[] as string[]; // array=helper.getAllDevices() // 获取串口列表 helper.setPath("/dev/ttyS7"); helper.setBaudrate(9600); //一般默认 // helper.dataBits(8); // helper.parity(0); // helper.stopBits(1); // helper.flags(0) var state= helper.open(); if(state){ helper.startAutoReadData(function(res){ // console.log(res[0]) console.log(helper.byte2HexString(res)) }) // var b:ByteArray=new ByteArray(5); // b[0]=0x55; // b[1]=0x00; // b[2]=0x12; // b[3]=0x00; // b[4]=0x7B; // helper.sendData(b) helper.sendDataString("550120057B") //停止自动接收 // helper.stopReadPortData(); //关闭串口 // helper.close() } ``` ### uni-app 项目(vue nvue)中调用示例:(调试需要自定义基座) ``` import {SerialPortHelper} from "@/uni_modules/android-serialport"; var helper=new SerialPortHelper(); // console.log(helper.getAllDevices()) helper.setPath("/dev/ttyS7"); helper.setBaudrate(9600); var state= helper.open(); if(state){ helper.startAutoReadData(function(res){ console.log(helper.uint8ArrayToHexString(res)) }) var b=new Uint8Array(5); b[0]=0x55; b[1]=0x00; b[2]=0x12; b[3]=0x00; b[4]=0x7B; helper.sendDataUnit8Array(b) //helper.sendDataString("550120057B") } ``` ### 开发文档 ### 获取设备列表 #### getAllDevice() return 串口列表 ### 设置串口参数 setPath 设置路径 #### setBaudrate 设置波特率 #### dataBits 数据位 默认8,可选值为5~8 #### parity 校验位 parity 0:无校验位(默认);1:奇校验位 ### stopBits 停止位 stopBits 默认1;1:1位停止位;2:2位停止位 ### flags 标志 flags 默认0 ### 打开串口 #### open 需要调用才可打开 return 返回是否打开成功 #### isOpen return 返回是否打开成功 ### 关闭串口 close ### 开启自动读取串口数据,需要先打开串口 #### startAutoReadData 回调读取的数据function 数据类型为ByteArray ### 关闭自动读取串口数据 #### stopReadPortData ### 手动读取串口数据 手动读取之前需先打开串口 且不可和自动读串口数据同时调用 #### available() return 返回-1 表示无可读数据 其它为可读数据长度 #### readData 参数1 需要读取数据的长度 number 参数2 开始读取位置 number 参数3 读取数据结束位置 number 参数4 回调读取的数据function 数据类型为ByteArray ### 发送数据 #### sendData 参数1 需要发送的ByteArray #### sendDataString 参数1 string 类型的16进制的字符串 例如 "550120057B" ### 辅助转换方法 ### 将16进制字符串转换为ByteArray #### parseHexStr2Byte 参数1 为16进制字符串 ### ByteArray转换成16进制字符串 #### byte2HexString 参数1 ByteArray ### ByteArray 辅助操作方法 #### 将两个ByteArray进行合并 #### addBytes 参数1 合并ByetArray 1 参数2 合并ByetArray 2 return 合并后的ByetArray #### 将ByteArray进行剪切 #### subBytes 参数1 需要剪切的 ByetArray 参数2 开始位置 类型number 参数3 需要剪切的长度 number return 剪切后的ByetArray #### js Unit8Array 转为String #### uint8ArrayToHexString 参数1 Unit8Array return String