5 Star 43 Fork 28

MybeSix / Android-EasySerialPort

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Android-EasySerialPort

非常好用、非常稳定的Android串口封装 久经两年多项目考验,一直很稳定

使用说明

第一步,在gradle(Project)下添加

allprojects {
		repositories {
			...
			maven { url 'https://www.jitpack.io' }
		}
	}

第二步,导入依赖

dependencies {
	        implementation 'com.github.maybesix:Android-XHLibrary:v1.0.0'
	}

在需要实现Activity或者Service中这样写:

SerialPortHelper serialPort;
String port = "/dev/ttyHSL1";
int baudRate = 9600;
//串口程序初始化
serialPort = new SerialPortHelper(port, baudRate, this);
//打开串口
serialPort.open();

串口发送:

//发送十六进制
 serialPort.sendHex("A55A0010002096");
//发送文本
 serialPort.sendHex("hello world");

串口接收:实现SerialPortHelper.OnSerialPortReceivedListener接口

public class MainActivity extends AppCompatActivity implements SerialPortHelper.OnSerialPortReceivedListener {
...
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
...
    }
...
@Override
    public void onSerialPortDataReceived(ComPortData comPortData) {
        //处理接收的串口消息
        String s = HexStringUtils.byteArray2HexString(comPortData.getRecData());
        Log.i(TAG, "onReceived: " + s);
    }
}

或者可以使用构造者链式调用(kotlin写法)

 serialPort = EasySerialPort.Builder()
            .setBaudRate(9600)
            .setPort("")
            .setSatesListener(object : EasySerialPort.OnStatesChangeListener {
                /**
                 * 打开的状态回调
                 *
                 * @param isSuccess 是否成功
                 * @param reason    原因
                 */
                override fun onOpen(isSuccess: Boolean, reason: String) {
                    Log.i("EasySerialPort", "是否开启成功:$isSuccess,原因:$reason")
                    Toast.makeText(
                        applicationContext,
                        "是否开启成功:$isSuccess,原因:$reason",
                        Toast.LENGTH_SHORT
                    ).show()

                }

                /**
                 * 关闭的状态回调
                 */
                override fun onClose() {
                    Log.i("EasySerialPort", "已关闭")
                    Toast.makeText(applicationContext, "已关闭", Toast.LENGTH_SHORT).show()
                }
            })
            .setListener {
                //处理接收的串口消息
                val s: String = HexStringUtils.byteArray2HexString(it.recData)
                Log.i("EasySerialPort", "onReceived: $s,time:${it.recTime}")
                textView.text = s
            }
            .build()

至此,串口的打开、发送、接收就全部完成了。

串口相关

串口操作类 → SerialPortHelper

isOpen                        : 是否开启串口
getBaudRate                   : 获取波特率
setBaudRate                   : 设置波特率
getPort                       :  获取串口名称
setPort                       :  设置串口名称
open                          :  打开串口
close                         :  关闭串口
sendHex                       :  以16进制发送
sendTxtString                 :  以文本发送
getLoopData                   :  获取循环发送的数据
setLoopData                   :  设置循环发送的数据
getDelay                      :  获取延迟
setDelay                      :  设置延时(毫秒)
startSend                     :  开启循环发送
stopSend                      :  停止循环发送
OnSerialPortReceivedListener  :  串口数据接收回调

串口数据基类 → ComPortData

getRecData   :  获取串口数据
setRecData   :  设置串口数据
getRecTime   :  获取接收时间
setRecTime   :  设置接受时间
getComPort   :  获取串口名称
setComPort   :  设置串口名称

串口数据处理相关

十六进制转换 → HexStringUtils

isOdd                  : 判断是否为奇数
hexString2Int          : 16进制字符串转int
hexString2Byte         : 16进制字符串转byte
byte2HexString         : byte转16进制字符串
byteArray2HexString    : byte数组转16进制字符串
hexString2ByteArray    : 16进制字符串转byte数组

CRC校验 → CrcUtils

isPassCRC     : 返回是否通过验证
getCrcString  : 获取16进制的crc字符串
toHexString   : int转16进制字符串
getCrc        : 传入bytes,计算得到CRC验证码
hexToByte     : 16进制字符串转byte数组

项目更新内容:

v1.1:

  1. 升级至androidx
  2. 去除不必要的依赖
  3. 支持链式调用配置监听事件、设置端口号、设置波特率
  4. 修改串口接收数据时格式化时间,现在改为时间戳

如果这个项目对你有帮助,请点个star!

空文件

简介

非常好用、非常稳定的Android串口封装 久经两年多项目考验,一直很稳定 展开 收起
Android
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Android
1
https://gitee.com/maybesix/Android-XHLibrary.git
git@gitee.com:maybesix/Android-XHLibrary.git
maybesix
Android-XHLibrary
Android-EasySerialPort
master

搜索帮助