外接USB串口设备

USB、串口设备使用说明文档

1. 简介:

外设接口 LAN 口,钱箱口, usb2.0 口,串口,耳机孔等通用通信接口。
本文主要介绍钱箱口,usb 口和串口的使用方式。

2.接口说明

1)钱箱口:钱箱口使用RJ12接口。 开发者可以通过向钱箱口发送数据来控制钱箱。
钱箱开发者文档及资源文件
2)串口: 串口使用 RJ11 接口。 开发者可以通过串口的数据发送来控制外设。 商米设备的RJ11为四线,不支持硬流控(部分外设默认开启硬件流控,这些设备无法通过RJ11连接商米主机)。
由于安全考虑,不支持串口节点遍历,但可以直接打开端口进行通信 (
T1,T1mini:机器底座串口的节点路径/dev/ttyHSL1,
T2,S2,T2lite,X2,T2mini:/dev/ttyHSL3,
N1、D2、D1s单屏:/dev/ttyS1,
N1、D2、D1s双屏:/dev/ttyS3) 
串口参考demo ,JNI参考
16001521077720_
通信文档事例:Jaynes 串口电子秤通信文档(不同电子秤通信协议需参考每家厂商提供的 文档)
3) USB 口: 支持 USB2.0 协议的 USB 设备。
USB 通信开发者文档   

SunmiOS支持的USB转串口芯片列表

目前支持的USB转串口芯片有:CH341、FT系列、PL2303、CP210X系列

插入USB转串口线或者板子会生成:/dev/ttyUSERx节点,其中x:表示序号0,1,2,3…..

使用USB转串口时请勿使用USB调试线,二者互斥,只能同时使用一个功能 
3.1 获取 USB 设备的 PID/VID:
方法1:java代码
try { //获得外接USB输入设备的信息 Process p=Runtime.getRuntime().exec(“cat /proc/bus/input/devices”); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = null; while((line = in.readLine())!= null){ } String deviceInfo = line.trim(); //对获取的每行的设备信息进行过滤,获得自己想要的。 } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } *deviceinfo中包含每个设备的pid和vid*
方法2:adb命令
 adb shell cat /proc/bus/input/devices 
3.2 通用 USB 外设HID设备默认支持 HID 协议设备(鼠标键盘扫码枪等),可即插即用。 
HID 扫码枪
HID扫码枪可即插即用:连接商米设备,在商米设备上打开一个可编辑框并获取焦点,扫码。此时编辑框应该被输入条码或者二维码内容。
从代码获取扫码内容可参考USB 外设通信谷歌开发者文档
U盘
支持的U盘格式: FAT32:可读可写;NTFS:可读不可写 ;exFAT:不支持
摄像头
商米支持 USB UVC 摄像头 (如LogitechC170)

Demo

源码
商米读写器侧边栏可接入商米读卡器(刷卡槽接口)
商米读卡器包含两部分,一部分为磁条卡刷卡,磁条卡刷卡可参考商米读卡器开发包和读卡器demo。另一部分为nfc,nfc为android原生接口,可参考android nfc开发文档
商米读卡器开发包
商米读卡器demo
商米读卡器demo源码
第三方通用读写器商米目前已经支持四款第三方usb通用读写器,开发者可参考商米提供的demo做读卡写卡操作。上海亿矽智能科技有限公司UM002读卡器深圳市德卡科技有限公司T10读写器(需支持android版本,电源充电版)香港龙杰智能卡有限公司ACR1281U-C1读写器香港龙杰智能卡有限公司ACR1281U-K1读写器

开发文档2.0

通用读写器demo

通用读写器demo源码