1. 简介
外设接口 LAN 口,钱箱口, usb2.0 口,串口,耳机孔等通用通信接口。
本文主要介绍钱箱口,usb 口和串口的使用方式。
2. 接口说明
2.1 钱箱口
钱箱口使用RJ12接口。 开发者可以通过向钱箱口发送数据来控制钱箱。
钱箱开发者文档及资源文件
2.2 串口
串口使用 RJ11 接口,开发者可以通过串口的数据发送来控制外设。 商米设备的RJ11为四线,不支持硬流控(部分外设默认开启硬件流控,这些设备无法通过RJ11连接商米主机)。
由于安全考虑,不支持串口节点遍历,但可以直接打开端口进行通信
D2mini、T1、T1mini:机器底座串口的节点路径 /dev/ttyHSL1
;
T2、S2、T2lite、X2、T2mini:/dev/ttyHSL3
;
N1、D2、D1s单屏:/dev/ttyS1
;
N1、D2、D1s、S2cc、双屏:/dev/ttyS3
D2s_KDS、D2_2nd: /dev/ttyS0 ( 或者软链接 /dev/sunmi/pub/serial)
串口参考demo ,JNI参考
通信文档事例:Jaynes 串口电子秤通信文档(不同电子秤通信协议需参考每家厂商提供的 文档)
2.3 USB 口
支持 USB2.0 协议的 USB 设备。USB 通信开发者文档
SunmiOS支持的USB转串口芯片列表
目前支持的USB转串口芯片有:CH341、FT系列、PL2303、CP210X系列
插入USB转串口线或者板子会生成:/dev/ttyUSERx节点,其中x:表示序号0,1,2,3.....
使用USB转串口时请勿使用USB调试线,二者互斥,只能同时使用一个功能
2.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
2.3.2 通用 USB 外设HID设备默认支持 HID 协议设备(鼠标键盘扫码枪等),可即插即用。
HID 扫码枪
HID扫码枪可即插即用:连接商米设备,在商米设备上打开一个可编辑框并获取焦点,扫码。此时编辑框应该被输入条码或者二维码内容。
从代码获取扫码内容可参考USB 外设通信谷歌开发者文档
U盘
支持的U盘格式: FAT32:可读可写;NTFS:可读不可写 ;exFAT:不支持
摄像头
商米支持 USB UVC 摄像头 (如LogitechC170,C100,C525)Demo、源码
2.3.3 商米读写器侧边栏可接入商米读卡器(刷卡槽接口)
商米读卡器包含两部分:一部分为磁条卡刷卡,磁条卡刷卡可参考商米读卡器开发包和读卡器demo。另一部分为nfc,nfc为android原生接口,可参考android nfc开发文档
第三方通用读写器商米目前已经支持四款第三方usb通用读写器,开发者可参考商米提供的demo做读卡写卡操作。
上海亿矽智能科技有限公司 UM002读卡器
深圳市德卡科技有限公司 T10读写器(需支持android版本,电源充电版)
香港龙杰智能卡有限公司 ACR1281U-C1读写器
香港龙杰智能卡有限公司 ACR1281U-K1读写器