基础函数

外部USB串行设备

外部USB串行设备结构文档USB,串行设备1.简要简介:外围界面:通用通信接口,例如LAN端口,钱箱端口,USB2.0端口,串行端口,耳机插孔等。此文本主要介绍使用模式 钱箱端口,USB端口和串行端口。

_images/1-1.png

串口(RJ11)

串口使用 RJ11 接口,开发者可以通过串口的数据发送来控制外设。 一敏设备的RJ11为四线,不支持硬流控(部分外设默认开启硬件流控,这些设备无法通过RJ11连接一敏主机)。

D4 Pro, Swan 1 Pro, Crane 1 : /dev/ttyS1

Falcon 1:/dev/ttyS2

D1w,D3-503, D4, Swan 1, Swan 2, S1: /dev/ttyS3

D3-501,D2-402: /dev/ttyS7

串行端口参考演示Demo

_images/1-2.jpg

通信文档事例:Jaynes 串口电子秤通信文档 (不同电子秤通信协议需参考每家厂商提供的文档)

钱箱(RJ12)

一敏的桌面收银设备系列都支持直接访问钱箱。 钱箱使用RJ12接口。 开发人员可以通过将数据发送到RJ12接口来控制钱箱; 开发人员可以通过直接发送指示打开钱箱。 钱箱有两个操作:打开钱箱并检查钱箱的状态。

先下载 IminLibs.jar 包, 然后在项目中引用,通过以下方式获取指定值:

  1. 引入IminLib.jar,在app目录下libs目录下添加IminLibs.jar

_images/2-1.png
  1. 添加IminLib.jar的依赖,在app目录下的build.gradle添加依赖

_images/2-2.png
  1. 获取钱箱状态(需要钱箱支持返回)

1boolean isCashBoxOpen = IminSDKManager.isCashBoxOpen(Context context);

4)打开钱箱

1IminSDKManager.opencashBox(Context context);

parameter:

context --> Application/Activity/Fragmen of context

备注

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

 1UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
 2HashMap<String, UsbDevice> usbDeviceList = usbManager.getDeviceList();
 3for (UsbDevice usbDevice : usbDeviceList.values()) {
 4    int vid = usbDevice.getVendorId();
 5    int pid = usbDevice.getProductId();
 6
 7    // print VID and PID
 8    Log.d("USB Info", "Vendor ID (VID): " + vid);
 9    Log.d("USB Info", "Product ID (PID): " + pid);
10}

方法2: adb command

1adb shell lsusb

扫码

摄像头扫码说明

对于一敏设备,如果使用摄像头扫码,一敏提供了扫码Demo供开发者使用,可以更快的识别二维码和条码

摄像头扫码Demo下载

扫码头引擎

扫码头开发请参考:《一敏扫码接入说明文档.pdf 》 本文件是一份通用机型参考开发文件。

一敏 Swift 1、Swift 1 Pro、Crane 1、Lark 1等扫描码专用设备,可用于餐饮、零售、医疗、农业贸易、执法等场景。

1. 可识别的码

不同型号的扫码头支持的码类型不同,列举部分可支持的码类型,如下表所示:

扫码头

编码类型

斑马扫码头

EAN-13、EAN-8、QR、code 128、code 39、UPC-A、UPC-E、Codabar、ISBT 128、MSI PLESSEY、PDF417、code 93、Data Matrix

图腾扫码头

EAN-13、EAN-8、QR、code 128、code 39、UPC-A、UPC-E、Han Xin、Codabar、Aztec、MSI PLESSEY、PDF417、code 93、Data Matrix

用户可根据需求选择可识别的码,具体操作步骤如下:

  1. 在“扫码头设置”中点击“选择可识别码”;

  2. 选择开启或关闭制定识别码,默认开启全部识别码。

_images/19.png

2. 编码方式

用户可在“输出编码设置”中对输出编码进行设置,可选择UTF-8,GBK,ISO-8859-1和SHITF-JIS四种编码格式,其中,默认编码格式为 UTF-8

_images/25.png

3.提示方式

用户可在“提示方式设置”中对提示方式进行设置,默认打开声音提示和震动提示

_images/34.png

4.输出方式

用户可在“输出方式设置”中对扫码结果的输出方式进行设置,默认选中模拟键盘方式输出、自动补回车、开启广播输出

_images/43.png

5.触发模式

用户可在“触发模式设置”中选择触发模式,默认“短按触发”,扫码成功后扫码头自动熄灭

_images/54.png

6.条形码数据处理

用户可在“条形码数据处理”添加前缀/后缀,另外支持去除前后字符。

_images/63.png

7.Q&A

常见问题

  1. 问:如何对接扫码头?

答:为了方便开发者,一敏把扫码头做成了一个免开发的组件。无需针对扫码头做开发即可获取扫码内容。

如果使用广播通知方式接受,默认参数如下:

  • 扫描结果广播名称:com.imin.scanner.api.RESULT_ACTION

  • 键值名:decode_data_str

  • 原始字节名:decode_data

2.问:如何获取扫码结果?

答:提供了3种数据输出方式 :

1)模拟键盘:会把扫码结果模拟成按键事件,会自动输出到焦点框文本,用户可以通过获取焦点框内容或者监听按键事件来获取扫码结果;

2)直接填充:会把扫码结果拷贝到粘贴版,会自动输出到焦点框文本,相比较与模拟键盘输出方式,直接填充的输出速度更快;

3)广播输出:会把扫码结果作为广播发送,用户可以监听广播来获取扫码结果。

3.问:扫码结果比较慢?

答:模拟按键输出模式,按键间隔时间会影响输出速度,设置为0为最快速度 (默认0) 。

4.问:扫描中文二维码出现乱码怎么解决?

答:比如二维码的中文“你好”的编号格式为UTF-8,扫码头输出编码也需要设置UTF-8才能正确输出“你好”,否则将会输出乱码。

NFC

NFC Demo下载