在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称: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() 至此,串口的打开、发送、接收就全部完成了。 串口相关
isOpen : 是否开启串口getBaudRate : 获取波特率setBaudRate : 设置波特率getPort : 获取串口名称setPort : 设置串口名称open : 打开串口close : 关闭串口sendHex : 以16进制发送sendTxtString : 以文本发送getLoopData : 获取循环发送的数据setLoopData : 设置循环发送的数据getDelay : 获取延迟setDelay : 设置延时(毫秒)startSend : 开启循环发送stopSend : 停止循环发送OnSerialPortReceivedListener : 串口数据接收回调
getRecData : 获取串口数据setRecData : 设置串口数据getRecTime : 获取接收时间setRecTime : 设置接受时间getComPort : 获取串口名称setComPort : 设置串口名称 串口数据处理相关
isOdd : 判断是否为奇数hexString2Int : 16进制字符串转inthexString2Byte : 16进制字符串转bytebyte2HexString : byte转16进制字符串byteArray2HexString : byte数组转16进制字符串hexString2ByteArray : 16进制字符串转byte数组
isPassCRC : 返回是否通过验证getCrcString : 获取16进制的crc字符串toHexString : int转16进制字符串getCrc : 传入bytes,计算得到CRC验证码hexToByte : 16进制字符串转byte数组 项目更新内容:v1.1:
如果这个项目对你有帮助,请点个star! |
请发表评论