Android平板与E200A(H)扫码器的交互

使用场景

  蜻蜓支付相信大家都听说过,最近公司要出一款类似产品。

问题总结

  在Android平板开发过程中,由于经验不足,首先被一个根本问题消耗了两天时间,
  初次需求,通过串口来进行获取扫码器的数据,这本身没问题,但是在开发过程中,通过串口获取的数据,
  根本无法与条形码数字保持一致,绞尽脑汁,又是转hex,又是转ascll,都没有效果。
  作为一个开发者,使我怀疑设计本身存在问题,果不其然,通过练习厂家,Android平板是串口232,而扫码器需要的是usb获取,问题根源。

解决办法

与pc端一个原理,不过Android需要添加CH34X驱动,以及转接口(TTL转USB)接收。

CH340驱动介绍
CH340是一个USB 总线的转接芯片,实现USB转串口或者USB转打印口。

  在串口方式下,CH340提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线

特点

   >  全速USB 设备接口,兼容USB V2.0。
   > 仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。
   >  计算机端Windows 操作系统下的串口应用程序完全兼容,无需修改。
   > 硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。
   > 支持常用的MODEM 联络信号RTS、DTR、DCD、RI、DSR、CTS。
   > 通过外加电平转换器件,提供RS232、RS485、RS422 等接口。
   >  CH340R 芯片支持IrDA 规范SIR红外线通讯,支持波特率2400bps到115200bps。
   >  软件兼容CH341,可以直接使用CH341的驱动程序。
   >  支持5V 电源电压和3.3V电源电压甚至3V 电源电压。
   >  CH340C、CH340E 和CH340B 内置时钟,无需外部晶振,CH340B 还内置EEPROM 用于配置序列号等。
   >  提供SOP-16 和SSOP-20以及MSOP-10无铅封装,兼容RoHS。

代码位置

  public int ReadData(byte[] var1, int var2) {
        synchronized(this.i) {
            try {
                this.C.acquire();
            } catch (InterruptedException var6) {
                var6.printStackTrace();
            }
            if (var2 > 0 && this.s != 0) {
                if (var2 > this.s) {
                    var2 = this.s;
                }
                this.s -= var2;
                for(int var5 = 0; var5 < var2; ++var5) {
                    var1[var5] = this.n[this.q];//这个地方无法理解q的数据从哪里获取
                    ++this.q;
                    this.q %= 655360;
                }
                this.C.release();
                return var2;
            } else {
                this.C.release();
                return 0;
            }
        }
    }

代码连接
https://pan.baidu.com/s/1R_kbIknvnnrfV_MuYjevRA
密码: 047v

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值