# EZ-SerialPort
EZ-SerialPort是基于Google [android-serialport-api](https://github.com/cepr/android-serialport-api) 修改与扩展的Android串口操作库。
EZ-SerialPort简化了串口的配置与读写操作,支持了多串口通道的操作,支持了多页面串口数据的同时读取功能。
Demo效果如下:
<img src="/screenshot/demo.png" width=60% height=60% alt="screenshot">
## Gradle 依赖
在app的`build.gradle` 下添加:
### 添加依赖如下:
```groovy
dependencies {
compile 'cn.shorr:ez-serialport:0.0.2'
}
```
### 添加适合的CPU平台ABI,如:
```groovy
defaultConfig {
...
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
}
```
不配置将默认为所有平台的ABI。
## 使用
```java
//1.开始串口连接
private void startSerialPortConnect() {
//配置串口参数
serialPortUtil = new SerialPortUtil(this,
new SerialPortConfig("/dev/ttyMT1", 115200), //串口0
new SerialPortConfig("/dev/ttyMT2", 38400) //串口1
);
//设置为调试模式,打印收发数据
serialPortUtil.setDebug(true);
//绑定串口服务
serialPortUtil.bindService();
//串口0数据读取监听(可在不同Activity中同时设置监听)
serial0Read = new SerialRead(this);
serial0Read.registerListener(0/*默认为0,此参数可省略*/, new Serial0ReadListener());
//串口1数据读取监听(可在不同Activity中同时设置监听)
serial1Read = new SerialRead(this);
serial1Read.registerListener(1, new Serial1ReadListener());
}
//2.设置串口读取监听
private class Serial0ReadListener implements SerialRead.ReadDataListener {
@Override
public void onReadData(byte[] data) {
}
}
//3.串口发送数据
SerialWrite.sendData(Context context, int port, byte[] data);
//如:串口0发送数据
SerialWrite.sendData(this, 0/*默认为0,此参数可省略*/, content.getBytes("GBK"));
//如:串口1发送数据
SerialWrite.sendData(this, 1, content.getBytes("GBK"));
//4.停止串口连接
private void stopSerialPortConnect() {
serial0Read.unRegisterListener();
serial1Read.unRegisterListener();
serialPortUtil.unBindService();
}
//5.获取设备所有的串口信息
SerialPortFinder serialPortFinder = new SerialPortFinder();
String[] devices = serialPortFinder.getAllDevicesPath();
```
## 开发建议
由于Android各硬件平台与驱动的差异性,在接收串口数据,即在通过监听获取byte[]字节数组时,一条完整的指令数据有可能被无规律分隔为多条byte[]字节数组。所以此时,需要将多条byte[]字节数组拼接为一条完整的指令,以便于指令的解析工作。
所以,在串口数据格式制定的初期一定要做好相关工作。比如,可以在数据格式中指定`开始标记`、`数据长度`、`结束标记`等,这样可以方便数据的拼接以及校验等工作。
没有合适的资源?快使用搜索试试~ 我知道了~
Android 串口编程demo,编译好了所有的so包,可以自定义对应的so包
共46个文件
xml:13个
java:9个
so:7个
5星 · 超过95%的资源 需积分: 13 26 下载量 14 浏览量
2018-01-26
11:52:06
上传
评论 3
收藏 197KB RAR 举报
温馨提示
Android 串口编程demo,编译好了所有的so包,可以自定义对应的so包,端口号波特率根据自己的设备去修改
资源推荐
资源详情
资源评论
收起资源包目录
EZ-SerialPort-master.rar (46个子文件)
EZ-SerialPort-master
screenshot
demo.png 21KB
gradlew.bat 2KB
gradlew 5KB
gradle.properties 725B
serial_port
proguard-rules.pro 751B
src
main
res
values
strings.xml 73B
java
cn
shorr
serialport
SerialPortService.java 7KB
SerialRead.java 2KB
SerialPortFinder.java 3KB
SerialPort.java 3KB
SerialPortUtil.java 2KB
SerialWrite.java 2KB
SerialPortConfig.java 658B
AndroidManifest.xml 229B
.gitignore 7B
build.gradle 871B
libs
armeabi-v7a
libserial_port.so 62KB
x86_64
libserial_port.so 32KB
armeabi
libserial_port.so 63KB
arm64-v8a
libserial_port.so 32KB
x86
libserial_port.so 36KB
mips64
libserial_port.so 57KB
mips
libserial_port.so 97KB
app
proguard-rules.pro 966B
src
main
res
drawable
bg_input_et.xml 234B
values
colors.xml 208B
strings.xml 197B
styles.xml 383B
mipmap-xhdpi
ic_launcher.png 6KB
layout
activity_main.xml 6KB
java
cn
shorr
serialdemo
FormatUtil.java 2KB
MainActivity.java 5KB
AndroidManifest.xml 786B
.gitignore 7B
build.gradle 749B
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 230B
.idea
gradle.xml 683B
runConfigurations.xml 564B
misc.xml 2KB
vcs.xml 180B
modules.xml 492B
.gitignore 118B
README.md 3KB
settings.gradle 31B
build.gradle 636B
共 46 条
- 1
资源评论
- 洁洁的最爱2019-09-14学习中 不错 谢谢分享
ye_gudu
- 粉丝: 3
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功