如果你开发的App需要与硬件做通讯,获取相应数据进行业务处理,这个库肯定对你有帮助。常见的硬件通讯连接方式有:串口通讯、Usb Com、Usb、蓝牙、Wifi等,实际硬件支持哪种连接方式,要看硬件支持哪种方式。应用层硬件通讯方案有两种:
本文针对第二点,封装了一个基础的、轻量级的通讯库,支持多种连接方式串口通讯、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);
2.打开连接
baseConnectProvider.open();
3.写和读数据
baseConnectProvider.read(byte[] sendParams, byte[] buffer, int timeout);
4.关闭连接
baseConnectProvider.close();
上面只是陈述了简单调用流程,实际使用要注意组装命令的格式是否正确,设备连接参数,数据转换等等,特别注意的是:不用连接实例的时候,要关闭连接,避免fd泄露,导致应用崩溃。
DeviceConnector,欢迎star
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