基础函数 -------------------------------- 外部USB串行设备 ++++++++++++++++++++++++++++++++++++++++++++++++ 外部USB串行设备结构文档USB,串行设备1.简要简介:外围界面:通用通信接口,例如LAN端口,钱箱端口,USB2.0端口,串行端口,耳机插孔等。此文本主要介绍使用模式 钱箱端口,USB端口和串行端口。 .. image:: ../images/GeneralFunctionModules/1-1.png :width: 800 串口(RJ11) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 串口使用 RJ11 接口,开发者可以通过串口的数据发送来控制外设。 一敏设备的RJ11为四线,不支持硬流控(部分外设默认开启硬件流控,这些设备无法通过RJ11连接一敏主机)。 D4 Pro, Swan 1 Pro, Crane 1 : /dev/ttyS1 Falcon 1:/dev/ttyS2 D1w,D3-503,D4,Swan 1,S1: /dev/ttyS3 D3-501,D2-402: /dev/ttyS7 `串行端口参考演示Demo <../demo/SerialDemo-v1.0.zip>`_ .. image:: ../images/GeneralFunctionModules/1-2.jpg :width: 800 通信文档事例:`Jaynes 串口电子秤通信文档 `_ (不同电子秤通信协议需参考每家厂商提供的文档) 钱箱(RJ12) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 一敏的桌面收银设备系列都支持直接访问钱箱。 钱箱使用RJ12接口。 开发人员可以通过将数据发送到RJ12接口来控制钱箱; 开发人员可以通过直接发送指示打开钱箱。 钱箱有两个操作:打开钱箱并检查钱箱的状态。 先下载 `IminLibs.jar <../demo/IminLibs.jar>`_ 包, 然后在项目中引用,通过以下方式获取指定值: 1) 引入IminLib.jar,在app目录下libs目录下添加IminLibs.jar .. image:: ../images/GeneralFunctionModules/2-1.png :width: 800 2) 添加IminLib.jar的依赖,在app目录下的build.gradle添加依赖 .. image:: ../images/GeneralFunctionModules/2-2.png :width: 800 3) 获取钱箱状态(需要钱箱支持返回) .. code-block:: java :linenos: :emphasize-lines: 1 boolean isCashBoxOpen = IminSDKManager.isCashBoxOpen(Context context); 4)打开钱箱 .. code-block:: java :linenos: :emphasize-lines: 1 IminSDKManager.opencashBox(Context context); parameter: context --> Application/Activity/Fragmen of context .. note:: D4 Pro/Swan 1 Pro/Crane 1产品必须使用 IminSDKManager. OpencashBox (Context Context). 这种新方法与旧设备兼容;IminSDKManager.opencashBox(); 它可以继续在适应的设备上使用. USB 串口 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 支持 USB2.0 协议的 USB 设备。 `USB 通信开发者文档 `_ 一敏支持的USB转串口芯片列表 目前支持的USB转串口芯片有:CH341、FT系列、PL2303、CP210X系列 ● 当使用USB转串口时,系统将构建节点:/dev/ttyUSBx(如/dev/ttyUSB0, /dev/ttyUSB1等) ● 当你使用USB转串口时,不要使用USB来调试系统,这会使USB转串口不工作 获取 USB 设备的 PID/VID ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 方法1: java code .. code-block:: xml :linenos: :emphasize-lines: 1 UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE); HashMap usbDeviceList = usbManager.getDeviceList(); for (UsbDevice usbDevice : usbDeviceList.values()) { int vid = usbDevice.getVendorId(); int pid = usbDevice.getProductId(); // print VID and PID Log.d("USB Info", "Vendor ID (VID): " + vid); Log.d("USB Info", "Product ID (PID): " + pid); } 方法2: adb command .. code-block:: xml :linenos: :emphasize-lines: 1 adb shell lsusb 扫码 ++++++++++++++++++++++++++++++++++++++++++++++++ 对于一敏设备,如果使用摄像头扫码,一敏提供了扫码Demo供开发者使用,可以更快的识别二维码和条码 `扫码Demo下载 `_ NFC ++++++++++++++++++++++++++++++++++++++++++++++++ `NFC Demo下载 `_