在这个wiki页面中,我们将解释如何在ITME项目中使用我们的cmbSDK槽cordova插件作为自定义小部件
打开ITME Studio并创建新项目
设置项目分辨率
进入项目资源管理器的全局部分,打开项目标签->数据表视图,并插入我们将使用的项目标签。我们将在本节后面解释每个标记
所有标记都是本地的,对标记值的更改只影响所做更改的站点。
回到图形部分,右键单击屏幕类别并单击插入
设置屏幕属性并按OK。
设计标题屏幕并将其命名为header。
这里我们有标题文本,标签,我们将显示阅读器设备的电池水平和智能消息对象,显示当前阅读器设备连接状态。
在头部屏幕中,我们将添加我们的barcodeReader自定义小部件。
单击自定义小部件图标
单击import并找到您的条形码阅读器。cwp文件。barcoderreader应该显示为可用的小部件。选择它并单击OK。
barcodeReader自定义小部件添加在头部屏幕
打开barcoderreader属性并进入小部件成员
使用项目标记映射自定义小部件中的属性,并设置操作set +Get和设置要在回调事件中执行的脚本。
然后打开头屏幕脚本,并在打开头屏幕时调用setPreviewContainerPositionAndSizeEventTrigger和loadScanner方法。同时打开另一个屏幕(主),而这个是打开的。
现在创建另一个屏幕并将其命名为main。
在这个屏幕上,我们有一个矩形用来显示扫描结果,按钮用来开始/停止扫描,按钮用来清除显示的结果。
之后右键单击屏幕组类别并创建启动屏幕组。
打开项目属性并将此组设置为Startup屏幕。
因为我们想部署这个应用程序作为HTML web界面,并从移动设备进行交互,我们需要打开移动访问菜单至少一个,并在关闭时保存更改。此外,为了更好地与自定义小部件通信,请将Process Values设置为最小值100。
当我们完成屏幕和配置时,验证项目。
以及将所有屏幕保存为HTML以供web访问
通过所有这些步骤,我们完成了ITME项目。
导航到您的ITME web应用程序物理路径。如果你使用本地IIS服务器,通常这个路径是C:\inetpub\wwwroot\ITME81,复制你下载的barcodeReaderServerFiles。
这些托管在服务器上的cordova文件将帮助我们通过自定义小部件使用本机特性。稍后打开index.html并引用这些脚本:
当我们导航到服务器URL时,我们在查询字符串中添加作为属性的平台。
在barcodeReader.js中,我们检查这个属性来知道要加载哪个cordova文件(iOS或android)。
现在打开IIS管理器右键单击ITME81应用程序,然后单击“添加虚拟目录”:
将“CustomWidget”设置为别名,并将其设置为ITME项目的物理路径(在本例中为C:\Users\Marko\Documents\InTouch Machine Edition v8.1 Projects\cmbSdkSample)
请确保您与拥有所选路径授权的用户进行连接。
在移动设备上运行Cognex包装器应用程序。在服务器URL输入框中插入您的服务器URL,并在查询字符串中发送屏幕和guestuser属性。单击导航按钮,您将被重定向到服务器URL (http://192.168.1.103/ITME81?在我们的例子中,Screen =header&guestuser=1)。当你点击导航按钮应用程序自动添加平台查询字符串作为属性。
注意,在从Cognex Wrapper App导航到服务器URL之前,必须先运行ITME项目。
有了这个属性,我们调用loadScanner(deviceType,sdk_key)方法,这是我们需要做的第一件事,以便使用阅读器设备
有两个输入参数。如果我们想使用MX Device执行扫描,那么第一个值应该是0;如果我们想使用Mobile Device执行扫描,那么第一个值应该是1。第二个输入参数是sdk_key,是可选的。我们需要设置我们的sdk许可证密钥,只有当我们使用移动设备扫描条形码。否则我们将在条形码阅读器的结果中有星号。
此事件的结果在loadScannerOutputData属性中返回,loadScanner事件作为回调函数被调用
例子:
'对于MX设备$loadScannerEventTrigger = "loadScanner(0)"'对于移动设备$loadScannerEventTrigger = "loadScanner(1, SDK_KEY)"
有了这个属性,我们调用connect()方法来连接我们的阅读器设备,并且应该在加载阅读器设备后调用它。
此事件的结果在connectOutputData属性中返回,连接事件作为回调函数调用。
例子:
$connectEventTrigger = "connect()"
使用这个属性,我们调用disconnect()方法从读取器设备释放连接
此事件的结果在disconnectOutputData属性中返回,断开连接事件作为回调函数调用。
例子:
$disconnectEventTrigger = "disconnect()"
有了这个属性,我们调用setPreviewContainerPositionAndSize(startPointX, startPointY, width, height)方法,它有4个输入参数。startPointX, startPointY,宽度和高度,它们的度量单位是%。
这应该在loadScanner方法之前调用,我们使用它来放置移动设备预览容器。
例子:
预览容器定位在0,0(左,上)100%右和30%底。$setPreviewContainerPositionAndSize = "setPreviewContainerPositionAndSize(0,0,100)"
通过这个属性,我们调用toggleScanner()方法来启动/停止扫描进程。
例子:
$toggleScannerEventTrigger = " toggleScanner() "
为了启用/禁用符号,我们使用这个触发setsymbolyenabled (p1, p2, p3..)方法的属性。作为输入参数,我们设置符号和状态。我们可以在一次调用中启用/禁用一个或多个符号。
符号列表:未知,DATAMATRIX, QR, C128, UPC-EAN, C11, C39, C93, I2O5, CODABAR, EAN-UCC, PHARMACODE, MAXICODE, PDF417, MICROPDF417, DATABAR, POSTNET, PLANET, 4state -日本,4STATE-AUS, 4STATE-UPU, 4STATE-IMB, VERICODE, RPC, MSI, AZTECCODE, DOTCODE, C25, C39-转换到c32, OCR, 4STATE-RMC。
此事件的结果在setsymbolologyenabledoutputdata属性中返回,setsymbolologyenabled事件作为回调函数调用。
例子:
$setSymbologyEnabledEventTrigger = "setSymbologyEnabled(DataMatrix ON, C128 OFF)"
当我们开始使用该属性扫描时,我们可以通过触发setLightsOn(p1)方法将light设置为默认启用/禁用。作为输入参数,如果我们想启用,我们设置ON,如果我们默认想禁用灯光,我们设置OFF。
该事件的结果在setLightsOnOutputData属性中返回,setLightsOn事件作为回调函数调用。
例子:
$setLightsOnEventTrigger = " setLightsOn(ON) "
为了检查light是否默认启用,我们触发isLightsOn()方法
此事件的结果在isLightsOnOutputData属性中返回,isLightsOn事件作为回调函数被调用。
例子:
$isLightsOnEventTrigger = " isLightsOn() "
通过这个属性,我们调用sendCommand(p1, p2, p3…)方法来执行设置为输入参数的DMC命令。我们可以设置一个或多个dmc命令作为输入参数。
此事件的结果在sendCommandOutputData属性中返回,sendCommand事件作为回调函数被调用
例子:
$sendCommandEventTrigger = " sendCommand (GET BATTERY.CHARGE) "
表示当前读取器连接状态的整数属性。有四种状态:
0 - connection_state_disconnected
1 - connection_state_connecting
2 - connection_state_connected
3 - connection_state_disconnect
包含最后扫描结果的字符串属性
布尔属性,如果读取器设备可用则为true,如果读取器设备不可用则为false。
布尔属性,该属性在扫描活动时为true,在扫描停止时为false。
当loadScanner方法被执行时,如果阅读器设备无法加载,它将返回成功消息或错误消息。
当connect方法被执行时,如果连接成功则返回true,如果连接不能完成则返回错误消息
当disconnect方法被执行时,如果在我们执行这个方法时有问题,它将返回成功消息或错误消息
在这个属性中,我们返回issymbolyenabled方法的结果。如果启用了某些符号,则Result为ON;如果禁用了,则为OFF;如果在执行此方法时抛出了一些错误,则返回错误消息。由于issymbolyenabled方法可以有多个参数,我们将返回用","分隔的符号状态。例如,如果我们调用$isSymbologyEnabledEventTrigger = "isSymbologyEnabled(DataMatrix, C128)",如果两个符号都启用,结果将是" ON,ON "。
注意,如果我们使用移动设备,默认情况下没有启用符号。
来自isLightsOn方法的结果,如果灯亮被启用,它可能是ON,如果关闭,它可能是OFF,如果在执行此命令时发生了错误,它可能是错误消息
表示sendCommand()方法的结果的字符串属性。如果有多个DMC命令作为输入参数,则每个命令的结果将用","分隔。
例如,如果我们调用$sendCommandEventTrigger = " sendCommand (GET BATTERY. txt)。充电,GET light . inner - enable)”的结果将是“50,OFF”
setLightsOn方法的结果,如果light被启用,它可能是ON,如果关闭,它可能是OFF,如果在执行此命令时发生了错误,则会出现错误消息
在这个属性中,我们返回setsymbolyenabled方法的结果。如果启用了某些符号,则Result为ON;如果禁用了,则为OFF;如果在执行此方法时抛出了一些错误,则返回错误消息。由于setsymbolyenabled方法可以有多个参数,我们将返回用","分隔的符号状态。例如,如果我们调用$setSymbologyEnabledEventTrigger = "setSymbologyEnabled(DataMatrix, C128)",如果两个符号都启用,结果将是" ON,ON "。
当sendCommand方法被触发并完成时,这个回调事件将被执行:
当isLightsOn方法被触发并完成时,这个回调事件将被执行:
当setLightsOn方法被触发并完成时,这个回调事件将被执行:
$isSymbologyEnabledEventTrigger = "isSymbologyEnabled(p1,p2,p3,.....)"
$setSymbologyEnabledTrigger = "setSymbologyEnabled(p1,p2,p3,.....)"
当disconnect方法被触发并完成时,这个回调事件将被执行:
这个回调事件将在connect方法被触发并完成时执行:
当loadScanner方法被触发并完成时,这个回调事件将被执行:
此回调事件将在toggleScanner方法被触发并完成时执行:
当MX Device的可用性发生变化时,将执行此回调事件。
当条形码被扫描时,这个回调事件将被执行
当阅读器的连接状态发生改变时,将执行此回调事件