这些维基页面的目的是提供API方法的详细描述科尔多瓦插件实现cmbSDK。
插件在JavaScript的一面,是作为一个实现的js文件中可以找到www你的文件夹科尔多瓦应用程序。
在插件文件夹中,我们还提供了一个示例文件夹,这基本上是三个文件,可以复制到你的js /索引。jscss/index.css和index . html你的项目和一个cmbconfig.js自动复制到文件/ js文件夹,当插件安装。
它涵盖了其他实现,特别离子和一个基于混合应用方法SAP /菲奥里平台。
建立一个很棒的应用科尔多瓦科尔多瓦,我们首先需要创建一个启动器:
科尔多瓦创建awesome-cordova-app-with-cmbsdk cd科尔多瓦awesome-cordova-app-with-cmbsdk插件添加absolute_path_to_plugin_directory例如:/ / /用户/超级用户/ cmb-cordova-master科尔多瓦ios平台添加android / /科尔多瓦平台添加/ /如果你想建立在ios
对于一个离子解决方案:
#安装离子sudo npm安装- g科尔多瓦离子#开始标签布局离子的离子应用开始awesome-ionic-app标签cd awesome-ionic-app #我们的插件添加离子科尔多瓦插件添加/工作/ PLUGINS / cmb-cordova / /路径到解压缩我们的插件#添加平台离子科尔多瓦平台添加android@7.0.0酿造更新& &酿造安装gradle #看到https://gradle.org/install/ /建立直接从控制台需要更改的权限gradlew文件sudo chmod 755 /用户/ * * /平台/ android / gradlew / /需要ionic-native太npm安装ionic-native——保存/ /将运行在android系统实时刷新和控制台日志离子科尔多瓦运行android - l - c
这将创建一个应用程序,开发人员需要熟悉的过程发展科尔多瓦。有怪癖,比如iOS想要签字,还是安卓会抱怨清单文件。
曾经有一个科尔多瓦应用程序建立在理想的平台,我们可以添加Cognex解决方案。
在科尔多瓦插件文件夹的样品我们需要复制的文件夹index . html到平台www文件夹中。的index.js成www / js / index.js,和index.css成www / css / index.css。cmbconfig.js自动复制到吗www / js文件夹中。
如果您计划使用cmbSDK移动扫描的智能手机或平板电脑(没有MX移动终端),然后SDK要求安装许可证密钥。没有许可密钥,SDK还是操作,虽然扫描结果将混淆(SDK将扫描结果与随机替换字符星号字符)。
联系你Cognex销售代表信息如何获得许可密钥包括30天试用许可证可用于评估SDK。
安卓系统,在获得你的许可密钥,在应用程序中添加以下行AndroidManifest。xml文件,应用程序标记:
<元数据android: name = " MX_MOBILE_LICENSE " android: value = " YOUR_MX_MOBILE_LICENSE " / >
接下来,把你的钥匙放在YOUR_MX_MOBILE_LICENSE的地方。
<应用android: hardwareAccelerated = " true " android:图标=“@mipmap /图标”android: label = " @string / app_name " android: supportsRtl = " true " > <活动android: configChanges =”取向| keyboardHidden拉键盘| | |地区“android: label = " @string / activity_name " android: launchMode =“singleTop”android: name = " MainActivity " android:主题= " / Theme.DeviceDefault @android:风格。NoActionBar adjustResize“android: windowSoftInputMode = > <意图过滤器android: label = " @string / launcher_name " > <行动android: name = " android.intent.action.MAIN " / > <类别android: name = " android.intent.category.LAUNCHER " / > < /意图过滤器> < /活动> <元数据android: name = " MX_MOBILE_LICENSE " android: value = " g / 9 ytjzcja + sxt4DTEDxR4hp6sZh9bmL97vUx + EE9uY = " / > < /应用程序>
iOS。在获得您的许可密钥,将它作为一个字符串添加应用程序的信息。plist文件,下键MX_MOBILE_LICENSE。
常量的列表,可以使用由开发人员如下:
有两种类型的设备,您可以使用科尔多瓦插件。一个MX装置硬件扫描仪,和智能手机相机。
设备:“DEVICE_TYPE_MX_1000”、“DEVICE_TYPE_MOBILE_DEVICE”, DEVICES_FRIENDLY: (“MX设备”、“相机”),
有两种类型的触发器,但六个值被保留。为MANUAL_TRIGGER设置,一旦发现条形码扫描过程中,扫描仪将自动停止进一步的扫描。为CONTINUOUS_TRIGGER它将继续寻找一个条码,并将火事件每次找到一个条码。
TRIGGER_TYPES:(“”、“”、“MANUAL_TRIGGER”,“”,“”,“CONTINUOUS_TRIGGER”),
AVAILABILITY_UNAVAILABLE AVAILABILITY_UNKNOWN: 0, AVAILABILITY_AVAILABLE: 1: 2
当我们监控的连接状态读者设备(相机或MX)setConnectionStateDidChangeOfReaderCallback我们能得到一个整数值,可以通过访问常量对象
CONNECTION_STATE_CONNECTED CONNECTION_STATE_DISCONNECTED: 0, CONNECTION_STATE_CONNECTING: 1: 2, CONNECTION_STATE_DISCONNECTING: 3,
开发人员可以访问下面的相机模式:
CAMERA_MODES:(“NO_AIMER”、“PASSIVE_AIMER”,“ACTIVE_AIMER”、“FRONT_CAMERA”)
开发人员可以访问下面的预览叠加模式:
PREVIEW_OVERLAY_MODE:“OM_CMB”、“OM_LEGACY”,
可用的列表符号使用我们的扫描仪。
请参考维基页面附录A DMCC相机的读者有关支持的更多信息符号。
符号:{"的象征。未知”:0,”的象征。DATAMATRIX”: 1、“符号。QR”: 2》的象征。C128”: 3”的象征。UPC-EAN”: 4”的象征。C11”: 5”的象征。C39”: 6”的象征。C93”: 7”的象征。I2O5”: 8日”的象征。CODABAR”: 9日”的象征。EAN-UCC”: 10“的象征。PHARMACODE”: 11日”的象征。MAXICODE”: 12”的象征。PDF417”: 13日”的象征。MICROPDF417”: 14日”的象征。DATABAR”: 15日”的象征。POSTNET”: 16日”的象征。行星”:17日”的象征。4STATE-JAP" : 18 ,"SYMBOL.4STATE-AUS" : 19 ,"SYMBOL.4STATE-UPU" : 20 ,"SYMBOL.4STATE-IMB" : 21 ,"SYMBOL.VERICODE" : 22 ,"SYMBOL.RPC" : 23 ,"SYMBOL.MSI" : 24 ,"SYMBOL.AZTECCODE" : 25 ,"SYMBOL.DOTCODE" : 26 ,"SYMBOL.C25" : 27 ,"SYMBOL.C39-CONVERT-TO-C32" : 28 ,"SYMBOL.OCR" : 29 ,"SYMBOL.4STATE-RMC" : 30 }
接口BarcodeResult {readString:字符串,symbologyString:字符串,象征:整数,goodRead: bool, xml:字符串,imageGraphics吗?:字符串,图片吗?:字符串};
结果从一个成功扫描返回的JavaScript对象与上面所示的布局。图像是可选的,这取决于enableImage()API方法。
扫描仪启动并运行,首先要做的是调用loadScanner ()方法。
预计一个设备类型和一个回调函数作为第二个参数。的回调函数是包裹在一个承诺,这是作为一个返回。
/ * @return{常量(string)行动:采取行动(将始终返回负载读者)(string)结果:来自服务器的消息(bool)状态:如果读者加载它将返回true(字符串)错误:错误的字符串如果是抛出一个错误(int)类型:设备的类型,我们连接到[0,1](string)名称:设备设备的类型的名称(类型)}* /
设备类型参数可以是一个字符串常量,可能值:
设备:[“DEVICE_TYPE_MX_1000”、“DEVICE_TYPE_MOBILE_DEVICE”]
或者我们可以通过DEVICE_TYPE_MOBILE_DEVICE DEVICE_TYPE_MX 0和1
/ /例作为回调:cmbScanner.loadScanner (“DEVICE_TYPE_MOBILE_DEVICE函数(结果){cmbScanner.connect ();});/ /例子作为承诺cmbScanner.loadScanner (“DEVICE_TYPE_MOBILE_DEVICE”),然后(函数(结果){cmbScanner.connect ();});/ /例通过设备类型为整数cmbScanner.loadScanner(0),然后(函数(结果){cmbScanner.connect ();});
连接到读者在我们装载它,我们需要使用连接。
cmbScanner.connect((回调));
/ * @return(承诺){状态:布尔,如果连接成功真如果不是假犯错:字符串,如果状态假错不会空}* /
/ * *使用连接并返回值作为承诺* / cmbScanner.connect(),然后(函数(connectionState) {console.log (connectionState);/ /{“状态”:假的,“犯错”:“成功”没有回复好吧}});/ * *使用连接并返回值作为一个回调函数* / cmbScanner.connect(函数(connectionState) {console.log (connectionState);});
即使我们返回的结果连接行动,作用于连接回调的结果更新DOM元素或调用API方法的目的,只有工作后我们有一个连接设置,不建议。
有一个侦听器回调(setConnectionStateDidChangeOfReaderCallback)函数可以设置,总会引发每当有变化在连接状态,我们应该保持代码。
/ * @return(承诺){状态:布尔,如果连接成功真如果不是假犯错:字符串,如果状态假错不会空}* /
就像connect (),有一个断开()这个款的方法connect ():
cmbScanner.disconnect((回调))
类似于connect (),断开()太返回connectionState在回调函数(包装成一个承诺),我们可以行动connectionState,例如改变标签从“连接”到“断开连接”:
cmbScanner.disconnect(函数(connectionState){如果(connectionState = = cmbScanner.CONSTANTS.CONNECTION_STATE_DISCONNECTED) {. getelementbyid (some-label) .innerHtml(“断开连接”);}else if (connectionState = = cmbScanner.CONSTANTS.CONNECTION_STATE_CONNECTED) {. getelementbyid (some-label) .innerHtml(“断开连接”);}})
但是,就像connect (),我们没有这样做,因为setConnectionStateDidChangeOfReaderCallback ()将一个侦听器设置为所有连接/断开连接/断开事件。
处理成功的扫描结果,我们需要设置ResultCallback函数。这是通过的setResultCallback。
它设置回调函数didReceiveReadResultFromReader事件。
cmbScanner.setResultCallback(函数(结果){如果(& &结果结果。readResults & & result.readResults。> 0){result.readResults长度。forEach(函数(项目、索引){如果(项目。goodRead = = true){/ /执行一些条形码读/行动/例子:. getelementbyid(“内容”)。insertAdjacentHTML (' beforeend ', ' < div class = "结果" > <跨类=“象征”>“+项目。symbologyString +”< / span >: ' + item.readString + < / div >);/ /我们可以把所有这个DOM处理DOM中的helper对象,但由于它只是一行代码让我们离开它是其他}{/ /执行一些动作时没有条形码读取或就让它空/ / navigator.notification.alert(“停止”);}});}});
ResultCallback将火每次有一个条形码扫描(或扫描仪是停止手动或timedout没有结果)。
条码的结构结果如下:
对MX设备使用的可用性监控:
设置一个侦听器可用性变化。将消防设备可用或失去时的可用性。
cmbScanner.setAvialabilityCallback(函数(可用性){/ * * *可用性- int表示设备的可用性* /如果(可用性= = CONSTANTS.AVAILABILITY_UNKNOWN){/ /执行一些操作时设备可用性}不知道其他如果(可用性= = CONSTANTS.AVAILABILITY_AVAILABLE){/ /执行一些操作设备时可用}其他如果(可用性= = CONSTANTS.AVAILABILITY_UNAVAILABLE){/ /执行一些操作时设备不可用}});
所有连接/断开连接事件应该在回调函数处理这个API方法。
回调是可选的,因为插件提供了一个默认的回调处理连接/断开连接事件,但默认回调函数只是一个占位符,不提供功能应用开发者。
当connetionStateDidChange发射,它将返回一个4可能整数值
这些可以直接访问为整数,或开发人员可以使用它们从常量枚举可用通过访问cmbScanner常量对象。
这样的例子在行动将是:
cmbScanner.setConnectionStateDidChangeOfReaderCallback(函数(connectionState){如果(connectionState = = cmbScanner.CONSTANTS.CONNECTION_STATE_CONNECTED){/ /做的东西而连接,比如设置一个标记使返回cmbScanner.setSymbologyEnabled (“SYMBOL.QR”,真正的)(函数(rr){/ /看到更多信息setSymbologyEnabled rr(返回的结果)对象/ /标志被设置后,我们可以发送一个命令。设cmbScanner flash。sendCommand(“光。INTERNAL-ENABLE”)(函数(结果){/ /命令是否成功我们应该光打开当我们开始扫描过程/ /而且检查是否我们可以使用flash isLightsOn API方法cmbScanner.isLightsOn()(函数(lights_on){/ /光应该});});});}});
在这里,我们不仅听连接/断开连接事件,但我们也使一些象征学和设置闪光灯,通过一个命令和API方法isLightsOn。
如果我们想监控扫描器(读者)的状态,我们需要设置这个回调函数。
cmbScanner.setActiveStartScanningCallback(函数(scannerState){如果(scannerState = = true){控制台。日志(扫描仪工作);}{控制台。日志(扫描仪不工作);}});
如前所述,设置这个功能,完全消除了需要设置一个回调startScanning ()或stopScanning ()方法。
尽管它看起来更合适,只有行动承诺或回调后立即返回startScanning ()/stopScanning ()被调用时,由于性质的stopScanning过程,每次发生的结果,最好是监听两个操作(启动和停止)在同一个地方。
检查和请求许可使用相机扫描条形码的移动设备。
/ * @return(承诺){状况:布尔,允许使用相机消息的状态:int,如果可以请求许可,否则0}* /
启动/停止扫描过程,我们使用这两个方法。他们可以从一个按钮通过调用应用程序的UI,或者我们可以称之为编程。
因为读者的性质我们应该设置setActiveStartScanningCallback ()功能,如果我们想控制某些DOM元素基于扫描仪的状态(读者)。
cmbScanner.startScanning(函数(scannerState){如果(scannerState) . getelementbyid (scanner-active-label)[删除]=“奔跑”;其它. getelementbyid (scanner-active-label)[删除]=“停止”;});
< a href = " cmbScanner.startScanning ();" < / > < >开始扫描仪!- - - - - -- - - - - -button to start the scanner --> Stop Scanner Start Scanner
从图像扫描条形码,我们可以使用scanImage或scanImageFromBase64。
/ * @return(承诺){状况:布尔,图像扫描执行错误的状态:字符串,如果状态假错不会空}* /
setSymbologyEnabled(象征,on_off(回调))/ * @return承诺包含JSON对象{行动:DMCC命令调用状态:它成功与否,如果一个错误发生,它将被设置为false结果:如果启用了象征那么真,如果不是那么假犯错:错误消息如果操作没有完成}* /
你将如何使用它的例子:
cmbScanner.setSymbologyEnabled (“SYMBOL.C93”,的确,函数(结果){console.log (JSON.stringify(结果));/ /打印{“行动”:“将象征。C93”、“状态”:真的,“结果”:真的,“犯错”:零}});/ /或承诺cmbScanner.setSymbologyEnabled (“SYMBOL.C93”,真正的)(函数(结果){console.log (JSON.stringify(结果));/ /打印{“行动”:“将象征。C93”、“状态”:真的,“结果”:真的,“犯错”:零}});
检查如果我们启用了一个象征,我们使用isSymbologyEnabled ()。
/ * * @return承诺包含对象{行动:DMCC命令调用状态:它成功与否,如果发生了一个错误就会设置为false结果:如果启用了象征那么真实,如果不是那么假犯错:错误消息如果操作没有完成}* /
cmbScanner.isSymbologyEnabled (“SYMBOL.C93函数(rr) {console.log (JSON.stringify (rr));/ /打印{“行动”:“会的象征。C93”、“地位”:真的,“犯错”:空,“结果”:真正}});
设置相机将如何表现当我们使用照相机设备作为条形码阅读器使用:
/ * *使用相机没有瞄准手。预览,照明是可用的。NO_AIMER = 0,使用相机基本瞄准手(例如,黄貂鱼)。预览,照明是不可用的。PASSIVE_AIMER = 1,使用相机积极瞄准手(例如,mx - 100)。预览,照明是可用的。ACTIVE_AIMER = 2,使用移动设备前置摄像头。预览,照明是不可用的。FRONT_CAMERA = 3 * /
这个控制预览/扫描选项在使用移动设备时相机。多个选项可以或会在一起。
/ * * *使用默认值(没有覆盖)。* /“违约”:0,/ * * *禁用缩放功能(删除变焦按钮预览)。* /“NO_ZOOM_BTN”: 1、/ * * *禁用照明(删除照明按钮预览)。* /“NO_ILLUM_BTN”: 2 / * * *使模拟硬件触发(音量按钮)。* /“HARDWARE_TRIGGER”: 4 / * * *扫描开始时,预览显示但解码是停了下来,直到一个触发器(屏幕上的按钮或音量按钮,如果启用)。/ * * /“PREVIEW_PAUSED”: 8日预览显示* *力,即使从默认情况下(例如,当使用kCDMCameraModePassiveAimer或kCDMCameraModeActiveAimer)。/ * * /“PREVIEW_ALWAYS_SHOW”: 16日,* *使用高分辨率设备是否支持它。默认是1280 x720,这个参数将使用1920 x1080。* /“HIGH_RESOLUTION”: 64年,/ * * *使用更高的帧速率如果设备支持它。默认是30帧,将使用这个参数60 FPS。 */ "HIGH_FRAME_RATE" : 128, /** * Show close button in partial view. */ "SHOW_CLOSE_BUTTON" : 256, /** * Keep the preview in paused state after read or timeout. */ "KEEP_PREVIEW_IN_PAUSED_STATE" : 512
/ * @params x, y, w h x, y:左上角位置w h:矩形的宽度和高度要完整的容器* /
cmbScanner.setPreviewContainerPositionAndSize (0、0100、50);/ /将预览为0,0和100%宽度高度的50%
只有在iOS,只适用于相机的读者。
设置相机预览部分视图顶部轴开始下面的状态栏匹配机器人的行为。预计一个布尔参数。
cmb.setPreviewContainerBelowStatusBar(真正的);cmb.setPreviewContainerPositionAndSize ([0, 0100, 50]);/ /将预览为0,0和100%宽度高度的50%。/ / iOS的局部视图所示状态栏。
cmb.setPreviewContainerBelowStatusBar(假);cmb.setPreviewContainerPositionAndSize ([0, 0100, 50]);/ /将预览为0,0和100%宽度高度的50%。/ / iOS局部视图将从屏幕的顶端开始,并将重叠状态栏。
设置相机覆盖模式。loadScanner之前你需要做它,否则它将无法正常工作。
只在MX-Mobile可用。
阅读更多关于叠加模式在这里
cmb.setPreviewOverlayMode (cmb.CONSTANTS.PREVIEW_OVERLAY_MODE.OM_CMB);
设置扫描会话是否应该停止当应用程序UI变化方向。预计一个布尔参数。
cmb.setStopScannerOnRotate(真正的);
显示或隐藏消息的相机预览而扫描移动相机。
以编程方式使闪光灯,我们可以使用:
/ * * @return承诺包含JSON对象{(string)行动:DMCC命令被调用(bool)地位:它成功与否,如果一个错误发生,它将被设置为false(字符串)错误:错误消息如果操作没有完成(bool)结果:采取行动的结果,在这种情况下,真正的光线是否启用,假如果不是}* /
cmbScanner.setLightsOn(真的,函数(响应){/ / console.log(响应);});cmbScanner.setLightsOn(真)(函数(响应){/ /或承诺,承诺中的回调函数包装/ /如果我们不设定一个回调函数作为一个参数,将使用默认的一个/ /它会返回一个承诺继续链});
检查如果闪光灯,我们可以使用:
/ * * @return承诺包含JSON对象{(string)行动:DMCC命令被调用(bool)地位:它成功与否,如果一个错误发生,它将被设置为false(字符串)错误:错误消息如果操作没有完成(bool)结果:采取行动的结果,在这种情况下,真正的光线是否启用,假如果不是}* /
cmbScanner.isLightsOn(真的,函数(响应){/ / console.log(响应);});cmbScanner.isLightsOn(真)(函数(响应){/ /或承诺,承诺中的回调函数包装/ /如果我们不设定一个回调函数作为一个参数,将使用默认的一个/ /它会返回一个承诺继续链});
如果我们想要返回最后一个图像被我们使用译码器enableImage ()。如果我们想要我们使用图像图形数据在返回的图像enableImageGraphics ()。
cmbScanner.enableImage(真正的);/ /将使图像在结果cmbScanner.enableImageGraphics(真正的);/ /将显示在图像上的条码检测
条码结果对象的结构是:
接口BarcodeResult {readString:字符串,symbologyString:字符串,象征:整数,goodRead: bool, xml:字符串,imageGraphics吗?:字符串,图片吗?:字符串};
启用或禁用解析为扫描条形码。预计cmb.CONSTANTS.PARSERS类型的一个参数。
cmb.setParser (cmb.CONSTANTS.PARSERS.GS1);
设置编码readString结果类型。预计cmb.CONSTANTS.READSTRING_ENCODING类型的一个参数。
cmb.setReadStringEncoding (cmb.CONSTANTS.READSTRING_ENCODING.UTF_8);
大部分的API方法可以取代发送适当的命令MX(或摄像头)读者。
发送命令接收一个回调并包装成一个承诺,所以链可以继续。
使用
cmbScanner。sendCommand(“设置标志。POSTNET”)(函数(结果){/ /和承诺让我们看看我们的命令console.log (JSON.stringify(结果));});/ /或cmbScanner。sendCommand(“光。INTERNAL-ENABLE”)(函数(结果){/ /命令是否成功我们应该光打开时我们开始扫描过程console.log (JSON.stringify(结果));});
第一个命令将禁用象征POSTNET。第二个将Flash。
两个动作可以与他们进行适当的API函数setSymbologyEnabled ()和setLightsOn ()和一般开发人员应该喜欢的API函数sendCommand ()。
然而,有些情况下,科尔多瓦插件不包括特定的用例场景,我们可以使用sendCommand的。
如果我们想改变我们的MX设备“哔哔声”和“灯”我们可以使用:
行动 | 命令 | 参数 | 参数值 | 参数的描述 | 产生的作用 |
---|---|---|---|---|---|
设置|获取 |
OUTPUT.USER-CONFIGURE |
事件数量、beep语气beep号码,颜色,振动 |
[1,2][0](0 - 3)(鹿)(|关闭) |
1:USER_EVENT_1, 2: USER_EVENT_2 |
集蜂鸣器语气和哔哔声USER_EVENT_1或USER_EVENT_2的数量。 |
所以对于我们的示例,我们将:
cmbScanner。sendCommand(“设置输出。USER-CONFIGURE 1 1 2 4“)(函数(响应){/ / console.log(响应);/ /打印出的结果行动});
这将配置用户事件# 1两个红色LED和振动中哔哔声。为了激活这一事件,我们使用:
cmbScanner.sendCommand (“OUTPUT.USER1”)(函数(响应){/ /这对USER1将调用存储设置项,所以MX设备基本上beep两次红色LED和振动})
只有在iOS。
公司拥有和经营许多Cognex移动终端远程可能想收集最新的信息关于电池水平,电池健康、安装固件等等。
一个使用cmbSDK iOS应用程序框架可以报告的附加移动终端状态信息MDM实例。这可以启用setMDMReportingEnabled方法,该方法接受一个布尔参数。
可以找到更多关于MDM报告在这里
cmb.setMDMReportingEnabled(真正的);
只有在iOS。
用于创建身份验证凭证用于MDM报告。它需要4个字符串参数:用户名、密码,clientID clientSecret。
应该叫setMDMReportingEnabled之前。
可以找到更多关于MDM报告在这里
招商银行。createMDMAuthCredentials(“用户名”、“密码”、“clientID”、“clientSecret”);
如果我们需要重置配置设置存储MX /相机读者我们可以使用:
cmbScanner.resetConfig(函数(结果){console.log(结果);})
/ * @return承诺包含JSON对象{(string)行动:DMCC命令被调用(bool)地位:它成功与否,如果一个错误发生,它将被设置为false(字符串)错误:错误消息如果操作没有完成,有一个错误。默认为空(bool)结果:sendCommand行动的结果}* /
看看cmbSDK版本您目前正在使用:
/ * * @return承诺包含cmbSDK版本字符串{(string)版本:cmbSDK版本}* /
相机的曝光补偿范围。
返回成功的回调与JSON对象范围或错误回调如果出现错误的错误消息。
cmbScanner.getCameraExposureCompensationRange(函数(范围){/ /范围是JSON对象,这些属性/ /“低”:最小相机曝光值/ /“上层”:马克斯相机曝光值/ /“步骤”:相机曝光值步console.log (JSON.stringify(范围);(错误){},函数console.log(错误);});
注意:相机内需要启动cmbSDK至少一次相机曝光补偿范围。
设置相机的曝光补偿值。发送浮动值设置为曝光补偿。
cmbScanner。setCameraExposureCompensation(5、功能(错误){console.log(错误);});
注意:这需要叫做成功连接后读者设备。如果值将大于相机曝光最大价值,马克斯值将被设置,如果值发送低于相机曝光最小值,最小值将被设置。