Android-Serialport:强大的Android串口通信库
项目介绍
Android-Serialport
是一个基于谷歌官方串口库 android-serialport-api 的增强版本。该项目不仅支持串口名称和波特率,还扩展了对校验位、数据位、停止位和流控配置项的支持。通过 Android-Serialport
,开发者可以更灵活地配置串口参数,实现更复杂的串口通信需求。
项目技术分析
Android-Serialport
主要使用 Java 语言开发,支持 Android 平台。它通过封装底层串口通信接口,提供了一套简洁易用的 API,使得开发者可以轻松地在 Android 设备上进行串口通信。项目还支持多种粘包处理策略,有效解决了串口通信中常见的数据粘包问题。
项目及技术应用场景
Android-Serialport
适用于需要通过串口与外部设备进行通信的 Android 应用场景。例如:
- 工业自动化控制系统
- 智能家居设备控制
- 车载设备通信
- 科研实验设备数据采集
在这些场景中,Android-Serialport
可以帮助开发者快速实现稳定可靠的串口通信功能。
项目特点
- 扩展性强:除了基本的串口名称和波特率设置,还支持校验位、数据位、停止位和流控配置项,满足更多定制化需求。
- 粘包处理:内置多种粘包处理策略,支持自定义粘包处理,有效解决数据粘包问题。
- 易用性高:提供简洁的 API 接口,方便开发者快速集成和使用。
- 社区活跃:项目在 GitHub 上拥有较高的关注度,社区活跃,便于获取支持和解决问题。
使用依赖
- 在项目根目录的
build.gradle
文件中添加:allprojects { repositories { ... mavenCentral() } }
- 在项目 Module 下的
build.gradle
文件中添加:dependencies { implementation 'io.github.xmaihh:serialport:2.1.1' }
属性支持
| 属性 | 参数 | |------|-----------------------------------------------------------------------------------------| | 波特率 | BAUDRATE | | 数据位 | 5,6,7,8 ;默认值8 | | 校验位 | 无奇偶校验(NONE), 奇校验(ODD), 偶校验(EVEN), 0校验(SPACE), 1校验(MARK); 默认无奇偶校验 | | 停止位 | 1,2 ;默认值1 | | 流控 | 不使用流控(NONE), 硬件流控(RTS/CTS), 软件流控(XON/XOFF); 默认不使用流控 |
代码功能
1. 列出串口列表
serialPortFinder.getAllDevicesPath();
2. 串口属性设置
serialHelper.setPort(String sPort); // 设置串口
serialHelper.setBaudRate(int iBaud); // 设置波特率
serialHelper.setStopBits(int stopBits); // 设置停止位
serialHelper.setDataBits(int dataBits); // 设置数据位
serialHelper.setParity(int parity); // 设置校验位
serialHelper.setFlowCon(int flowcon); // 设置流控
3. 打开串口
serialHelper.open();
4. 关闭串口
serialHelper.close();
5. 发送数据
serialHelper.send(byte[] bOutArray); // 发送byte[]
serialHelper.sendHex(String sHex); // 发送Hex
serialHelper.sendTxt(String sTxt); // 发送ASCII
6. 接收数据
@