Linea Pro扫描条形码问题

时间:2016-05-05 05:39:07

标签: iphone swift barcode linea-pro

在基于swift的应用程序中,我必须使用设备相机实现条形码扫描以及使用Linea Pro 5(LP5)外部条形码扫描仪。 在应用程序必须检查与Linea Pro 5(LP5)设备的iPhone连接状态,如果iPhone没有与LP5连接,那么它必须打开iPhone相机,否则它将使用LP5扫描。我与任何UIButton的扫描都驻留在应用程序屏幕上。

我的问题是当我调用connect()方法时,“func connectionState(state:Int32)”方法调用和LP5的iPhone连接状态从连接变为连接然后我能够使用LP5进行扫描但是当我执行时扫描另一个条形码,LP5没有扫描,相机打开。此外,当我扫描不想要的拧条形码时,重新扫描后设备相机打开。这意味着连接状态以某种方式改变。但每次“func connectionState(state:Int32)”都不会调用。

任何人都可以告诉我如何在每次扫描操作之前检查LP5设备的连接状态。或者告诉我上述问题的正确解决方案。

1 个答案:

答案 0 :(得分:0)

选项1:在调用类中维护一个变量,该变量保存linea pro设备的状态,

var lineaProState;

connectionState(_ state: Int32)方法

中为此变量赋值
lineaProState = state;

然后在扫描项目/条形码之前,检查状态变量:

if(lineaProState==0)
                {
                    //disconnected...
                    //call the lib.conncet() method
                    lib.connect()
                }
                else if(lineaProState==1)
                {
                    //connecting...wait for connect to finish
                }
                else if(lineaProState==2)
                {
                    //connected..Proceed with scanning
                }

选项2:每次尝试扫描新条形码时,都要从库中调用lib.connect()方法?反过来,这将调用connectionState(_ state: Int32)方法,您可以检查设备状态,是否已连接。

这样做就可以了。欢呼!!!