• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Android-EasySerialPort: 非常好用、非常稳定的Android串口封装 久经两年多项目考验, ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

Android-EasySerialPort

开源软件地址:

https://gitee.com/maybesix/Android-XHLibrary

开源软件介绍:

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进制字符串转inthexString2Byte         : 16进制字符串转bytebyte2HexString         : 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!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
aui: 移动端UI快速布局解决方案(APICloud UI框架)发布时间:2022-03-24
下一篇:
zhihuReport: 知乎日报的Ionic 2 实现发布时间:2022-03-24
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap