# SerialPortManager
Android串口通讯, 支持发送数据回调, 支持并发处理, 自定义协议, CRC校验, 自动粘包, 自动去除冗余的干扰数据
支持多线程并发的同时多种设备协议
## 引入
**Step 1.** Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
**Step 2.** Add the dependency
dependencies {
implementation 'com.github.547394:SerialPortManager:1.0.10'
}
## 使用
### 1. 监听串口数据
```java
SerialPortManager serialPortManager = new SerialPortManager();
// 粘包时间设置, 单位:毫秒,
serialPortManager.setReceivedTimeout(100);
serialPortManager.setOnDataListener(new OnDataListener() {
@Override
public void onDataReceived(byte[] bytes) {
// 自动粘包
}
@Override
public void onDataSend(byte[] bytes) {
}
});
serialPortManager.open("/dev/ttyS0", 115200);
```
### 2. 增加协议和CRC校验
```java
// 自定义回复协议内容, 必须满足以下条件 onDataReceived 才会有回复
SerialPortProtocol protocol = new SerialPortProtocol();
// 设置帧头
protocol.setFrameHeader((byte) 0x09C, (byte) 0xC9);
// 设置帧尾
protocol.setFrameEnd((byte) 0x0E, (byte) 0x0A);
// 设置CRC计算方式和范围, 结束范围可为负值, 解决内容长度可变问题
protocol.setCRC(SerialPortProtocol.CRC_MODEL.MODBUS_16, 2, -4);
```
### 3.发送一条需要回复的串口指令, 支持并发, 支持多设备协议
```java
// 设置数据超时时间, 超过此时间如果终端没有回复数据则调用 onFailure 方法
serialPortManager.setReceivedTimeout(300);
serialPortManager.sendHexString("6A A6 01 07 01 01 00 E4 48 0D 0A", protocol, new OnReportListener() {
@Override
public void onSuccess(byte[] bytes) {
Log.i("onSuccess", BytesUtil.toHexString(bytes));
}
@Override
public void onFailure(SerialPortError error) {
Log.i("onFailure", error.toString());
}
@Override
public void onComplete() {
super.onComplete();
}
});
没有合适的资源?快使用搜索试试~ 我知道了~
Android串口通讯, 支持发送数据回调, 支持并发处理, 自定义协议, CRC校验, 自动粘包, 自动去除冗余的干扰数据
共61个文件
xml:18个
java:14个
png:10个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 86 浏览量
2024-05-01
19:47:44
上传
评论
收藏 216KB ZIP 举报
温馨提示
Android串口通讯, 支持发送数据回调, 支持并发处理, 自定义协议, CRC校验, 自动粘包, 自动去除冗余的干扰数据 支持多线程并发的同时多种设备协议 使用 1. 监听串口数据 SerialPortManager serialPortManager = new SerialPortManager(); // 粘包时间设置, 单位:毫秒, serialPortManager.setReceivedTimeout(100); serialPortManager.setOnDataListener(new OnDataListener() { @Override public void onDataReceived(byte[] bytes) { // 自动粘包 } @Override public void onDataSend(byte[] bytes) { } }); serialPortManager.open("/dev/ttyS0", 115200);
资源推荐
资源详情
资源评论
收起资源包目录
SerialPortManager-code.zip (61个子文件)
SerialPortManager-code
gradle.properties 1KB
.DS_Store 6KB
gradle
wrapper
gradle-wrapper.jar 53KB
gradle-wrapper.properties 230B
serialPortLib
src
androidTest
java
com
tim
serialportlib
ExampleInstrumentedTest.java 762B
test
java
com
tim
serialportlib
ExampleUnitTest.java 383B
main
java
com
tim
serialportlib
OnReportListener.java 240B
SerialPortProtocol.java 4KB
SerialPortManager.java 14KB
OnOpenListener.java 384B
OnDataListener.java 176B
BytesUtil.java 3KB
SerialPortCommand.java 1KB
SerialPortError.java 127B
Crypto.java 1KB
AndroidManifest.xml 124B
proguard-rules.pro 750B
build.gradle 664B
consumer-rules.pro 0B
.gitignore 6B
app
src
androidTest
java
com
tim
serialport
ExampleInstrumentedTest.java 751B
test
java
com
tim
serialport
ExampleUnitTest.java 380B
main
java
com
tim
serialport
MainActivity.java 10KB
res
mipmap-xxhdpi
ic_launcher_round.png 12KB
ic_launcher.png 8KB
mipmap-hdpi
ic_launcher_round.png 5KB
ic_launcher.png 4KB
drawable-v24
ic_launcher_foreground.xml 2KB
mipmap-anydpi-v26
ic_launcher.xml 272B
ic_launcher_round.xml 272B
mipmap-mdpi
ic_launcher_round.png 3KB
ic_launcher.png 3KB
mipmap-xxxhdpi
ic_launcher_round.png 16KB
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher_round.png 7KB
ic_launcher.png 5KB
values
colors.xml 207B
strings.xml 72B
styles.xml 25B
layout
activity_main.xml 352B
drawable
ic_launcher_background.xml 5KB
AndroidManifest.xml 672B
proguard-rules.pro 750B
build.gradle 645B
.gitignore 6B
gradlew.bat 2KB
build.gradle 585B
.idea
.DS_Store 6KB
.name 10B
jarRepositories.xml 3KB
dictionaries
tyrant.xml 144B
codeStyles
Project.xml 3KB
vcs.xml 180B
misc.xml 530B
compiler.xml 170B
gradle.xml 805B
encodings.xml 159B
settings.gradle 71B
gradlew 5KB
.gitignore 208B
README.md 2KB
共 61 条
- 1
资源评论
MarcoPage
- 粉丝: 2969
- 资源: 3005
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功