赞
踩
目前项目使用的是 github 上的这个库进行数据的读写,https://github.com/mik3y/usb-serial-for-android
这个库提供了两种方法读数据,一为同步的方式,主动读:
len = port.read(response, READ_WAIT_MILLIS);
另一个种为异步的,等待回调传入数据:
- @Override
- public void onNewData(byte[] data) {
- runOnUiThread(() -> { textView.append(new String(data)); });
- }
但是这个两个API没有提供读指定字节数量的方式,将字节流转为消息帧不是很方便。于是想到了使用一个队列做为字节流的缓存,有一个线程只负责读数据然后放入这个队列中。另外在新起一个线程从这个队列中轮询消息,读到消息同步帧,则开始按消息的格式开始读取并组装消息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。