iOS(原iPhone操作系统)是苹果公司专门为其硬件开发的移动操作系统。目前苹果公司的许多移动设备,包括iPhone、iPad和iPod Touch,都采用的是这套操作系统。它是全球第二大最受欢迎的移动操作系统,仅次于Android。
iOS用户界面基于多点触控手势的直接操作。界面控制元素由滑块、开关和按钮组成。与操作系统的交互包括手势,例如刷卡,利用,捏,反向压力在iOS操作系统及其多点触控界面的上下文中,所有这些都有特定的定义。一些应用程序使用内部加速度计来响应设备的震动(一个常见的结果是undo命令)或在三维空间中旋转(一个常见的结果是在纵向和横向模式之间切换)。苹果在iOS中融入了全面的无障碍功能,使视力和听力有障碍的用户能够正确使用其产品,受到了广泛好评。
iOS的主要版本每年都会发布。目前的版本是iOS 12,于2018年10月8日发布。它适用于iPhone 5S及以上型号的iPhone,第五代iPad, iPad Air和iPad Air 2, iPad Pro, iPad Mini 2及以上型号的iPad Mini,以及第六代iPod Touch。在iOS中,有四个抽象层:核心操作系统层、核心服务层、媒体层和Cocoa Touch层。
康耐视移动条码SDK (cmbSDK)是一种用于开发移动条码扫描应用程序的简单而强大的工具。cmbSDK基于康视的旗舰DataMan技术和Manatee Works条形码扫描SDK,允许开发人员为所有移动扫描设备创建条形码扫描应用程序:从智能手机和平板电脑到MX系列的高性能工业条形码扫描仪。通过遵循一些简单的指导原则,开发人员可以编写可以在任何受支持的MX移动终端或智能手机上工作的应用程序,只需很少或根本没有条件代码。SDK通过“阅读器”连接层抽象设备来实现这一点:一旦应用程序与所需的阅读器建立了连接,就会使用单一、统一的API来配置设备并与设备交互。
SDK提供了两个基本读取器:一个“MX读取器”,用于使用MX-1000和MX-1502等设备进行条形码扫描;一个“相机读取器”,用于使用移动设备的内置摄像头进行条形码扫描。
本文档中描述的软件是在许可下提供的,只能按照该许可条款使用或复制,并包含本页所示的版权声明。本软件、本文件及其任何副本均不得提供给或以其他方式提供给被许可方以外的任何人。本软件的所有权和所有权仍属于康耐视公司或其许可方。康耐视公司对其软件在非康耐视公司提供的设备上的使用或可靠性不承担任何责任。康耐视公司对所述软件、其适销性、非侵权性或适用于任何特定目的不作任何明示或暗示的保证。
本文件中的信息如有更改,恕不另行通知,不应被理解为康耐视公司的承诺。康耐视公司不对本文件或相关软件中可能出现的任何错误负责。
除非另有说明,本文示例中使用的公司、名称和数据均为虚构。未经康耐视公司书面许可,本文件的任何部分不得以任何形式或方式(电子或机械),为任何目的复制或传播,也不得转移到任何其他媒体或语言。
版权所有©2017。Cognex公司。版权所有。
康耐视提供的部分硬件和软件可能包含一项或多项美国和国外专利,以及康耐视网站上列出的美国和国外未决专利://m.czl106.com/patents.
以下为康耐视公司的注册商标:
Cognex, 2DMAX, Advantage, AlignPlus, Assemblyplus,用Checker, Checker检查,Cognex Vision for Industry, Cognex VSOC, CVL, DataMan, DisplayInspect, DVT, EasyBuilder, Hotbars, IDMax, In-Sight, Laser Killer, MVS-8000, OmniView, PatFind, PatFlex, PatInspect, PatMax, PatQuick, SensorView, SmartView, SmartAdvisor, SmartLearn, UltraLight, Vision Solutions, VisionPro, VisionView
以下是康耐视公司的商标:
康耐视的标志,1DMax, 3D-Locate, 3DMax, BGAII, CheckPoint,康耐视VSoC, CVC-1000, FFD, iLearn, In-Sight(设计标志与十字线),In-Sight 2000, InspectEdge, Inspection Designer, MVS, NotchMax, OCRMax, PatMax RedLine, ProofRead, SmartSync, ProfilePlus, SmartDisplay, SmartSystem, SMD4, VisiFlex, Xpand
本协议中标识的其他产品和公司商标均为其各自所有者的商标。
SDK支持康耐视的MX移动终端系列,包括MX-1000和MX-1502设备。您可以在康耐视的官方网站上获得这些型号的详细描述(//m.czl106.com).这些设备关于cmbSDK使用的一些相关特性如下:
MX平台的以下特性结合在一起使应用程序开发变得简单。
在向苹果应用商店提交您的MX-1000 Enabled应用程序之前,您的应用程序必须添加到康耐视MX-1000 MFi产品计划中。这是你的应用获得苹果批准的关键步骤。(如果你的应用没有被添加到该计划中,苹果将拒绝它。)
请将以下资料提交至MX1000@cognex.com你计划提交到app Store的每个iOS应用。
在向app Store提交应用之前,你还需要更新应用的注释。请按照下面的说明来做:
相关产品方案为:
附件名称:DataMan 9050
产品计划编号:144826-0004
状态:活动类型:制造过程
生产阶段:
收到此信息后,康耐视会将您的应用添加到MX-1000产品计划中。完成此步骤后,您将收到一封确认邮件,届时您可以直接向Apple提交应用程序。
MX移动终端通过设备的usb或lightning端口连接到您的设备。这意味着该端口将在应用程序运行时被占用。还有其他调试应用程序的方法,我们将在下面讨论如何通过wifi进行调试。
使用XCode调试iPhone:
要求:
如果你使用XCode运行你的应用程序,你需要在你的设备上启用“通过网络连接”。要做到这一点,首先打开XCode,从顶部菜单选择“窗口”,然后选择“设备和模拟器”。在这一点上,请确保您的设备已通过闪电电缆插入。从左侧的“已连接”设备列表中选择您的设备,并选中“通过网络连接”复选框。
此时,您可以关闭“设备”窗口,并且可以在不使用闪电电缆的情况下运行应用程序。
在iPhone上使用Xamarin或Visual Studio调试:
确保你的iPhone已经用闪电线连接上,然后打开Xamarin。IOS项目。通过右键单击项目并选择“选项”进入项目选项。从左侧菜单导航到iOS Debug,并选中“Debug over WiFi”复选框。应用程序的启动仍然是通过USB线完成的,所以初始启动仍然需要您插入电缆。但是一旦启动,你就可以安全地拔掉插头,通过WiFi继续调试。
重要的是要认识到智能手机(和平板电脑)作为条形码扫描设备的功能有几个根本的区别。这些差异导致用户体验与专用扫描仪不同,从而影响了移动条形码扫描应用程序的设计。
这些差异以及它们对应用程序的一般影响如下:
cmbSDK经过特别设计,使这些差异对应用程序开发人员和用户尽可能透明。通过遵循一些简单的指导原则,可以开发工作和行为相同的应用程序,无论是使用MX-1000移动终端,还是仅使用设备的内置摄像头。
如果没有硬件触发器,移动设备必须使用替代方法来启动条形码扫描。有三种常用的范例:
cmbSDK支持所有这三种方法,其中任何一种(或多种)都可以在应用程序中使用。
如前所述,不像专门建造的扫描仪,移动设备没有内置瞄准器。条形码瞄准通常是通过在移动设备显示器上提供来自摄像头的实时流预览来实现的:然后用户可以重新定位设备,直到条形码出现在视野中并被解码。cmbSDK极大地简化了这个任务,因为它提供了一个内置的预览控件,可以显示全屏、部分屏幕以及纵向或横向。的cmbSDK also supports "passive" aimers: devices that attach to the mobile device or mobile device case that use theLED flash of the device as a light source to project an aiming/targeting pattern. The advantage to these types of aimers isthat an on-screen preview is no longer required (since the mobile device can now project an aimer pattern similar to apurpose-built scanner). One limitation of passive aimers, though, is that since the mobile device flash is being used forthe aimer, using the LED flash for general scanning illumination is not available.
移动设备支持开发纵向、横向或两者之间自动旋转的应用程序。cmbSDK完全支持条形码预览和扫描方向的所有三个选项。如前所述,无论应用程序和/或移动设备的方向如何,大多数条形码都可以由移动设备扫描。
不过在某些情况下,使用横向可能是有利的,甚至是必要的。在人像模式下,移动相机沿着图像的“高度”有更高的分辨率。例如,常用的分辨率是1280x720。当以纵向模式扫描条形码时,这意味着沿水平轴有720像素的数据可用于条形码解码。如果扫描一个特别长的或密集的条形码(例如一个大的PDF417),使用横向方向在水平扫描线上提供1280个像素。在扫描二维码、数据矩阵和MaxiCode等“方阵”条形码时,方向几乎没有影响。
如今的智能手机和平板电脑拥有强大的计算能力。通过多核cpu和专用图像处理器,它们为具有成本效益和高效的条形码解码提供了理想的平台。尽管这些设备功能强大,但仍然建议开发人员考虑优化他们的条形码扫描应用程序。虽然SDK已经专门针对移动环境进行了优化,但图像分析和条形码解码仍然是一个CPU密集型活动:由于这些进程必须与操作系统、服务和其他应用程序共享移动设备CPU,因此开发人员应该限制其应用程序只使用满足其需求的SDK特性。
应用程序优化包括以下内容:
由于这些原因,在初始化cmbSDK以与移动设备的内置摄像头一起使用时,默认情况下不启用条形码符号:应用程序必须显式启用所需的符号。由于大多数条形码扫描应用程序只需要扫描少量符号,因此这种行为引导开发人员以一种有效的方式使用SDK。
启用符号是一个非常简单的过程,本文稍后将对此进行解释。
安装iOS cmbSDK的操作步骤如下:
下载最新资料XCode for iOS开发.
下载康耐视移动条码SDK for iOS。
执行以下步骤来设置您的应用程序使用iOS cmbSDK:
打开XCode,开始一个新项目。
* SystemConfiguration.framework * AVFoundation.framework * CoreGraphics.framework * coredia .framework * CoreVideo.framework * MediaPlayer.framework * Security.framework * AudioToolbox.framework * libDataManSDK.a
3.去你的项目Info.plist文件,并添加Privacy - CameraUsageDescription或NSCameraUsageDescription。这是iOS要求的,用于显示一条消息,解释应用程序对用户设备摄像头的使用情况。
如果您计划使用cmbSDK在智能手机或平板电脑(没有MX移动终端)上进行移动扫描,那么SDK需要安装许可密钥。
如果没有许可证密钥,SDK仍将运行,尽管扫描结果将被混淆(SDK将随机地用星号替换扫描结果中的字符)。
请与您的康耐视销售代表联系,了解如何获取许可证密钥,包括可用于30天评估SDK的试用许可证。
获得许可密钥后,将其作为字符串添加到应用程序的信息中。Plist文件,在键下MX_MOBILE_LICENSE.
cmbSDK旨在为支持的扫描设备提供高级抽象接口。这不仅包括MX系列移动终端,还包括打算使用移动设备相机作为成像设备的应用程序。与这些设备通信和管理的复杂性被封装在SDK本身中:让应用程序连接到所选择的设备,然后使用它。
应用程序和受支持的条形码扫描设备之间的主要接口是CMBReaderDevice类。该类代表设备本身的抽象层,处理所有通信以及任何必要的硬件管理(例如,智能手机扫描)。
cmbSDK的使用方法如下:
为要使用的设备类型(MX阅读器或相机阅读器)初始化一个阅读器设备。
连接阅读器设备。
配置读取器(如果需要)。
开始扫描。
初始化、连接和配置通常只需要在应用程序中执行一次,除了以下情况:
cmbSDK提供了两种不同的读取器类初始化器:一种用于使用MX移动终端(如MX- 1000或MX-1502)进行扫描,另一种用于使用移动设备(iphone、ipad等)的内置摄像头进行扫描。
初始化MX移动终端(如MX-1000或MX-1502)使用的阅读器设备很容易:只需使用MX设备方法创建阅读器设备(不需要参数),并设置适当的委托(通常是self):
CMBReaderDevice *readerDevice = [CMBReaderDevice readerOfMXDevice];[readerDevice setDelegate:自我);
MX移动终端的可用性可能会在设备打开或关闭时发生变化,或者在闪电电缆连接或断开时发生变化。您可以使用以下CMBReaderDeviceDelegate方法处理这些更改。
- (void)availabilityDidChangeOfReader:(CMBReaderDevice *)reader;
使用移动设备的内置摄像头进行条形码扫描可能比使用MX移动终端更复杂。cmbSDK支持多种配置,以提供最大的灵活性。这包括支持可选的外部瞄准器/照明,以及自定义直播预览外观的能力。
要使用移动设备的内置摄像头扫描条形码,请使用readerOfDeviceCameraWithCameraMode静态方法初始化CMBReaderDevice对象。相机读取器初始化时有几个选项。需要配置以下参数:
* CDMCameraMode * CDMPreviewOption * UIView
的CameraMode参数为CDMCameraMode类型(定义在CDMDataManSystem.h),并接受以下值之一:
以上所有模式都为读者提供以下默认设置:
根据所选择的模式,将设置以下附加选项和行为:
previewOptions参数类型为CDMPreviewOption,定义为CDMDataManSystem.h)用于更改读取器的默认值或覆盖从所选CameraMode派生的默认值。在传递参数时,可以通过OR-ing指定多个选项。可用的选项如下:
UIView类型的最后一个参数是可选的,用于相机预览的容器。如果参数为空,将使用全屏预览。
例子:
创建一个没有瞄准器和全屏直播预览的阅读器:
CMBReaderDevice *readerDevice = [CMBReaderDevice readerOfDeviceCameraWithCameraMode:kCDMCameraModeNoAimer previewOptions:kCDMPreviewOptionDefaults previewView:nil];readerDevice.delegate = self;
创建一个没有瞄准器,没有缩放按钮,并使用模拟触发器的阅读器:
CMBReaderDevice *readerDevice = [CMBReaderDevice readerOfDeviceCameraWithCameraMode:kCDMCameraModeNoAimer previewOptions:(kCDMPreviewOptionNoZoomBtn | kCDMPreviewOptionHwTrigger) previewView:nil];readerDevice.delegate = self;
在初始化Reader设备并设置一个委托来处理Reader的响应之后,你就可以使用connectWithCompletion来连接了:
//如果(readerDevice.)可用性== CMBReaderAvailibilityAvailable){//创建readerDevice对象和设备之间的连接[readerDevice connectWithCompletion:^(NSError *error) {if (readerDevice. availibilityavailable)}connectionState == cmbconnectionstateconnconnected){//连接成功}else {if (error){//处理连接错误}}}];}
如果一切都做对了,connectionStateDidChangeOfReader在委托中将被调用,您可以在阅读器设备的connectionState参数中检查连接状态。它应该是cmbconnectionstateconnconnected,这意味着您已经成功地连接到阅读器设备,并且可以开始使用康耐视移动条码SDK。
连接到扫描设备后,您可能希望(或需要)更改其某些设置。cmbSDK提供了一组高级的、独立于设备的api,用于设置和检索设备的当前配置。
与初始化读取设备的情况一样,使用MX读取器和使用相机读取器进行扫描之间存在一些区别。下面几节将详细介绍这些差异。
MX系列移动终端提供了复杂的设备配置和管理,包括保存在设备本身上的配置。一般来说,这些设备来自康耐视,预配置为一个特殊的开箱即用的体验,大多数符号和功能准备使用。
当需要自定义重新配置时,通常使用DataMan Setup Tool或DataMan Quick Setup完成,因为这些工具可用于将保存的配置轻松分发到多个设备,从而大大简化配置管理。
然而,它仍然是可能的(有时是可取的)移动应用程序本身配置MX设备:
与MX移动终端非常相似,cmbSDK使用移动设备的内置摄像头进行条形码读取的默认选项集,提供了良好的开箱即用体验。然而,有两个重要的区别需要记住:
可以使用Reader Device对象的以下方法启用单个符号:
-(void) setSymbology:(CMBSymbology) symbolology enabled:(bool)enabled completion:(void (^)(NSError *error))completionBlock;
此方法中用于symbolology参数的所有符号都可以在CMBReaderDevice.h中找到。
例子
/* Enable QR扫描*/ [readerDevice setsymsymology:CMBSymbologyQR enabled:YES completion:^(NSError *error) {if (!error) {// Success}else{/*不成功可能是当前设备不支持符号,或者readerDevice与MX设备之间的连接有问题*/}}];
同样的方法也可以用来关闭符号:
/* Disable Code 25扫描*/ [readerDevice setsymsymbsymbologyc25 enabled:NO completion:^(NSError *error) {if (!error) {// Success}else{//不成功}}];
如果您的阅读设备配备了照明灯(例如led),您可以在扫描开始时使用阅读设备对象的以下方法控制它们是打开还是关闭:
-(void) setLightsON:(bool)on completion:(void (^)(NSError *error))completionBlock;
请记住,并非cmbSDK支持的所有设备和设备模式都允许照明控制。例如,如果使用内置相机在被动瞄准模式,照明是不可用的,因为LED是用于瞄准。
cmbSDK包括一个将设备重置为默认设置的方法。在MX移动终端的情况下,这是默认保存的配置(不是出厂默认值),而在内置摄像头的情况下,这些是在附录B,其中不启用任何符号。方法如下:
- (void) resetConfigWithCompletion:(void (^)(NSError *error))completionBlock;
每个康耐视扫描设备都实现了DataMan控制命令(DMCC),这是一种配置和控制设备的方法。实际上,该设备的所有功能都可以使用这种基于文本的语言进行控制。API提供了向设备发送DMCC命令的方法。存在用于设置和查询配置属性的命令。
附录A包括完整的DMCC参考使用相机阅读器。其他DMCC命令
支持的设备(例如MX-1000)包含在特定设备的文档中。
附录B为相机读取器的配置设置提供与相应的默认值
DMCC设置。
下面的示例显示了将不同的DMCC命令发送到设备以进行更高级的配置。将扫描方向改为全向:
(自我。dataManSystem sendCommand: @“译码器。1D-SYMBOLORIENTATION 0" withCallback:^(CDMResponse *response){ if (response.status == DMCC_STATUS_NO_ERROR) {...} else {...} }];
修改直播预览扫描超时时间为10秒:
(自我。dataManSystem sendCommand: @“译码器。MAX-SCAN-TIMEOUT10" withCallback:^(CDMResponse *response){ if (response.status == DMCC_STATUS_NO_ERROR) {...} else {...} }];
获取连接设备的类型:
(自我。dataManSystem sendCommand:@"获取设备。类型" withCallback:^(CDMResponse *response){ if (response.status == DMCC_STATUS_NO_ERROR) {NSString *deviceType = response.payload; } else {...} }];
有了正确配置的读取器,现在就可以扫描条形码了。方法可以简单地实现这一点startScanning ()方法。接下来会发生什么取决于阅读器设备的类型以及它的配置方式,但一般来说:
当满足下列条件之一时,扫描停止:
当一个条形码被成功解码(第一种情况),你将在你的阅读器设备的委托中收到一个CMBReadResults数组,使用以下CMBReaderDeviceDelegate方法:
- (void)didReceiveReadResultFromReader:(CMBReaderDevice *)reader results:(CMBReadResults *)readResults;
下面是扫描条形码后简单显示ReadResult的示例:
- (void)didReceiveReadResultFromReader:(CMBReaderDevice *)reader results:(CMBReadResults *)readResults {for (CMBReadResult *readResult in readResults.readResults) {if (readResult.image) {_ivPreview. readResults. image) {_ivPreview. readResults.readResults .readResults .readResults .readResults .readResults .readResults .readResults .readResults .readResults .readResults .readResults .readResults .readResults .readResult .image) {_iv预览。image = readResult.image;} if (readResult.readString) {_lblCode。text = readResult.readString;}}}
在上面的例子中,_ivPreview是一个UIImageView,用于显示扫描条形码的图像,_ lblCode是一个UILabel,用于显示条形码的结果。你也可以使用BOOL fromreadResult.goodRead检查扫描是否成功。
当条码读取成功时,aCMBReadResult对象由didReceiveReadResultFromReader:results:方法创建并返回。在单个图像/帧上成功读取多个条形码的情况下,多个CMBReadResult返回对象。这就是为什么CMBReadResults类的数组CMBReadResult对象,其中包含所有结果。
的CMBReadResult类具有描述条形码读取结果的属性:
当扫描结束而未成功读取时,aCMBReadResult返回时,goodRead属性设置为false。这通常发生在扫描被取消或超时时。
以启用映像和imageGraphics属性CMBReadResult对象,则必须设置相应的CMBReaderDevice对象的imageResultEnabled和/或SVGResultEnabled属性。
要查看关于如何并行使用和显示图像和SVG图形的示例,请参阅SDK包中提供的示例应用程序。
要从扫描的条形码中访问原始字节,可以使用XML属性。字节被存储为“full_string”标签下的Base64字符串。下面是如何使用XML解析器从XML属性提取原始字节的示例。
NSXMLParser *xmlParser = [NSXMLParser。]alloc initWithData result.XML):;xmlParser.delegate = self;if ([xmlParser parse]){//原始字节将存储在这个变量NSData *bytes = [NSData. xml]中。alloc initWithBase64EncodedString:base64String options:0];}
解析XML并提取Base64字符串是使用NSXMLParser完成的
#pragma NSXMLParserDelegate;NSString * base64String;- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {currentElement = elementName;} - (void)解析器:(NSXMLParser *)解析器foundCharacters:(NSString *)字符串{if ([currentElement isEqualToString:@"full_string"]) {base64String =字符串;}}
默认情况下,图像和SVG结果是禁用的,这意味着在扫描时,CMBReadResults不会在相应的属性中包含任何数据。
要启用图像结果,请使用以下方法从CMBReaderDevice类中设置imageResultEnabled属性:
[readerDevice setImageResultEnabled:是的);
要启用SVG结果,请使用以下方法从CMBReaderDevice类设置imageResultEnabled属性:
[readerDevice setSVGResultEnabled:是的);
可能会出现由于电池电量不足或手动断开电缆而导致设备断开的情况。的connectionStateDidChangeOfReader回调函数可以检测到这些情况CMBReaderDeviceDelegate.
从非活动状态返回应用程序后,阅读器设备保持初始化,但没有连接。这意味着不需要重新初始化SDK,但需要重新连接。
某些iOS版本会在恢复外部附件可用的应用程序时发送“可用性”通知。你可以在CMBReaderDeviceDelegate的方法中使用这个:(void)availabilityDidChangeOfReader:(CMBReaderDevice *)reader。在其中,当阅读器可用时,您可以连接到它。
例如:
- (void)availabilityDidChangeOfReader:(CMBReaderDevice *)reader {if (readerDevice.)availability == CMBReaderAvailibilityAvailable) {[readerDevice connectWithCompletion:^(NSError *error) {if (error){//处理连接错误}}];}}
有些iOS版本不会在简历上报告可用性变化,所以你必须手动处理。为此,你必须为“UIApplicationDidBecomeActiveNotification”添加一个观察者,并在连接之前做一些检查,所以当阅读器已经处于“连接”或“连接”状态时,你不会连接。例如:
- (void)viewDidLoad{//为应用程序简历添加观察者[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appBecameActive) name:UIApplicationDidBecomeActiveNotification object:nil];} //处理应用程序恢复-(无效)appBecameActive {if (readerDevice != nil && readerDevice.}availability == CMBReaderAvailibilityAvailable && reader设备。connectionState != CMBConnectionStateConnecting && readerDevice。= cmbconnectionstateconnconnected) {[readerDevice connectWithCompletion:^(NSError *error) {if (error){//处理连接错误}}];}}
下表列出了使用内置摄像头进行条码扫描时cmbSDK支持的各种DMCC命令。
获取/设置 |
命令 |
参数(年代) |
描述 |
CameraReader |
---|---|---|---|---|
获取/设置 |
电池。负责 |
以百分比的形式返回设备的当前电量。 |
||
哔哔的声音 |
播放“哔”声(音)。 |
|||
获取/设置 |
哔哔的声音。好 |
(0 - 3) (0 - 2) |
设置嘟嘟声的数量(0-3)和嘟嘟声/音调(0- 2,低,中,高)。对于内置摄像头,只有一个单一的哔哔声,不支持螺距控制。因此,0 1将提示音关闭,11 1将提示音打开。 |
|
获取/设置 |
CODABAR。CODESIZE |
ON min max OFF min max |
接受任何长度的Codabar。 |
X |
获取/设置 |
C11。CHKCHAR |
On | off |
打开/关闭代码11检查数字。 |
X |
获取/设置 |
C11。CHKCHAR-OPTION |
1 2 |
需要单个校验和。需要双重校验和。 |
X |
获取/设置 |
C11。CODESIZE |
ON min max OFF min max |
接受任何长度代码11。 |
X |
获取/设置 |
这件。CODESIZE |
ON min max OFF min max |
接受任何长度代码25。 |
X |
获取/设置 |
C39。美国信息交换标准代码 |
On | off |
打开/关闭Code 39扩展ASCII。 |
|
获取/设置 |
C39。CODESIZE |
ON min max OFF min max |
接受任何长度代码39。 |
|
获取/设置 |
C39。CHKCHAR |
On | off |
打开/关闭代码39检查数字 |
|
获取/设置 |
C93。美国信息交换标准代码 |
On | off |
打开/关闭代码93扩展ASCII |
X |
获取/设置 |
C93。CODESIZE |
ON min max OFF min max |
接受任何长度代码93。 |
|
配置。默认的 |
将大多数相机API设置重置为默认值,除了那些未重置的设置(见附录B)。要重置所有设置,请使用DEVICE.DEFAULT。 |
|||
获取/设置 |
数据。结果类型 |
0 1 2 4 8 |
指定要返回的结果(多个值的和):无 XML数据 |
|
获取/设置 |
DATABAR。扩大 |
On | off |
打开/关闭数据库扩展符号。 |
|
获取/设置 |
DATABAR。有限的 |
On | off |
打开/关闭DataBar Limited符号。 |
|
获取/设置 |
DATABAR。RSS14 |
On | off |
打开/关闭DataBar RSS14符号。 |
X |
获取/设置 |
DATABAR。RSS14STACK |
On | off |
打开/关闭DataBar RSS14堆叠符号。 |
X |
获取/设置 |
DECODER.1D——SYMBOLORIENTATION |
0 1 2 3 |
使用全向扫描定位。 |
附录A -相机阅读器的DMCC
获取/设置 |
命令 |
参数(年代) |
描述 |
|
获取/设置 |
译码器。努力 |
1 - 5 |
设置图像分析/解码的努力级别。缺省值是2。请勿使用4-5进行在线扫描。 |
X |
获取/设置 |
译码器。MAX-SCAN——超时 |
1 - 120 |
设置直播预览的超时时间。当达到超时时,解码暂停;直播预览将继续在屏幕上显示。 |
X |
设备。默认的 |
将相机API设置重置为默认值(参见附录B)。 |
|||
得到 |
设备。FIRMWARE-VER |
获取设备固件版本。 |
||
得到 |
设备。ID |
返回由康耐视分配给扫描设备的设备ID。对于内置相机,SDK返回53。 |
||
获取/设置 |
设备。的名字 |
返回分配给设备的名称。默认情况下,这是“MX-”加上DEVICE.SERIAL-NUMBER的最后6位数字。 |
||
得到 |
设备。串行-数 |
返回设备的序列号。对于内置相机,SDK分配一个伪随机数。 |
||
得到 |
设备。类型 |
返回由康耐视分配给扫描设备的设备名称。对于内置相机,SDK返回“MX-Mobile”。 |
||
获取/设置 |
的焦点。FOCUSTIME |
清廉 |
设置相机的自动对焦周期(相机应该尝试重新对焦的频率)。默认值是3。 |
|
获取/设置 |
I2O5。CHKCHAR |
On | off |
将交错的5个检查数字中的2个打开/关闭。 |
|
获取/设置 |
I205。CODESIZE |
ON min max OFF min max |
接受任意长度交错2 / 5。 |
X |
获取/设置 |
的形象。格式 |
0 1 2 |
扫描器以位图格式返回图像结果。扫描器以JPEG格式返回图像结果。扫描仪返回PNG格式的图像结果。 |
|
获取/设置 |
的形象。质量 |
10、15、20、……90 |
指定JPEG图像质量。 |
|
获取/设置 |
的形象。大小 |
0 1 2 3 |
扫描仪返回全尺寸图像。扫描仪返回1 / 4大小的图像。扫描仪返回1/16大小的图像。扫描仪返回1/62大小的图像。 |
|
获取/设置 |
光。瞄准手 |
0 - 1 |
禁用/启用瞄准器(当扫描仪启动时)。 |
|
获取/设置 |
光。瞄准手-TIMEOUT |
0 - 600 |
瞄准手的超时时间(秒)。 这个值总是被DECODER覆盖。MAX-SCAN——超时。 |
|
获取/设置 |
光。内部,使 |
On | off |
启用/禁用照明(当扫描仪启动时)。 |
|
获取/设置 |
MSI。CHKCHAR |
On | off |
打开/关闭MSI Plessey检查数字。 |
|
获取/设置 |
MSI。CHKCHAR-OPTION |
0 1 2 3 4 5 |
使用mod 10校验和 |
X |
获取/设置 |
MSI。CODESIZE |
ON min max OFF min max |
接受任何长度的MSI Plessey。 |
X |
获取/设置 |
的象征。AZTECCODE |
On | off |
打开/关闭阿兹特克代码符号。 |
|
获取/设置 |
的象征。CODABAR |
On | off |
打开/关闭Codabar符号。 |
|
获取/设置 |
的象征。C11 |
On | off |
打开/关闭代码11符号。 |
X |
获取/设置 |
的象征。C128 |
On | off |
打开/关闭代码128符号。 |
附录A -相机阅读器的DMCC
获取/设置 |
命令 |
参数(年代) |
描述 |
|
获取/设置 |
的象征。这件 |
On | off |
打开/关闭Code 25符号(标准)。 |
|
获取/设置 |
的象征。C39 |
On | off |
打开/关闭Code 39符号。 |
|
获取/设置 |
的象征。C93 |
On | off |
打开/关闭代码93符号。 |
|
获取/设置 |
的象征。鸡笼 |
On | off |
打开/关闭COOP符号(代码25变体)。 |
X |
获取/设置 |
的象征。DATAMATRIX |
On | off |
打开/关闭数据矩阵符号。 |
|
获取/设置 |
的象征。DATABAR |
On | off |
打开/关闭数据库扩展和限制符号。 |
|
获取/设置 |
的象征。DOTCODE |
On | off |
打开/关闭DotCode符号。 |
|
获取/设置 |
的象征。国际航空运输协会 |
On | off |
打开/关闭IATA符号(代码25变体)。 |
X |
获取/设置 |
的象征。倒 |
On | off |
打开/关闭反转符号(代码25变体)。 |
X |
获取/设置 |
的象征。ITF14 |
On | off |
打开/关闭ITF-14符号(代码25变体)。 |
X |
获取/设置 |
的象征。UPC-EAN |
On | off |
开启/关闭UPC-A、UPC-E、EAN-8和EAN-13符号。 |
|
获取/设置 |
的象征。矩阵 |
On | off |
打开/关闭矩阵符号(代码25变体)。 |
X |
获取/设置 |
的象征。MAXICODE |
On | off |
打开/关闭MaxiCode符号。 |
X |
获取/设置 |
的象征。MSI |
On | off |
打开/关闭MSI Plessey符号。 |
|
获取/设置 |
的象征。PDF417 |
On | off |
打开/关闭PDF417符号。 |
|
获取/设置 |
的象征。地球 |
On | off |
打开/关闭PLANET符号。 |
|
获取/设置 |
的象征。POSTNET |
On | off |
打开/关闭POSTNET符号。 |
|
获取/设置 |
SYMBOL.4STATE-IMB |
On | off |
打开/关闭智能邮件条形码符号。 |
|
获取/设置 |
SYMBOL.4STATE-RMC |
On | off |
打开/关闭皇家邮政编码符号。 |
|
获取/设置 |
的象征。QR |
On | off |
打开/关闭QR和MicroQR符号。 |
|
获取/设置 |
触发器。类型 |
0 1 2 3 4 5 |
不支持不支持手动(默认)不支持不支持连续 |
|
获取/设置 |
UPC-EAN。EAN13 |
On | off |
打开/关闭EAN-13符号。 |
X |
获取/设置 |
UPC-EAN。EAN8 |
On | off |
打开/关闭EAN-8符号。 |
X |
获取/设置 |
UPC-EAN。UPC-A |
On | off |
打开/关闭UPC-A符号。 |
X |
获取/设置 |
UPC-EAN。UPC-E |
On | off |
打开/关闭UPC-E符号。 |
X |
获取/设置 |
UPC-EAN。UPCE1 |
On | off |
打开/关闭UPC-E1符号。 |
|
获取/设置 |
UPCE——一个。补充 |
0 1 - 4 |
关闭UPC补充代码。打开UPC补充代码。 |
下表列出了SDK在相机读取器启动时使用的默认值。
设置 |
默认值 |
只复位设备? |
---|---|---|
哔哔的声音。好 |
11 1(打开哔声) |
|
C11。CHKCHAR |
从 |
|
C11。CHKCHAR-OPTION |
1 |
|
C39。美国信息交换标准代码 |
从 |
|
C39。CHKCHAR |
从 |
|
C93。美国信息交换标准代码 |
从 |
|
COM。DMCC-HEADER |
1(包括结果ID) |
Y |
COM。DMCC-RESPONSE |
0(扩展) |
Y |
数据。结果类型 |
1 |
Y |
DECODER.1D-SYMBOLORIENTATION |
1 |
|
译码器。努力 |
2 |
|
译码器。MAX-SCAN-TIMEOUT |
60 |
|
设备。的名字 |
“MX-”+ DEVICE的后六位数字。序列号 |
|
象征学(象征。*) |
关闭(所有符号都被禁用) |
|
符号子类型(组):DATABAR。扩大 UPC-EAN。EAN8UPC-EAN。UPC-AUPC-EAN。UPC-EUPCE——一个。UPCE1 |
停,停,停,停,停 |
|
的焦点。FOCUSTIME |
3. |
|
I2O5。CHKCHAR |
从 |
|
的形象。格式 |
1 (JPEG) |
|
的形象。质量 |
50 |
|
的形象。大小 |
1(1/4号) |
|
光。瞄准手 |
默认基于cameraMode: 0: NoAimer和FrontCamera |
Y |
光。瞄准手-TIMEOUT |
60 |
|
光。INTERNAL-ENABLE |
从 |
附录B -相机阅读器默认值
设置 |
默认值 |
只复位设备? |
最小/最大代码长度 |
4 40 |
|
MSI。CHKCHAR |
从 |
|
MSI。CHKCHAR-OPTION |
0 |
|
触发器。类型 |
2(手动) |
|
UPC-EAN。补充 |
0 |
在安装康耐视产品时,请遵守以下注意事项,以减少人身伤害或设备损坏的风险: