img

康耐视移动条码SDK
MaxiCode

MaxiCode是什么?

MaxiCode是美国联合包裹服务公司(UPS)在20世纪90年代早期开发的密集代码,用于在高速传送带上对包裹进行分类。二维(2D)符号具有一英寸的固定尺寸,由888个亮和暗的六边形模块组成,排列在靶心探测器图案周围(下图1)。在发布到公共领域后,MaxiCode按照ISO/IEC 16023进行了标准化。ISO标准略微修改了最初的MaxiCode设计,在相邻模块之间创建了一些最小的间距,并扩展了数据编码,使应用程序能够超越排序和跟踪包。

MaxiCode符号中的黑白模块排列在由33行组成的对角线矩阵中,其中交替包含30和29个模块。一个MaxiCode符号的最大数据容量为93个字母数字字符或138个数字字符。

MaxiCode在最外面的取景器圆的周长上使用了六个三模组,每个模组都有一个固定的模式,用于确定方向。另外四个模块用于指示符号的模式(有七个模式,稍后讨论)。第一行中最右边的两个模块也是黑色的。其余的864个模块用于数据表示和错误纠正。数据字符或码字使用每个6位表示;因此,在MaxiCode条形码中,864个模块转换为144个码字。

图1显示了一个突出显示了这些方向模式和模块的MaxiCode条码。

pages_maxicode-text-img.png

与许多其他二维条形码一样,MaxiCode使用了一种被称为Reed-Solomon错误校正的复杂错误检测和校正技术,通常称为错误校正码字(error correction Codewords, ECC)。ECC比传统的校验和先进得多,因为它不仅能够检测多个错误或遗漏(根本无法读取的数据),而且可以用于纠正两者。使用ECC,可以损坏多达1/8的条码码字,但所有数据都可以成功解码。

MaxiCode使用两种错误校正级别之一:标准错误校正(SEC)或增强错误校正(EEC)。主要消息总是使用EEC,而次要消息的错误级别由符号模式控制。如前所述,有七种不同的模式用于识别错误修正级别和数据格式。如下表所示:

模式 描述
0 过时的;被模式2和3所取代
1 过时的;被模式4取代
2 符号使用带有数字邮政编码和标准错误更正的结构化载波消息
3. 符号使用带有字母数字邮政编码和标准错误更正的结构化载波消息
4 符号包含一般数据,标准错误修正
5 符号包含通用数据,增强纠错
6 保留;用于对扫描器/阅读器进行编程

MaxiCode最常见的用途是在包裹递送行业,它是由UPS为此目的而发明和设计的,它支持特定于包裹运输的数据格式应该不足为奇。

这种数据格式被称为结构化载波消息(SCM)。模式2和模式3符号都要求数据以这种方式格式化,并规定主要和次要消息段的特定格式和内容。

在这两种情况下,主消息包含目标邮政编码(模式2符号为9个数字,模式3符号为6个字母数字字符)、3位国家代码、服务类别和错误纠正码(总是EEC)。

次要消息包含附加的装运信息,如托运人号码、包裹重量、装运ID、目的地城市等,以及错误纠正码字(总是SEC)。

当读取模式2或模式3的MaxiCode符号时,对主消息和副消息进行解码,然后使用行业标准格式将其格式化为单个字母数字字符串ANSI mh10.8m - 1993结构化载波消息(SCM)。当生成SCM时,解码软件将插入条码实际数据中没有的附加头和分隔符信息,以满足这些格式化要求。

这种ansi标准的消息格式由消息头、数据格式头、消息正文和消息结束符组成。下表提供了这些部分的详细信息:

消息头 消息头是四个字符序列[)>R年代在哪里R年代表示ASCII“记录分隔符”字符(十六进制值0x1E)。这些字符标识消息符合ANSI数据格式。
数据格式头 这是5个字符序列01G年代96年G年代表示ASCII“组分隔符”字符(十六进制值0x1D)。这些字符标识消息体符合ANSI传输数据格式。
消息体 这是一个可变长度的发货数据字段列表,每个字段用组分隔符分隔。最后一个字段以记录分隔符结束。下表提供了关于消息主体内容的更多细节。
消息终结者 这是EOT字符,EOT表示ASCII“文本结束”字符(十六进制值0x04)。

下面是消息体中数据字段的摘要:

送货至邮政编码 9位数字(模式2符号)或6位字母数字(模式3符号)邮政编码
装运至国家代码 ISO国家代码
类的服务 服务等级为包
追踪号码 包裹追踪号码
SCAC 运营商标准运营商Alpha代码(例如,UPS为UPSN)
UPS帐号 托运人帐号
天的皮卡 儒略日
货物ID 托运人的包裹ID号
包在装运 装运时的包装号(总X个包装的N个,格式为N/X)
包的重量 包装重量(磅)
地址验证 指示目的地址是否使用了地址验证数据库
船来解决 目的地址
船舶城市 目的地城市
州/省的船 目的地国家/省

在大多数情况下,不可能填充所有的数据字段,因为生成的消息太大,无法放入MaxiCode符号。使用MaxiCode条码的运营商通常提供自己的准则,以确定最大消息长度和填充哪些字段。

使用上面的语法来表示记录分隔符、组分隔符和文本结束符,下面的字符串表示来自图1中的MaxiCode示例的结构化载波消息(为便于阅读,用两行显示):

() >R年代01G年代97303281483G年代840G年代001G年代1 z12345675G年代UPSNG年代

123年x56G年代187G年代G年代1/1G年代37G年代YG年代UPSNG年代123F年代567G年代G年代遗传算法R年代EOT

谁使用MaxiCode ?

联合包裹服务使用MaxiCode运输所有美国国内和国际包裹。其他几家航空公司也采用了这种方式。

美国国防部也认证了MaxiCode作为通用数据符号学使用,尽管很少有实际的实现。

我们如何帮助开发人员使用MaxiCode?

Cognex移动条形码扫描器SDK支持MaxiCode检测,使开发人员能够收集相关工作流和应用程序数据。您可以通过注册康耐视移动条码免费下载SDK开发者网络.此外,条形码扫描器SDK支持广泛的象征学满足您日益增长的发展需求。