• Android终端硬件通讯总结(串口通讯、Usb Com、Usb、蓝牙、Wifi)


    前言

    如果你开发的App需要与硬件做通讯,获取相应数据进行业务处理,这个库肯定对你有帮助。常见的硬件通讯连接方式有:串口通讯、Usb Com、Usb、蓝牙、Wifi等,实际硬件支持哪种连接方式,要看硬件支持哪种方式。应用层硬件通讯方案有两种:

    1. 硬件供应商有提供SDK,不需要关注连接通讯实现,直接集成到App中使用即可
    2. 硬件供应商没有提供SDK,单提供有通讯协议,这时候自己需要分析协议流程和写通讯代码

    本文针对第二点,封装了一个基础的、轻量级的通讯库,支持多种连接方式串口通讯、Usb Com、Usb、蓝牙、Wifi,通讯流程为:

    1. 初始化连接实例
    2. 打开连接
    3. 读写数据
    4. 关闭连接

    通讯库特点:上层调用一致,底层不同实现,方便使用者切换连接方式。为简化上层调用和方便数据处理,全部连接采用同步操作,即一发一收(一问一答)的方式通讯

    调用

    1.初始化实例

    //串口
    BaseConnectProvider baseConnectProvider = new SerialPortConnectProvider(SerialPortConfig serialPortConfig);
    
    //Usb Com
    BaseConnectProvider baseConnectProvider = new UsbComConnectProvider(int vendorId, int productId, SerialPortConfig serialPortConfig);
    //or
    BaseConnectProvider baseConnectProvider = new UsbComConnectProvider(UsbDevice usbDevice, SerialPortConfig serialPortConfig);
    
    //Usb
    BaseConnectProvider baseConnectProvider = new UsbConnectProvider(int vendorId, int productId);
    //or
    BaseConnectProvider baseConnectProvider = new UsbConnectProvider(UsbDevice usbDevice);
    //蓝牙
    BaseConnectProvider baseConnectProvider = new BluetoothConnectProvider(BluetoothDevice bluetoothDevice);
    BaseConnectProvider baseConnectProvider = new BluetoothConnectProvider(String address);
    
    //Wifi
    BaseConnectProvider baseConnectProvider = new WifiConnectProvider(String host, int port, int connectTimeout, int readTimeout);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    2.打开连接

    baseConnectProvider.open();
    
    • 1

    3.写和读数据

    baseConnectProvider.read(byte[] sendParams, byte[] buffer, int timeout);
    
    • 1

    4.关闭连接

    baseConnectProvider.close();
    
    • 1

    小结

    上面只是陈述了简单调用流程,实际使用要注意组装命令的格式是否正确,设备连接参数,数据转换等等,特别注意的是:不用连接实例的时候,要关闭连接,避免fd泄露,导致应用崩溃。

    更多用法参考

    DeviceConnector,欢迎star

    PC端数据包监控工具-Bus Hound

    Bus hound是一款为了在pc电脑上进行总线数据包监控以及操控的开发工具。用来捕捉来自设备的协议包和输入输出操作,它是功能强大的总线协议分析器

    支持监听:

    USB 1.0 - 4.0
    NVMe
    SATA & IDE
    SCSI & ATAPI
    FireWire, 1394A/B
    Bluetooth
    Fibre Channel
    iSCSI, SAS
    PC Card, PCMCIA
    serial port
    parallel port
    ps/2 ports

    下载地址:https://perisoft.net/bushound/index.htm

  • 相关阅读:
    Celery笔记六之worker介绍
    [附源码]计算机毕业设计JAVA人力资源管理系统论文2022
    【附源码】计算机毕业设计JAVA抑抑心理交流平台
    Spring事务几种失效原因
    接口自动化测试的概述及流程梳理~
    优质快刊合集!内含TOP刊、CCF推荐期刊!编辑友好,极速发表!
    SpringCloudAlibaba分布式流量控制组件Sentinel实战与源码分析(上)
    浅谈AI人体姿态识别技术的先进性及安防视频监控应用场景
    高级 OpenCV:BGR 像素强度图
    GoogLeNet的不同版本
  • 原文地址:https://blog.csdn.net/u011082160/article/details/126119843