在此Wiki页面中,我们将解释如何在ITME项目中使用CMBSDK Trough Cordova插件作为自定义小部件
打开ITME Studio并创建新项目
设置项目解决方案
进入Project Explorer的“全局”部分,打开“项目标记->数据表视图”,插入我们将使用的项目标记。我们将在本部分后面解释每个标记
所有标记都是本地的,对标记值的更改只影响更改所处的站点。
回到“图形”部分,右键单击“屏幕”类别,然后单击“插入”
设置屏幕属性,然后按确定。
设计您的标题屏幕并将其命名为标题。
这里我们有标题文本,标签,我们将显示阅读器设备电池水平和智能消息对象,显示当前的阅读器设备连接状态。
在标题屏幕中,我们将添加我们的BarcodeReader自定义窗口小部件。
单击自定义小部件图标
单击导入并找到您的barcodeReader.cwp文件。barcodeReader应显示为可用小部件。选择它并单击确定。
条形码阅读器自定义小部件添加到标题屏幕中
打开BarcodeReader属性并进入小部件成员
使用项目标记映射自定义小部件的属性,并设置要在回调事件中执行的动作set +Get和set脚本。
然后打开标题屏幕脚本和调用setPreviewContainerPositionAndSizeeventTrigger和LoadScanner方法打开标题屏幕。同时打开另一个屏幕(主要),而这个是开放的。
现在创建另一个屏幕并将其命名为main。
在这个屏幕中,我们有显示扫描结果的矩形,按钮开始/停止扫描和按钮清除显示的结果。
稍后右键单击“屏幕组”类别并创建“启动”屏幕组。
打开Project属性并将该组设置为Startup屏幕。
因为我们想部署这个应用程序作为HTML web界面和从移动设备交互,我们需要打开移动访问菜单至少一个,并在关闭时保存更改。此外,为了更好地与自定义小部件通信,将Process Values设置为最小值100。
当我们完成我们的屏幕和配置验证项目。
并将所有屏幕保存为HTML以供web访问
通过所有这些步骤,我们完成了ITME项目。
导航到您的ITME web应用程序物理路径。如果您使用本地IIS服务器,则此路径通常为C:\inetpub\wwwroot\ITME81,并复制您下载的BarCodeReaderServer文件。
这些将托管在服务器上的cordova文件将帮助我们通过自定义小部件使用本地特性。稍后打开index.html并引用这些脚本:
当我们导航到服务器URL时,我们添加了我们在查询字符串中用作属性的平台。
使用barcodeReader.js,我们检查此属性以了解要加载哪些cordova文件(iOS或android)。
现在打开IIS管理器,右键单击ITME81应用程序,然后单击添加虚拟目录:
将“CustomWidget”设置为别名和ITME项目的物理pat设置路径(C: Users\Marko\Documents\InTouch Machine Edition v8.1 Projects\cmbSdkSample)
确保您与已选择授权的用户进行连接。
在移动设备上运行Cognex包装应用程序。在服务器URL输入框中插入您的服务器URL和查询字符串发送屏幕和guest用户属性。点击导航按钮,您将被重定向到服务器URL (http://192.168.1.103/ITME81?在我们的例子中Screen =header&guestuser=1)。当您单击导航按钮时,应用程序自动在查询字符串中添加平台作为属性。
请注意,您必须在从Codgex包装器应用程序导航到服务器URL之前运行ITME项目。
有了这个属性,我们称之为loadScanner(deviceType,sdk_key)方法,这是我们使用读卡器设备需要做的第一件事
有两个输入参数。如果我们使用MX Device执行扫描,第一个应该是0,如果我们使用Mobile Device执行扫描,第一个应该是1。第二个输入参数是sdk_key,它是可选的。我们需要设置我们的sdk许可密钥,只有当我们使用移动设备扫描条形码。否则我们将在条形码读取结果中使用星号。
这个事件的结果在loadScannerOutputData属性中返回,loadScanner事件作为回调函数调用
例子:
'对于MX Device $ LoadScannereventTrigger =“LoadScanner(0)”'为移动设备$ loadscannereventtrigger =“loadscanner(1,sdk_key)”
使用这个属性,我们调用connect()方法来连接我们的阅读器设备,并且应该在我们加载阅读器设备之后调用。
此事件的结果将在connectOutputData属性中返回,并将连接事件作为回调函数调用。
例子:
$ connecteventtrigger =“connect()”
使用此属性,我们调用disconnect()方法来从读取器设备释放连接
此事件的结果在disconnectOutputData属性中返回,disconnect事件称为回调函数。
例子:
$ disconnecteventtrigger =“disconnect()”
有了这个属性,我们调用setPreviewContainerPositionAndSize(startPointX, startPointY, width, height)方法,它有4个输入参数。startPointX, startPointY,宽度和高度,它们以%为单位。
这应该在LoadScanner方法之前调用,我们使用它来放置移动设备预览容器。
例子:
'预览容器位于0,0(左,顶部)100%右侧和30%底部。$setPreviewContainerPositionAndSizeEventTrigger=“setPreviewContainerPositionAndSize(0,0100,30)”
通过这个属性,我们调用togescanner()方法来启动/停止扫描过程。
例子:
美元toggleScannerEventTrigger = " toggleScanner ()
要启用/禁用符号,我们使用这个属性触发setSymbologyEnabled(p1, p2, p3..)方法。作为输入参数,我们设置符号和状态。我们可以在一个调用中启用/禁用一个或多个符号。
符号列表:UNKNOWN, 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- convert - to - c32, OCR, 4STATE-RMC。
此事件的结果在setSymbologyEnabledOutputData属性中返回,setSymbologyEnabled事件被称为回调函数。
例子:
$setSymbologyEnabledEventTrigger=“setSymbologyEnabled(数据矩阵打开,C128关闭)”
我们可以通过触发Setlightson(P1)方法开始扫描此属性时,将默认设置/禁用灯光。如果我们希望默认禁用灯光,我们将设置输入参数。
这个事件的结果在setLightsOnOutputData属性中返回,setLightsOn事件作为回调函数调用。
例子:
$ setlightsoneventtrigger =“setlightron(上)”
为了检查默认情况下是否启用了灯光,我们触发isLightsOn()方法
此事件的结果在isLightsOnOutputData属性中返回,isLightsOn事件作为回调函数调用。
例子:
$isLightsOnEventTrigger=“isLightsOn()”
使用这个属性,我们调用sendCommand(p1, p2, p3…)方法来执行设置为输入参数的DMC命令。我们可以设置一个或多个dmc命令作为输入参数。
此事件的结果在sendCommandOutputData属性中返回,sendCommand事件被称为回调函数
例子:
$sendCommandEventTrigger=“sendCommand(获取电池电量)”
表示当前读取器连接状态的整型属性。有四种状态:
0 - connection_state_disconnected.
1-连接\状态\连接
2 - connection_state_connected.
3 - CONNECTION_STATE_DISCONNECTING
包含上次扫描结果的字符串属性
Boolean属性,当读取器设备可用时为true,如果读取器设备不可用则为false。
Boolean属性,当扫描活动时为true,当扫描停止时为false。
当loadScanner方法被执行时,如果阅读器设备无法加载,它会返回成功消息或错误消息。
执行connect方法时,如果连接成功,则返回true;如果连接无法完成,则返回错误消息
当执行disconnect方法时,如果在执行此方法时出现问题,它将返回成功消息或错误消息
在此属性中,我们返回来自签名的方法。如果启用了某些符号,则Result为ON,如果禁用了则为OFF,如果执行此方法时抛出了一些错误,则返回错误消息。由于可生式方法可以具有多个参数,因此我们将返回与“,”分隔的符号系统状态。例如,如果我们调用$ issymbologyenabledeventtrigger =“签名机构(DataMbogyEnabled(DataMatrix,C128)”结果将是“开启”,如果两个符号奖项都已启用。
请注意,默认情况下,如果使用移动设备,则不启用任何符号。
从isLightsOn方法的结果,可以是ON如果灯是启用的,OFF如果是禁用的,或错误消息,如果发生了错误,而此命令被执行
表示sendCommand()方法的结果的字符串属性。如果有多个DMC命令作为输入参数,每个命令的结果将用“,”分隔。
例如,如果我们调用$sendCommandEventTrigger = " sendCommand (GET BATTERY。结果将是“50,OFF”
Setlightson方法的结果可以打开,如果启用灯,如果执行此命令时发生错误,则关闭IF禁用或错误消息
在这个属性中,我们从setsymologyenabled方法返回结果。如果启用了某些符号,则Result为ON,如果禁用了则为OFF,如果执行此方法时抛出了一些错误,则返回错误消息。因为setSymbologyEnabled方法可以有多个参数,我们将返回符号状态用“,”分隔。例如,如果我们调用$setSymbologyEnabledEventTrigger = "setSymbologyEnabled(DataMatrix, C128)"结果将是" ON,ON ",如果两个符号都是启用的。
当sendCommand方法被触发并完成时,这个回调事件将被执行:
当触发和完成时,将执行此回调事件:$ islightsonteventtrigger =“iSlightson()”
当触发setlightson方法并完成时,将执行此回调事件:$ setlightsoneventtrigger =“setlightron(p1)”
将在触发和完成的自行义务方法时执行此回调事件:$ issyymbologyenabledeventtrigger =“issyymbologyenabled(p1,p2,p3,.....)”
当setSymbologyEnabled方法被触发并完成时,这个回调事件将被执行:
当disconnect方法被触发并完成时,这个回调事件将被执行:
触发并完成connect方法时将执行此回调事件:$connectEventTrigger=“connect()”
将在触发LoadScanner方法并完成时执行此回调事件:$ loadscannereventtrigger =“loadscanner(0)”
'这个回调事件将在togescanner方法被触发并完成时执行:
当MX Device的可用性改变时,这个回调事件将被执行。
当扫描条形码时,将执行此回调事件
当读卡器设备的连接状态更改时,将执行此回调事件