GBT21335-2008RSS条码.pdf 64页

  • 1.90 MB
  • 2022-04-22 13:45:26 发布

GBT21335-2008RSS条码.pdf

  • 64页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'ICS35.040A24圆园中华人民共和国国家标准GB/T21335--20082008-01-09发布RSS条码ReducedSpaceSymbology(RSS)barcode2008—08—01实施宰瞀鹳鬻瓣訾篷攀瞥篓发布中国国家标准化管理委员会“”。 前言⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·1范围⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯2规范性引用文件⋯⋯⋯⋯⋯3术语、定义和数学运算符⋯⋯3.1术语和定义⋯⋯⋯·····⋯·3.2数学运算符⋯⋯⋯⋯⋯⋯4RSS条码描述⋯⋯⋯⋯⋯⋯4.1RSS条码的类型⋯·⋯⋯··4.2RSS条码的特点⋯⋯⋯⋯4.3附加特征⋯⋯⋯⋯⋯⋯⋯4.4符号结构⋯⋯⋯⋯⋯⋯⋯5Rssl4条码符号的要求⋯⋯5.1RSS-14的基本特点⋯⋯⋯5.2RSS一14的符号结构⋯⋯⋯5.3特定应用中的RSS-14形式6限定式RSS条码符号的要求6.1限定式RSS的基本特点··6.2限定式RSS的符号结构“7扩展式RSS条码符号的要求7.1扩展式RSS的基本特点··7.2扩展式RSS的符号结构··8符号质量⋯⋯⋯⋯···⋯⋯⋯”8.1一维条码符号质量参数⋯“8.2附加的判定规则⋯⋯⋯⋯··8.3层排式符号的质量⋯⋯⋯··9传输的数据⋯⋯⋯⋯⋯⋯⋯··10供人识读字符⋯⋯⋯⋯⋯”11最小模块宽度(X尺寸)⋯“12应用参数⋯⋯⋯⋯⋯⋯⋯“附录A(规范性附录)附录B(规范性附录)附录C(规范性附录)附录D(规范性附录)附录E(资料性附录)附录F(资料性附录)附录G(资料性附录)附录H(资料性附录)附录1(资料性附录)附录J(资料性附录)目次EAN·UCC校验码的计算⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯单元宽度编码和译码的c语言程序⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯限定式RSS校验符的单元宽度⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯分割较长的扩展式RSS符号进行ucc/EAN128模拟传输RSS条码符号的单元·⋯·⋯⋯⋯⋯⋯⋯····⋯⋯⋯⋯⋯⋯⋯编码示例·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯·⋯⋯单元宽度译码的C语言程序⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯为使误读最小化的译码考虑⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯印刷注意事项⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯RSS系列符号特点总汇⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯GB/T21335--2008Ⅲ,,,,:0::0o00加坨心地¨¨¨弛驼跎驼∞∞站鹪H拍蚰∞姐曲弘卯弘∞ 刖暑GB/T21335--2008本标准与国际标准ISO/IEC24724《信息技术自动识别与数据采集技术缩小空间条码(RSS)码制规范》在技术内容上保持一致。本标准的附录A、附录B、附录C、附录D为规范性附录,附录E、附录F、附录G、附录H、附录I、附录J为资料性附录。本标准由全国物流信息管理标准化技术委员会提出并归口。本标准由中国物品编码中心负责起草,北京网路畅想科技发展有限公司参加起草。本标准主要起草人:张成海、赵辰、吴宏、熊立勇、吴娟、7L洪亮、刘伟、张铎。Ⅲ 1范围RSS条码GB/T21335--2008本标准规定了RSS条码符号的结构、数据符编码、尺寸、印制质量要求、校验方法和译码算法。本标准适用于采用RSS条码符号的贸易项目及贸易项目附加信息的标识。2规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。GB/T1988信息技术信息交换用七位编码字符集(GB1988—1989,eqvISO/IEC646:1991)GB12904商品条码(GB12904--2003,Iso/IEc15420:2000,NEQ)GB/T12905条码术语GB/T14258信息技术自动识别与数据采集技术条码符号印制质量的检验(GB/T14258—2003,ISO/IEC15416:2000,MOD)GB/T15425EAN·UCC系统128条码(GB/T15425—2002,EAN·UCC,NEQ)GB/T16986EAN·UCC系统应用标识符(GB/T16986--2003,ISO/IEC15418:1999,NEQ)ISO/IEC15424信息技术自动识别与数据采集技术数据载体标识符(包括码制标识符)ISO/IEC24723信息技术自动识别与数据采集技术EAN·UCC复合码规范GSl通用规范3术语、定义和数学运算符3.1术语和定义GB/T12905确立的以及下列术语和定义适用于本标准。3.1.1复合码compositebarcode由一维条码和二维条码组合成的条码符号。3.1.2一维部分linearcomponentEAN·UCC复合码中用于对贸易项目标识的一维条码部分。3.1.3二维部分2DcomponentEAN·UCC复合码中用于对贸易项目的附加信息(如批号、有效期等)标识的二维条码部分。3.1.4全球贸易项目代码globaltradeitemnumber(GTIN)用于全世界范围内贸易项目的唯一标志关键字.包括14位、13位、12位和8位数字的代码(GTIN14、GTIN一13、GTIN一12和GTIN一8)。GTIN一14以EAN/UCC一14标准结构编码形成;(;TIN一13、GTIN一12和GTIN一8分别以商品标志代码(见GB12904)EAN/ucc13、EAN/ucc—12和EAN/ucc8结构编码形成。在计算机字段中全球贸易项目代码必须表示为14位数字的标准字段(关键字),GTIN一13、GTIN一12和GTIN一8需在前面适当补0形成14位数字的标准字段。1 GB/T21335--20083.1.5指示符indicatordigit14位全球贸易项目代码的第一位数字,用于区分相同贸易项目不同组合的包装或指明变量贸易项目。3.1,6连接标志linkageflag在作为一维部分的RSS或UCC/EAN-128条码(见GB/T15425)中,表示是否连接二维部分的指示符。3.1.7段segment条码符号的最小可译码单元。在RSS条码符号中,一个段由一个符号字符和与它相邻的定位符组成。3.1.8衰决voting一种译码技术,被译码段的值连同被译码的次数的计数一起存储,最终选出被译码次数最多的被译码段的值。表决是用于以段为单位进行译码的译码技术,在全向扫描中,表决用于通过段对RSS进行译码。3.2数学运算符本标准使用下列数学运算符:div取整数商运算符整数除法含弃余数的运算mod模运算符整数除法只取余数的运算4RSS条码描述4.1RSS条码的类型RSS系列条码符号有RSS-14、限定式RSS和扩展式RSS三种类型。其中:RSS-14包括标准RSS一14(简称RSS一14)、截短式RSS-14、层排式RSS14、全向层排式RSS一14;扩展式RSS包括单行扩展式RSS(简称扩展式RSS)和层排扩展式RSS。标准RSS-14、全向层排式RSS-14、扩展式RSS、层排扩展式RSS可用于全向扫描器按段进行识读。RSS系列条码符号的特点总汇参见附录J。4.2RSS条码的特点RSS系列条码符号的特点包括:a)可编码字符集1)RSS-14和限定式RSS:数字o~9。2)扩展式RSS:信息交换用7位编码字符集(见GB/T1988)的一个子集,其中包括全部英文大、小写字母,数字和选出的21个标点符号(含空格符号)。另外还有一个特殊功能字符FNCl。b)符号字符结构每种类型的符号采用不同的(”,k)结构,每个符号字符是”个模块宽,由k个条和k个空组成。c)符号类型连续型一维条码符号。d)最大数据容量1)RSS-14和限定式RSS:应用标识符(见GB/T16986)“01”加14位数字的项目标识代码。2)扩展式RSS:74个数字或41个字母字符。注:最大数据容量包括适合的隐含的应用标识符,但不包括FNCl字符。扩展式RSS的数据容量取决于编码方法,对于AI(01)+其他A1数据申,最大数据容量为74个数字;对于所有其他AI数据串.最大数据容量为70个数字‘对于AI(01)+(392x)+所有其他Al数据串.最大数据容量为77个数字。2 GB/T21335--2008e)错误校验1)RSS-14:模79校验值。2)限定式RSS:模89校验值。3)扩展式RSS:模211校验值。f)具有字符自校验功能。g)可双向译码。4.3附加特征RSS条码符号系列有以下附加特征;a)数据压缩:RSS系列条码符号的每种符号都具有对数据串进行优化的数据压缩方法。扩展式RSS选用常用应用标志符AI优化的特定组合。b)各部分的连接:所有的RSS符号都包含连接标志。如果连接标志是⋯0’。表示RSS符号是独立的。如果连接标志是“1”,表示RSS符号连接有一个二维部分及相应的分隔符。c)UCC/EAN一128条码模拟:识读器设定在UCC/EAN一128模拟方式时,传输RSS系列符号的编码数据如同传输一个或多个UCC/EAN一128符号的编码数据。4.4符号结构每个RSS符号包括外侧保护符、数据符和定位符。每个符号具有一种错误校验方法。符号两端的保护符各由一个条/空对或一个空/条对的两个单模块单元组成。层排式RSS一14和层排扩展式RSS符号在符号每行的两端都有保护符。附录I.1给出了外侧保护符单元的印刷注意事项。每个符号都有两个或多个数据符,每个数据符都采用(”,^)结构。数据符值通过数学运算形成确切的编码数据。定位符是选择出来的一组条空组合,供识读器识别和确认符号,确定单元的相对位置。每个符号包含一个或多个定位符,定位符还具有校验符和段标识符的作用。所有RSS符号都包含一个连接标志。如果连接标志是“1”,则作为一维部分的RSS及与其相邻的复合码分隔符应该按照ISO/IEC24723的要求与二维部分对齐。5RSS-14条码符号的要求5.1RSS-14的基本特点RSS-14条码符号能够对20000000000000(2×10”)个数值进行编码。每个数值由14位数字组成,第一位是连接标志,当数值大于或等于10000000000000时,则连接标志为“l”。后13位数字加上一个隐含的校验码就构成了包含包装指示符的14位全球贸易项目代码。例如,数值10001234567890对应的贸易项目代码为00012345678905。RSS一14符号可分4个段被扫描和译码,然后进行重组,这适于全向扫描。图1为一个独立的标准RSS-14符号。⋯删图1表示数据(01)20012345678909的RSS一14符号注:图l的数据中,开头的(01)是隐含的应用标志符.不在符号中编码;最后一位数字9是一个按模lO计算的校验码,不在符号中编码。校验码的计算见附录A。附录F1为一个RSs_14符号编码的完整例子。5.2RSS-14的符号结构Rs孓14符号分为8个区域,共96个模块。8个区域从左到右依次为;左侧保护符、数据符1、左侧3 GB/T21335--2008定位符、数据符2、数据符4、右侧定位符、数据符3和右侧保护符。结构如图2所示。8个区域的条、空及模块组成如下:a)左侧保护符:由1个模块宽的空和1个模块宽的条组成Ib)数据符1:由4个空和4个条共16个模块组成。(∞,^)一(16,4);c)左侧定位符:由3个空和2个条共15个模块组成;d)数据符2:由4个条和4个空共15个模块组成,(M,女);(15,4);e)数据符4:由4个条和4个空共15个模块组成,(”,女)一(15,4);f)右侧定位符:由3个条和2个空共15个模块组成;g)数据符3:由4个空和4个条共16个模块组成,(n,^)一(16,4);h)右侧保护符;由1个模块宽的空和1个模块宽的条组成。数据符1与数据符2为左侧数据符对}数据符3与数据符4为右侧数据符对。左佣保护符f数据符1(16.4)注:图中箭头表示每个字符单元排序的方向。圈2衰示数据(01)04412345678909的RSS-14条码符号整个符号包括46个单元,共96个模块,参见附录E.1。在全向扫描识读环境中,RSS-14条码符号的符号高度应大于或等于33个模块宽度(x尺寸)。注;对于(”.^)条码,模块宽度即x尺寸(x)。RSS-14条码符号不需要空白区。如果最左边的空或最右边的条的颜色与相邻的背景区域颜色相同,那么第1个或最后1个单元可能会出现宽于1个模块的情况,但不会影响符号的识读。5.2.1数据符结构每个数据符的模块组配为(n,^)结构,其中"为模块数,^是组成数据符的条空对的数目。数据符1和数据符3(又称外侧数据符)的”值是16.^值是4;数据符2和数据符4(又称内侧数据符)的”值是15,女值是4。在图2中,箭头表明每个字符的单元排序的方向。数据符1和数据符4的单元从左到右排序,数据符2和数据符3的单元从右到左排序。因此,数据符的单元是朝着相邻的定位符排序的。每个数据符的单元集合包含奇和偶两个子集,这里的奇和偶指的是每个子集中单元序号的奇、偶。例如,奇子集由第1、第3、第5和第7单元组成,在数据符1和数据符2中,奇数单元是空,偶数单元是条。在数据符3和数据符4中,奇数单元是条,偶数单元是空。5.2.2数据符值对每个数据符值,由一个算法给出奇子集和偶子集中各单元宽度的值(以模块为单位)组成的序列,需要为这个算法提供单元数量、模块数量、单元最大宽度以及子集中所有的单元是否都比1个模块宽等信息。附录B给出了用c语言程序实现的生成RSS一14数据符单元的算法。5.2.2.1外侧数据符值外侧数据符的有效的偶子集应至少有1个单个模块宽的单元,有效的奇子集则不必要具有1个单个模块宽的单元。对偶数单元的上述限制保证了数据符的各个边缘到相似边缘距离(条加空与空加条)有唯一的模块和。符删护右保...rI据。娜■■■■■-蜘符㈤¨¨¨¨¨¨ⅡⅡ捌划符_____._l■■■■■■■■■■■■■■■■■I据4一__________---I嬲特¨l●■■■■■■■■10i■■■■■■■■I鲋舭E_____--lfl啊啊唧哪哪栅啦睁左定,■■■■■■■■■■ GB/T21335--2008表1描述了(16,4)子集的特征,列出了5组奇子集和偶子集对。2个子集都具有偶数个模块。最宽的单元的宽度被规定下来,保证在1对相邻单元中的模块数之和不会超过j。在有限制要求的情况下,构成1个(16,4)字符的条空组合的模式共有2841种,能表示2841个值。表1外侧数据符(16,4)的特征前面各组所能表示的奇/偶子集奇数/偶数奇子集值的总数偶子集值的总数数据符值的范围组数据符值总数(Gsu”)模块数最宽单元(1kD)(1lvFN)0~160l012/48/1161116l~960216110/66/38010961~201439618/84/531342015~2714420156/103/610702715~2840527154/121/81126(16,4)数据符值v。与奇子集的值及偶子集的值的关系见下式:Vn一(V(1DD×TEvEN)+VEvEN+GsuM式中:丁。,。。——偶子集值的总数;VoDD——奇子集的值;yEvEN——偶子集的值;G。。,。——前面各组所能表示的字符值的总数。通过下面两式把外侧数据符的值Vo编码为VoDD和Vzve一:Vnm一(VD—GsuM)divTjvENVEvEN一(Vn—GsIIM)mod丁EvEN例如:对一个值为2315的(16,4)数据符进行编码。从表1可知,数据符的值在第4组内,因此GsuM一2015,TEvEN一70。应用上面的公式:V∞D一(2315—2015)div70=300div70—4VEvEN=(2315—2015)mod70—300mod70—20数据符值2315在第4组中(见表1),该数据符有:一个6个模块的奇子集,子集值4是10个连续值(o~9)中的一个;一个】0个模块的偶子集,子集值20是70个连续值(o~69)中的一个。使用附录B中的程序可以得到:该数据符各奇数单元的宽度是{I2l},各偶数单元的宽度是{1513),整个字符各单元的宽度为{1125213),单元宽度序列朝向相邻定位符排序。5.2.2.2内侧数据符值内侧数据符有效的奇子集应至少有一个单个模块宽的单元,有效的偶子集则不必具有一个单个模块宽的单元。对奇数单元的上述限制保证数据符的各个边缘到相似边缘距离有唯一的模块和。表2描述了(15,4)子集的特征,列出了4组奇子集和偶子集对。奇子集具有奇数个模块,偶子集具有偶数个模块。最宽的单元的宽度被规定下来,保证在一对相邻单元中的模块数之和不会超过9。在有限制要求的情况下,构成一个(15,4)字符的条空组合的模式共有l597种,能表示1597个值。奇子集允许值的范围被限定下来,保证奇数单元序号为1的单元宽度不超过4个模块。 GB/T21335--2008表2内侧数据符(15,4)的特征前面各组所能表示的奇/偶子集奇数/偶数奇子集值的总数偶子集值的总数数据符值的范围组数据符值总数(Gsu”)模块数最宽单元(nDD)(hⅧ4)0~335l05/102/7484336~103523367/84/520351036~1515310369/66/348101516~15964151611/48/1811(15,4)数据符值V。与奇子集的值及偶子集的值的关系见下式:VD一(VEvEN×ToDD)+VoDD+GsuM式中:nmn——奇子集值的总数;v。。E。——偶子集的值;v。。。——奇子集的值;(、。。。——前面各组所能表示的字符值的总数。通过下面两式把内侧数据符的值yo编码为Vjv“和Void:VEvEN一(VD—GsuM)dlv丁()DnVo∞=(Ⅵ)一GsuM)mod丁()DD注t与(16,4)外侧数据符相比,这些计算式中偶子集和奇子集的位置是相反的。5.2.3符号的值符号的值由左侧数据符对的值和右侧数据符对的值组合构成。各数据符对的值由相应外侧数据符的值和内侧数据符的值组合构成。数据符对的值的范围列在表3中。表3数据符对的值外侧数据符内侧数据符数据符对l(",^)值的总数(Vot"sml)值的范围(n,^)值的总数(V0q吐)值的范围值的数目值的范围l(16.4)28410~2840(15。4)15970~159645370770~4537076数据符对的值ym。与内、外侧数据符值的关系见下式:VP^1R一(1597×CouTsmE)+CINSIDE式中:c一。e与couwm——内、外侧数据符值。通过下面两式把数据符对的值ym。n编码为co一-ne与C-一ne:ColJTsmE—VP^IRdivVINsIDECINsTDE—VPAIRmodVlNsIDE例如:如果数据符对的值V一“为1971265,那么cm一一与c-一n。是C【)uTⅢDE一1971265div1597—1234CINsIDE一1971265mod1597—567符号的值与左侧和右侧数据符对的值的关系见下式:VsYMBOI,=(45:37077×Vl,PAIR)+VRP^I“式中:ysYMB0【,——符号的值;V一-n和VRPAtn——左侧和右侧数据符对的值。通过下面两式把符号的值y。。。。.编码为v。。与y。。。: GB/T21335--2008VI,P^Ili—VsYMNndiv4537077VRP^IR—VsYMⅣw.mod4537077例如,如果符号的值v;。。。。是1234567890,那么左侧数据符对的值V一】R和右侧数据符对的值VR⋯R是:Vl。PAIk=1234567890div4537077—272VRpAIR=1234567890mod4537077—482946数据符值组合产生20585067703929个值。其中,只有前面的20000000000000个值(0~19999999999999)被使用。最高位数字是二维部分连接标志:0用于独立的RSS一14,1用于二维部分与主符号RSS一14相结合的情况中。将其余13位数字与标志位分离,形成项目标志。隐含的模10校验码被计算出来(见附录A),加到13位数字的末端,形成14位的全球贸易项目代码。应用标志符01被添加到传输数据中,位于必须传输的码制标志符(见ISO/IEC15424)]e0或]C1之后。5.2.4定位符RSS条码符号中有2个定位符,定位符还可以对符号的校验和的值进行编码。每个定位符可以对9个值进行编码。左侧定位符位于数据符l和数据符2之间,右侧定位符位于数据符4和数据符3之间。由于定位符与4个数据符相邻,符号可以分为4个段进行扫描,每个段包括1个数据符和1个定位符。5.2.4.1定位符的结构每一个定位符都由5个单元、共15个模块组成。左侧定位符的起始和结束都是空单元,右侧定位符的起始和结束都是条单元。定位符的单元如图2所示由符号外侧到内侧的方向进行排序。定位符的单元2和单元3的模块之和是10~12,而单元4和单元5中的模块之和为2。宽单元对(单元2和单元3)的宽度与相连的4个单元(单元2~单元5)宽度和的比值在10:12~12:14范围内。这个比值用于对定位符的识别。表4列出了9个编码值的定位符单元宽度。表4定位符的值和单元宽度单元宽度(模块数)定位符的值单元1单元2单元3单元4单元50382l1l35l’123713l91l4274l15256162381l7157l181391l注;单元从符号外侧向内侧排序。左、右侧定位符的配对中“8,o”和“0,8”两种是不使用的。因为在出现一个模块宽的边缘错误的情况下,值为0和8的定位符中的一个会被错误译码,得出另一个的反转形式的值。其余79个可能的组合将对模79校验和的值进行编码。5.2.4.2校验和的计算左、右侧定位符的值C。,,和Cm“t每个都有9种可能的值。定位符值的配对0,8和8,0是不可用的,则共有9×9—2即79个组合。校验和的值等于数据符单元宽度加权的和模79运算的结果,按下式7 GB/T21335--2008计算:(w¨F¨+ⅣⅢE1:2+⋯+wⅢEI.8+w2.1E2.I+⋯+wmE4.8)mod79式中:Ⅳw.”——数据符N中序号为M的单元的权(见表5);Ew.”——数据符N中单元M的宽度模块数;ww.”Ew.”——两者的乘积。表5中权的值是3的连续次幂模79运算的结果,用公式W。.。一3”⋯_9mod79计算。表5校验和计算的数据符单元的权数据符数据符单]i序号(M)序号(N)123678l392726185424123629824725831648653732175l7446434236949684659采用下面的方法对两个定位符进行编码:令temp=校验和的值。如果temp大于或等于8,则将temp+1作为本步得出的temp;否则将temp作为本步得出的tempo如果上一步得出的temp大于或等于72,则将te“p+1作为本步得出的temp;否则将temp作为本步得出的temp。上一步得出的temp用于下面的运算。CI.En—tempdiv9CRBHT—tempmod9校验和的计算与校验符选择J的完整示例见附录F.1。5.2.4.3定位符的译码。通过将4个相连单元的宽度的总和与这4个单元左侧单元对或右侧单元对的宽度进行比较来识别定位符。定位符上述宽度的比在12t9.5~14t12.5范围之内。左侧定位符和右侧定位符可通过它们各自的条/空交替模式来区别。定位符及对有效数据符与定位符间距比的检查,将确认有效的RSS一14符号的四分之一的1个段已经被扫描。5.2.5参考译码算法条码识读系统设计成可在现行译码算法允许的范围内识读有缺陷的条码符号。本部分叙述了14258中描述的用于检测符号质量的可译码度值计算中使用的参考译码算法。算法包括下列译码步骤:a)通过从左到右和从右到左寻找一段4个单元的序列并计算其中相应单元宽度的比,找到符号:1)从左到右:9.5;12≤(单元1+单元2):(单元1+单元2+单元3+单元4)≤12.5:142)从右到左:9.5t12≤(单元3+单元4):(单元1+单元2+单元3+单元4)≤12.5;14注:上面的单元1、单元2、单元3、单元4的序号是一段4个单元的序列中的单元序号,顺着扫描方向排序,它们与定位符中单元的序号是不同的。通过上述比率的确定识别出左侧定位符的第2个单元~第5个单元。采用同样的方法可8 GB/T21335--2008识别出右侧定位符的第2个单元~第5个单元,但要将上面1)中的“从左到右”改为“从右到左”,将上面2)中的“从右到左”改为“从左到右”。使用步骤c)中1)~3)的方法对定位符进行译码,利用定位符前4个单元的宽度和(p),找到标称的相似边之间距离的数值E,和Ez,因为定位符前4个单元的宽度和(p)的模块总数为14,此时需将步骤c)2)中与p相除的数由16改为14。验证数值E.和易是否符合有效的RSS一14定位符。b)确定定位符的方向和条一空交替模式。利用定位符及方向,确定某种起始单元颜色(条或空)的相邻数据符是哪种(”,^)结构,即是(16,4)还是(15,4)。c)具有(16,4)结构的数据符,译码如下:1)获得7个宽度的测量值P、e,、e2、幽、e。、e5和e。(图3)。奇数奇敷奇数单元1偶数单元2偶数单元3偶教单元4偶数图3译码测量注t上图表示左起条单元为第一个单元,但数据符也可以是上图从左到右镜像或条空转换的形式。2)将测量值e。、ez、e。、e。、e。和ee转换为表示整数模块宽度(E:)的标称值E。、最、岛、E、B和EB。下面的方法用于E,(i=l,2,⋯,5,6)的确定:如果1.5.o/16≤o<2.5p/16,那么E.一2;如果2.5p/16≤o<3.5p/16,那么E。=3;如果3.5t>/16≤竹<4.5p/16,那么E一4i如果4.5p/16≤B,<5.5p/16,那么E,一5;如果5.5p/16≤e,<6.5p/16,那么E,一6;如果6.5p/16≤o<7.5p/16,那么E一7;如果7.5p/16≤e。<8.5p/16,那么E.一8;如果8.5p/16≤P,<9.5p/16,那么E.=9。否则字符出错。3)从E值确定字符各单元的标称宽度。”(”=16)个模块中剩余的模块分配给最后1个单元,得出该单元的宽度,而不是从E值中计算出来。有效的单元宽度集合是没有单元宽度小于1个模块、并且至少有1个偶数单元是1个模块宽。例如;图3中E。~E。的值是{43454),可能的单元宽度的集合是{40314l30)(注意不应有0宽度单元)、{312321}或{22132312)(注意没有单个模块的偶数序号单元),其中只有8个单元宽度为{312321)的集合满足要求,因此被选作字符各单元的宽度。如果导出的单元宽度的集合都是无效的,那么字符出错。附录G给出了这种单元宽度译码算法的C语言程序。4)采用附录B中的程序确定奇子集和偶子集的值。9■曼一曼一.。■曼一单邑一 GB/T21335--20085)从奇子集和偶子集的值计算数据符的值。6)计算并存储单元宽度加权和,用于校验和的计算。d)具有(15,4)结构的数据符,译码如下:1)获得7个宽度的测量值P、e。、F。m、P。、如和ee(图3)。2)将测量值P,他mm,e。和e。转换为表示整数模块宽度(E。)的标称值E,、最、E、E4、E5和E6。下面的方法用于E.(i一1,2,⋯,5,6)的确定:如果1.5p/15≤目<2.5p/15,那么E,=2;如果2.5p/15≤P,<3.5p/15,那么E,一3;如果3.5p/15≤P.<4.5p/15,那么E。一4I如果4.5p/15≤目<5.5p/15,那么E.一S;如果5.5p/15≤P,<6.5p/15,那么E,一6;如果6.5p/15≤P,<7.5p/15,那么E,一7;如果7.5p/15≤e,<8.sp/15,那么E。一8;如果8.5p/15≤嘶<9.5p/15,那么E,一9。否则,字符出错。3)使用上面的步骤c)中3)~6。)的方法计算(15,4)数据符的值。e)使用上面的确定标称单元宽度的方法对定位符进行译码,在表4中查找图形,得出定位符的值。f)当4个数据符和2个定位符全部被译码之后,验证2个定位符的值是否属于79个有效对的集合。验证从2个定位符中计算出来的模79的校验和的值与数据符单元宽度加权和的模79运算的结果是否一致。g)从4个数据符计算连接标志和项目标识代码。h)此外,为稳妥起见,考虑到具体的识读设备和设想中的应用环境,需对扫描加速度、绝对计时以及尺寸等进行其他的附加检查。在设计实际的识读RSS一14的扫描器时,可参见附录H中为使误读最小化而附加的符号译码考虑。5.3特定应用中的RSs_14形式5.3.1截短式RSS-14截短式RSS-14(见图4)的结构和编码与标准RSS-14一样。唯一不同的是它的高度可减小到最小值13X。当需要包装指示符数字大于1时,小项目可以用截短式RSS-14,而不用限定式RSS。当需要4列二维部分且要求复合码的高度最小时,也可以使用截短式RSS-14。截短式RSS-14可以采用光笔、手持激光扫描器、线性和二维图像式扫描器识读。它不能被全向式扫描器有效识读。截短式RSS一14的整体尺寸是96X宽、13X高(最小)。Ⅲl旧IIIlUllI啊IIⅢ¨圈4衰示数据(01)00012345678905的截短式RSS一14符号5.3.2RSS-14的两行形式RSS-14的两行形式是从标准RSS-14符号的中央即数据符2与数据符4的接合处把符号分成两半,再把左、右两半部分排成上、下两行的RSS-14符号。上面行由符号左半部分和右侧附加1x条和1x空组成的保护符构成;下面行由符号右半部分和左侧附加1x条和1x空组成的保护符构成。两行形式的RSS14条码包括层排式RSS-14和全向层排式RSS14。】0 GB/T21335~20085.3.2.1层排式RSS-14层排式RSS一14(图5)是截短式RSS一14的两行形式。图5中的条码符号对图4中符号表示的数据进行编码,以便于比较。图5表示数据(01)00012345678905的层排式RSS一14符号上面行是5X高,下面行是7x高,在两行之间是1X(最小)高的层分隔符。层排式RSS_14符号的整体尺寸是50X宽、13X高。层分隔符的前4个和最后4个模块总是空。若位于层分隔符的上面行和下面行的垂直相对的模块具有相同的颜色,则此处层分隔符的模块颜色与上、下行中的模块颜色相反,即在上面行、下面行两个垂直相对的条的部分之间形成一个层分隔符的空,两个垂直相对的空的部分之间形成一个层分隔符的条。若位于层分隔符的上面行和下面行的垂直相对的模块颜色不同,则此处层分隔符的每一个模块的颜色与其左侧的模块颜色相反。这样.层分隔符可在上面行和下面行模块颜色互补的一段区域出现单模块宽的条和空交替出现的图形(见图5)。在可用空间对限定式RSS太窄的情况下,对小项目可以使用层排式RSS-14,而不使用限定式RSS。而且,层排式RSS比较窄允许使用较大的x尺寸,印刷质量容易保证。但是,在空间允许而不必减少x尺寸的情况下,限定式RSS或截短式RSS一14应当优先于层排式RSS符号使用,因为它们容易被光笔或线性扫描器扫描。层排式RSS-14可以采用光笔、手持激光扫描器、线性和二维图像式扫描器识读。它不能被全向式扫描器有效识读。5.3.2.2全向屡排式RSS-14全向层排式RSS-14(图6)是完整高度的RSS-14符号的两行排列形式。一个由3个1X(最小)高的行组成3X(最小)高的层分隔符用来分隔符号的两行。围6裹示数据(01)00034567890125的全向屡排式RSS-14符号层分隔符各行的前4个和最后4个模块总是空。除了定位符第1、2、3单元之下的13个模块之外,层分隔符第1行的单元是由符号上面行条/空颜色的互补色形成的。上述13个模块,在相邻定位符的条之下的是浅色,在相邻定位符的空之下的是深浅交替的形式。除了层分隔符行的两端的各4个模块之外,层分隔符的第2行由交替的条空模块组成。除了定位符第1、2、3单元(从右到左)之上的13个模块之外,层分隔符第3行的单元是符号下面行条/空颜色的互补色形成的。上述13个模块。在相邻的定位符的条之_}二的是浅色,在相邻定位符的空之上的是以深色开始的深浅交替的形式。出现在数值为3的定位符上面的l3个模块中的单个深色模块l】 GB/T21335--2008被转换成右侧的一个模块,以便使得这个深色模块能够位于3个模块宽的定位符条的起始部分的上方。符号的每行最小高度为33X,在两行之间有一个3X高的层分隔符。这种形式的RSS符号的整体尺寸是50X宽、69X高(最小)。对全向扫描的应用场合,在需要不同的符号宽、符号高比时可使用全向层排式RSS一14来替代标准RSS-14符号。6限定式RSS条码符号的要求6.1限定式RSS的基本特点限定式RSS是线性符号,能够对4000000000000(4×10”)个数值编码(见6.2.3)。包装指示符为0和1的贸易项目代码可以被编码,此外,还提供了连接标志。限定式RSS可以采用光笔、手持激光扫描器、一维和二维图像式扫描器识读。它不能被全向通道式扫描器有效识读。图7是一个限定式RSS符号的示例。lIlllllllllllllII_IIII图7表示数据(01)15012345678907的限定式RSS符号6.2限定式RSS的符号结构限定式RSS符号是由左侧保护符、左侧数据符、定位符(又是校验符)、右侧数据符和右侧保护符共5个区域(从左到右),74个模块组成,结构如图8所示。5个区域的条、空及模块组成如下:a)’左侧保护符:由1个模块的空和1个模块的条组成;b)左侧数据符:由7个空和7个条共26个模块组成,(月,^)一(26,7);c)定位符:由7个空和7个条共18个模块组成,(n,^)一(18,7);d)右侧数据符:由7个空和7个条共26个模块组成,(n,k)=(26,7);e)右侧保护符:由1个模块的空和1个模块的条组成。左御l定位符数据符I(校验荷)II川㈣右侧:黧I心孙IIIIIIII图8限定式RSS符号结构示意图限定式RSS符号包括46个单元,见附录E.2。符号最小高度为10X。限定式RSS不需要空白区。如果相邻的背景区域颜色(左边是浅色或右边是深色)与保护符外侧单元的颜色相同,那么第一个或最后一个单元会出现宽于1个模块的情况,但不会影响符号的识读。6.2.1数据符结构每个数据符的模块组配为(n,^)结构。”的值是26,女的值是7。两个数据符的单元从左到右排序,如图8所示。每个数据符的单元集合包含奇和偶两个子集,这里的奇和偶指的是每个子集中单元序号的奇、偶。奇数单元是空,偶数单元是条。例如:每个数据符奇子集由第1、第3、第5、第7、第9、第i1和第13单元组成,排序从最左侧的单元开始。这种7个单元的子集的模块数目从最小7个到最大19个。在数据符中,奇子集和偶子集中模块数目的总和等于26。6.2.2数据符的值对每个数据符值,由一个算法给出奇子集和偶子集中各单元宽度的值(以模块为单位)组成的序列。12 GB/T21335--2008需要给该算法提供单元数量、模块数量、最大单元宽度以及子集中所有的单元是否都比1个模块宽等信息。附录B给出了用c语言程序实现的生成限定式RSS条码符呼数据符单元的算法。有效的偶子集至少有一个单模块单元,而奇子集可以所有单元都大于1个模块。对偶数单元的上述限制保证了数据符的各个边缘到相似边缘距离(条加空与空加条)有唯一的模块和。表6描述了(26,7)子集的特征,列出了7组奇和偶子集对。2个子集的模块数都为奇数。最宽的单元的宽度被规定下来,以使在一对相邻单元中的模块数之和不会超过9。在有限制要求的情况下,构成一个(26,7)数据符的条空组合的模式共有2013571种,能表示2013571个值。表6数据符(26,7)的特征前面各组所能表示的数奇/偶子集奇数/偶数奇子集值的总数偶子集值的总数数据符值的范围组据符值的总数((;s。”)模块数最宽单元(1j忡)(丁EvEN)9--183063lO】7/98/a653828183064~820063218306413/135/4875728820064~100077538200649/173/62864541000776~14910204100077615/1l5/424152031491021~19798445149102111/154/S20324081979845~19969386】97984519/78/】1709411996939~20l3570719969397/19L/81I6632数据符值v。与奇子集值、偶子集值的关系见下式:VD=(Vc】nD×TEv£N)+VEvEN—卜GsuM式中:丁evc“一一偶子集值的总数;V咖m——奇子集的值fyEvEN——偶子集的值iG。。。——前面各组所能表示数据符值的总数。通过以下两式把数据符值‰编码为Vwm与Vm一:V【)D【)=(VD—GsIJM)divTEvENVEvEN=(yD—GsuM)rood71EvEN例如:对数据符值917879进行编码。从表6可知,数据符的值在第3组范围内。因此(;w”一820064,7j。。。一6454,采用上面的公式:V()DD一(917879—820064)div6454=97815div6454—15VEvEN一(917879—820064)rood6454—97815mod6454—1005使用附录B中的算法.第3组中的数据符(见表6)的奇子集有9个模块.子集伉15是28个连续值(0~27)中的一个;偶子集有17个模块,子集值1005是6454个连续值(0~6453)中的一个。各奇数单元的宽度是{1212),各偶数单元的宽度是{1235123),从左到右给出数据符各单元的宽度为{1121315123)。6.2.3符号的值符号的值与左、右侧数据符值的关系见下式:VsYMBⅢ一(2013571×VD】EFT)+VbRl【,Hl式中;vsYMn-符号的值;v。。,和v。.。。——左侧和右侧数据符值。13 GB/T21335--2008通过以下两式将符号的值v。v一。编码为ymm和y一。一t:VDI.EFT—VsYMH)I,div2013571VDHIGHT—VsYMB()Lmod201357l左、右侧数据符的值结合在一起可以产生4054468172041个值,但只有4000000000000个值被使用,分成值为o~1999999999999和值为2015133531096~4015133531095的两组。这样分组是为了能由左侧数据符奇、偶子集的模块数目(反映左侧数据符值的范围)来确定是否存在二维部分,而不需要对右侧数据符译码的结果。独立的限定式RSS一14左侧数据符值的范围为0~993260,而在EAN·UCC复合码中,限定式RSS14左侧数据符值的范围为1000776~1994036。符号的值的第二组(值的范围为2015133531096~4015133531095),表明连接标志为⋯1’,即表示伴随限定式RSS有1个二维部分。原数据值则是从限定式RSS符号的值中减去2015133531096的结果,在0~1999999999999之间,与第一个数值组一致,构成了贸易项目代码的前13位。数值o~1999999999999表示14位的全球贸易项目代码的前13位数字,在这里包装指示符只有0和l两个可能的数值。隐含的模10校验码被计算出来,并加到传输数据的末端形成14位的全球贸易项目代码。应用标识符01被添加到传输数据中,跟在必须传输的码制标识符leO或]el之后。6.2.4校验符限定式RSS符号有一个校验符,它也是符号的定位符,位于左、右侧数据符之间。6.2.4.1校验符的结构校验符的模块组配结构为(18,7),对89(o~88)个数值进行编码。每个校验符包含9个模块组成的7个空和9个模块组成的7个条。在选择校验符图形时,去掉了这样的一些图形,这些14个单元组成的图形如果条空颜色互换和/或从左到右镜像反转会与其他图形相同。附录c列出了89个编码数值的校验符单元宽度。6.2.4.2校验符值的计算校验符的值等于数据符单元宽度加权的和模89运算的结果。计算公式如下:(Wl,lEl,I+w1,2E.2+⋯+W2,1E2.i+⋯+w2.¨E2.14)mod89式中:w。.。——数据符N中序号为M的单元的权(见表7);风.”——数据符N中单元M的宽度模块数;ww.”Ew.”——两者的乘积。表7中权的值是3的连续次幂模89运算的结果,按公式Ww.”=3”“”“mod89计算。表7校验符值计算的单元的权数t罟符单j己序号(M)数据符序号(N)1234567891011121314139278165175164144237226622060261854734l341339288474注:单元由左向右排序。附录F.2给出了一个限定式RSS符号的编码示例。6.2.5定位符定位符是通过14个单元的数据符宽度与】4个单元的校验符(即定位符)宽度之比26t18:26被识别的。此外,还可用校验符特有的有效空/条图形对条码符号进行识别。叮能出现在条码符号中的镜像反转和条空置换的校验符图形已经被删除。6.2.6参考译码算法条码识读系统设计成可在现行算法允许的范围内识读有缺陷的条码符号。本部分叙述了4 CB/T21335--2008GB/T14258中描述的用于检测符号质量的可译码度值计算中使用的参考译码算法。算法包括下列译码步骤:a)通过查找宽度比为(26土1.5):i8:(26士i.5)的3个14个单元的序列找到符号(土l,5的允许偏差是考虑到可能出现的扫描加速度的影响)。b)检查中间的序列是否为一个有效的定位符。利用下面步骤c)中的1)和2)来确定定位符的单元宽度,这时需把步骤c)的2)中与P相除的数由26改为18。单元宽度的查找见附录C的表。c)数据符译码如下:1)获得13个宽度的测量值:P、el、比、如、e4、e5、e6、P,、e8、e9、e】D、“1及P-2(见图9)。奇披奇教奇敬奇教奇数奇教奇救单元1幅敷单元2儡教单元3佴数单元4幅数单元5儡数单元6儡数单元7偶数,图9译码测量2)将测量值elm、e。、吼、邸m、P7椭确、‰、%及牝转换为表示整数模块宽度(E,)的标称值E、E2、E3、E。、E。、E6、E,、R、E、E。。、E--及E阳下面的方法用于E(i=1,2,⋯,11,12)的确定:如果1.5p/26≤e.<2.5p/26,则Ef=2;如果2.5p/26≤o<3.5p/Z6,则E,一3;如果3.5p/26≤e,<4.5p/26,则E.一4}如果4.5p/26≤☆<5.5p/26,则Ei;5}如果5.5p/26≤n<6.5p/26,则E。=6,如果6.5p/25≤所<7.5p/26,则Ei=7}如果7.5p/26≤e,<8.5p/26,则E,=8;如果8.5p/26≤自<9.5p/26,则E,一9。否则字符出错。3)从E值确定字符各单元的标称宽度。”(n一26)个模块中剩余的模块分配给最后一个单元,得出该单元的宽度,而不是从E值中计算出来。有效的单元宽度集合是没有单元宽度小于1个模块、并且至少有一个偶数单元是1个模块宽。例如。图9中值日~E。z的值为{3346435423),可能的单元宽度的集合是{I21312I4o212}、{21242123121)或{30315l3032030},其中只有14个单元宽度为{21242123121)的集合满足要求,因此被选作字符各单元的宽度。如果导出的单元宽度的集合都是无效的,那么字符出错。附录(;给出r这种单元宽度译码算法的C语言程序。4)采用附录B中的程序确定奇子集和偶子集的值。d)当两个数据符和定位符全部被译码之后,验证从定位符得到的模89的校验符值与数据符的单元宽度加权和模89运算的结果是否一致。15 GB/T21335--2008e)从两个数据符计算连接标志和贸易项目标识代码。f)考虑到具体的识读设备和设想中的应用环境,需对扫描加速度、绝对计时以及尺寸等进行其他的附加检查。7扩展式RSS条码符号的要求7.1扩展式RSS的基本特点扩展式RSS是一种可变长度的线性条码符号,它能将应用标识符(AI)单元数据串的多达74个的数字或41个的字母符号编码,内在地表现为1串二进制数字。在扫描器及应用软件附加了该码制的相应程序的前提下,扩展式RSS可用来对零售点及其他应用中使用的主要数据和补充数据进行编码。可以对多达22个段的扩展式RSS进行扫描及译码,然后重组,因此可以采用全向式扫描器进行扫描。图10为一个扩展式RSS条码符号的示例。m咖I图10表示数据(01)98898765432106(3202)012345(15)991231的扩展式RSS符号7.2扩展式RSS的符号结构7.2.1整体符号结构符号中的第1个符号字符是校验符,用来对校验和及符号长度(符号字符总数)进行编码,图11所给出的条码符号包含1个校验符和5个数据符。符号字符包括校验符和数据符。扩展式RSS符号被构建成为1种三元序列,每一序列都包含2个符号字符以及它们中间的定位符。如果存在奇数个符号字符,则最后1个符号字符后面接有1个定位符。编号为奇数的符号字符的单元排序从左至右,编号为偶数的符号字符的单元排序则从右至左。编号为1、2、5、6、9、10等的符号字符,第1个单元(即距离相邻定位符最远的那个单元)为空;编号为3、4、7、8、11、12等的符号字符,第1个单元为条。左右两边的保护符总是位于条码的起始及终止位置,或者位于层排式符号每一行的起始及终止位置。图11所示的有6个符号字符的扩展式RSS符号由11个区域组成(从左至右):a)左侧保护符:由1个模块空及1个模块条组成}b)校验符:由4个空及4个条共17模块组成,(”,k)一(17,4);c)定位符A1:由3个空及2个条共15个模块组成;d)数据符1:由4个条及4个空共17个模块组成,(”,^)一(17,4);e)数据符2:由4个条及4个空共17个模块组成,(”,k)一(17,4);f)定位符B2:由3个条及2个空共15个模块组成;g)数据符3:由4个空及4个条共17个模块组成,(”,女)一(17,4);h)数据符4:由4个空及4个条共17个模块组成,(”,k)一(17,4);i)定位符Bl:由3个空及2个条共15个模块组成;j)数据符5:由4个条及4个空共17个模块组成,(",女)一(17,4);k)右侧保护符:由1个模块的条及1个模块的空组成。图11所示的条码符号有67个单元,共151个模块。附录E.3列出了图11中所示扩展式RSS符号的全部67个单元。符号的最小高度为34x。16 ;划定位符A1数据符i(i7。4)数据符2(17.4)¨毪’_l。嚣,¨数据符4(17.4)定枉符GB/T21335--2008r注:图中箭头表示每个字符单元排序的方向。图11扩展式RSS符号结构示意图扩展式RSS不需要空白区。如果保护符外侧单元颜色与相邻的背景区域的颜色相同,那么第1个或最后1个单元会出现宽于i个模块的情况。注:扩展式RSS条码符号右侧保护符的形式不是固定的,根据位于最后的符号字符或定位符的条空组台模式,右侧保护符可能是1个模块的条加1个模块的空的形式,也可能是1个模块的空加1个模块的条的形式。7.2.2符号字符结构每个符号字符的模块组配为(”,^)结构。”伉为17,k值为4。编号为奇数的符号字符(校验符及偶数数据符)的单元从左至右排序,编号为偎数的符号字符(奇数数据符)的单元从右至左排序。因此符号字符单元朝着相邻的定位符排序,如图11中的箭头所示。每1个符号字符单元的集合均包含1个奇子集和1个偶子集。这里的奇和偶指的是每个子集中单元序号的奇、偶。每1个符号字符的奇子集由第1、第3、第5及第7单元组成,且以离定位符最远的单元开始排序。偶子集同样是从离相邻定位符最远的单元开始。第8单元(序号为偶数,位于内侧)与定位符相邻。7.2.3符号字符值对每个符号字符值,由1个算法给出奇子集和偶子集中各单元宽度的值(以模块为单位)组成的序列,需要为这个算法提供单元数量、模块数量、单元最大宽度以及子集中所有的单元是否都比1个模块宽等信息。附录B给出了用c语言程序实现的生成扩展式RSS符号字符单元的算法。有效的奇子集至少有1个单模块单元,而有效的偶子集则无须有i个单模块单元的限制。对奇数单元的上述限制保证了符号字符的各个边缘到相似边缘(条加空与空加条)有唯一的模块和。除上述限制外.第】个(离定位符最远的)奇数单元的宽度总是小于5个模块宽度。这种限制可避免在相邻的符号字符之间出现错误的定位符。表8描述了(17,4)子集的特征,列出了5组奇、偶子集对。奇子集含有偶数个模块,偶子集则含有奇数个模块。最宽的单元的宽度被规定下来,保证在一对相邻单元中的模块数之和不会超过9。在有限制要求的情况下,构成一个(17,4)符号字符的条空组合的模式共有4192种,能表示4192个值。表8符号字符(17,4)的特征前面各组所能表示的符奇/偶子集奇数/偶数奇子集值的总数偶子集值的总数符号字符值的范围组号字符值总数(Gsu”)模块数最宽单元(t儿]I))(TFvFK)0~347l0lZ/57/2874348~1387234810/75/452201388~2947313888/94/530522948~3987429486/113/6lO1043988~419l539884/131/81204:曲—■■■■■■_m^7■■■■■■■■■■■。■.■■■■.■■■■■l#●●■■■■■■■I GB/T21335--2008符号字符值v。与奇子集值和偶子集值的关系见下式:Vs=(V()DD×TEvEN)+VEvEN—卜GsLIM式中:1、sv。。——偶子集值的总数;VoDD——奇子集的值;Vzv。。一偶子集的值;Gw。——前面各组所能表示的符号字符值的总数。通过下面的两式把符号字符值Vs编码为Vmn和Vcvz一:Vt“】一(VsGsuM)divTEvENVEvEN一(Vs—GsuM)mod丁Ev£N例如:对一个值为3544的(17,4)符号字符进行编码,从表8可知,符号字符的值位于第4组内,因此G。um一2948,而R。。。一104,应用上面的公式:yunD=(3544—2948)div104—596div104—5VEvEN=(3544—2948)mod104—596mod104—76使用附录B中的算法,第4组中的数据符(见表8)的奇子集有6个模块,值5是10个连续值(o~9)中的一个}偶子集单元有11个模块,值76是104个连续值(0~103)中的一个。各奇数单元宽度是{1311),各偶数单元宽度是{4142),给出数据符各单元宽度为{1431412)。7.2.4符号的二进制值数据符值的范围从0~4095,每1个值都代表1个对符号值编码的12位二进制数。代表各个数据符值的二进制数链接成为编码的二进制数字串。第1个数据符(即第2个符号字符)包含最高阶二进制位。条码符号大小及相应二进制数字串的长度列于表9中。衰9条码符号大小对应的二进制窖■符号字符数数据符数编码的二进制位数43365448656076728784989610O108111012012111321312144】41315615】4168l6151801716192 表9(续)GB/T21335--2008符号字符数数据符数编码的二进制位数18l7204191821620】92282120240222l2527.2.5数据编码被编码成RSS符号的用户数据,总是由遵循GSl通用规范数据标准的应用标识符及数据字段组成,并被准确地格式化,与被编码成UCC/EAN一128条码符号时相同。对RSS符号进行编码时,应遵循GB/T15425标准中AI单元数据串的链接规则—一如:利用FNCl把可变长度单元数据串与其后的单元数据串分隔开。扩展式RSS的二进制数字串可被分成多达5个的二进制字段,所有扩展式RSS条码符号均要求具有前面的两个字段,以及其他3个字段中的1个或多个字段。这些字段分别是:a)二维部分连接标志字段(见7.2.5.1){b)编码方法字段(见7.2.5.2)}c)可变长度符号位字段(见7.2.5.3);d)压缩数据字段(见7,2.5.4)}e)通用数据压缩字段(见7.2.5.5)。这些二进制字段按顺序链接起来,并被编码成条码符号的二进制数字串,编码方法字段总是编码的第1个字段。固定长度的编码方法以压缩数据准确地充满条码符号特定的二进制数字串。可变长度的编码方法以可选的通用数据压缩字段跟接二进制填充位作为结束。填充位填满适当长度符号的二进制数字串中未被使用的二进制位。在本章中,用加双引号的相应二进制数来表示各个二进制字段。7.2.5.1二维部分连接标志字段这是1个用来指示扩展式RSS符号是否作为EAN·UCC复合码的一部分打印出来的标志位,标志字段值为⋯0’时表示扩展式RSS是单独的条码符号,为“1”时则表示扩展式RSS是EAN·UCC复合码的一维部分。7.2.5.2编码方法字段编码方法字段由1个或多个二进制位组成,位于二维部分连接标志字段之后。它定义条码符号是1种通用符号还是t种以面向应用的压缩数据字段(比如用来有效代表1个项目标识的A1单兀数据串的字段)开始的符号。编码方法字段定义于表10中。编码方法字段“1”用于对AI(01)主标识与附加信息的AI单元数据串进行编码。编码方法字段“Oo”用于对不使用AI(01)主标识的项目进行编码,它对4个或多个符号字符的可变长度符号进行定义。此时符号包含通用数据压缩字段,不包含压缩数据字段。编码方法字段“0100”及“0101”用于对可变质量项目的主标识及质量进行编码。而编码方法字段“0】】1000”~“01】1111”则用于对主标识、质量及4个A1单元数据串即AI(11)、AI(13)、AI(15)、AI(17)中的任何一个进行编码。编码方法字段“01100”及“01101”用于对主标识及价格进行编码。注:主标识指的是14位的全球贸易项目代码((;TIN), GB/T21335--2008表10缟码方法字段及其特点符号字符的数目压缩数据字段长度是否跟接编码方法字段AI单元数据串(个)(二进制位)通用数据压缩字段15~2244是(01)+其他AI数据串oo4~22无是任何AI数据串oi00固定长度655否(01)与(3103)0101固定长度655否(01)+(3202)或(01)+(3203)011006~2242是(01)+(392x)0110l7~2252是(01)+(393x)0111000固定长度876否(01)+(310x)+(11)0111001固定长度876否(01)+(320x)+(11)0111010固定长度876否(01)+(310x)+(13)01110】1固定长度876否(01)+(330x)+<13)0111100固定长度876否(01)+(310x)+(15)Ollllol固定长度876否(01)+(320x)+(15)011】110固定长度876否(01)+(310x)+(17)01】1111固定长度876否(01)+(320』)+(17)7.2.5.3可变长度符号位宇段这种字段只出现在可变长度符号中,并出现在编码方法字段“1”、“oo”、“01100”及“01101”之后。此字段包含两个二进制位,第1位指示条码符号中含有的符号字符个数的奇偶,符号字符的个数为偶数时为⋯0’,为奇数时为⋯1’。第2位指示条码符号的大小,条码符号中的符号字符数小于或等于14时为⋯0’,大于14时为“1”。这两个位连同定位符集,为在校验符中所定义的符号字符数提供了一种双重校验(参见7.2.6)。7.2。5.4压缩数据字段可根据具体的编码方法字段来对这一字段中的二迸制数据进行解释。除编码方法字段“00”外的所有符号均包含有一个压缩数据宇段。7.2.5.4.1编码方法字段“1”——通用项目标识数据如果AI(01)单元数据串出现在被编码数据信息的起始位置,则可采用此编码方法字段。从项目标识AI(01)单元数据串中去掉前两个十进制数字01和末尾的校验码,余下的13个十进制数字分成5个组,编码成一个44个二进制位的压缩数据字段。这5个组分别由1、3、3、3、3个十进制数字组成,并被编码为4、10、10、10、10个二进制位。采用直接把十进制转换为二进制的方法对5组数据进行编码,其他的附加AI数据作为通用数据压缩字段被编码在44位压缩数据字段之后。译码器通过将这44个二进制位分为4、10、lo、lo、lo个二进制位的5个组,并将其分别转换,形成13个十进制数字,对压缩数据字段的数据进行重构,并在重构的十进制数字前面增加两位数字01作为AI前缀,同时在这个AI单元数据串末尾增加计算出的模10校验码,然后对二进制数字串中剩余的通用数据压缩字段部分进行译码。举例说明编码方法字段“1”:X十(01)00012345678905(i0)ABCl23进行编码,实际上只需要将粗体数字部分编码成压缩数据字段,而将AI(10)及批号ABCl23编码成通用数据压缩字段.并直接附在44个二进制位的压缩数据字段后面。译码器将传输]e0010001234567890510ABCl23。编码方法字段⋯1’对含有通用数据压缩字段的5个或多个符号字符的可变长度符号进千亍了定义。20 GB/T21335--20087.2.5.4.2编码方法宇段“0100”——可变质量项目(增量为0.001kg)当被编码的数据信息只含有两个A1单元数据串——AI(01)后接AI(3103)时,可采用此编码方法字段。Al(01)项目标识单元数据串必须具有包装指示符数字9。AI(3103)可变质量单元数据串指定的质量不能超过32.767kg。这两个AI单元数据串分别被压缩成40位二进制数和15位二进制数,总的压缩数据字段长度则为55个二进制位。编码方法字段“0100”用于不含有通用数据压缩字段的、具有6个符号字符的固定长度条码符号的编码。在对这两个AI单元数据串进行编码时,先从AI(0])单元数据串中去掉前3个数字019及末尾的校验码,其余的12个数字在40个二进制位中编码成压缩数据,分为4组,每组3个数字被编码为10位二进制数;再从AI(3103)单元数据串中去掉前4个数字3103,然后将余下的介于000000~032767之间的6位数字编码成15位二进制数的压缩数据,这样形成总长度为55个二进制位的压缩数据字段。译码时,译码器将前40位二进制数分4个组(每组10位二进制数)译码成12个十进制数字(每组三个数),在这12个数字前面增加前缀019;后面增加计算出的模10校验码,成为第一个AI单元数据串。再将余下的15位二进制数转换为十进制数,并在得出的数字前填充0以形成6位数字,最后将AI前缀“3103”添加到译码得出的6位数字前,形成数据信息的第二个AI单元数据串。举例说明编码方法字段“0100”,对(01)90012345678908(3103)001750进行编码,实际上只将粗体数字编码成压缩数据字段。译码器将传输le001900123456789083103001750。7.2.5.4.3编码方法字段“0101”——可变质量项目(增量为0.004536kg(0.01ib)或0.0004536kg(0.001lb))当被编码的数据信息只含有两个AI单元数据串——AI(01)后跟AI(3202)或AI(3203)时,可使用此编码方法字段。AI(01)项目标识单元数据串必须具有包装指示符数字9,AI(3202)可变质量单元数据串指定的质量不能超过45.36kg(99.99lb),而AI(3203)可变质量单元数据串指定的质量不能超过10.327kg(22.767lb)。两个AI单元数据串分别被压缩成40位二进制数和15位二进制数,总的压缩数据字段长度则为55个二进制位。编码方法字段“0101”用于不含有通用数据压缩字段的、具有6个符号字符的固定长度条码符号的编码。在对两个AI单元数据串进行编码时,先从AI(01)单元数据串中去掉前3个数字019及末尾的校验码。其余的12个数字在40个二进制位的压缩数据字段中进行编码,分为4组,每组3个数字被编码为lo个二进制位。从质量单元数据串中去掉前4位AI数字。对于AI(3202),将余下的介于0~009999之间的6个数字编码成15位二进制数,添加到压缩数据字段中;对于AI(3203),将余下的介于0~022767之间的6个数加上10000后编码成15位二进制数,添加到压缩数据字段中。译码时,译码器将前40位二进制数分4个组(每组10位二进制数)译码成12个十进制数(每组3个数),在这12个数字前面增加前缀019;后面增加计算出的模10校验码,成为第一个AI单元数据串。再将余下的15位二进制数转换为十进制数值。如果该数值小于10000,则将其转换成6位数字.并在其前面加上3202作为AI前缀,形成数据报文的AI单元数据串;否则,从该数值中减去i0000,再在得出的数字前填充0以形成6位数字,AI前缀3203添加到6位数字前,形成数据报文的第2个AI单元数据串。举例说明编码方法字段“0101”,对(01)90012345678908(3202)000]56进行编码,实际t只将粗体数字部分编码成压缩数据字段。译码器将传输]e001900123456789083202000156。7.2.5.4.4编码方法字段“0111000”一“0111111”——可变质量贸易项目加日期这些编码方法字段可在被编码的数据信息包含2个或3个AI单元数据串,即AI(01)、AI(3lOx)或AI(320x)(z从0~9)、以及AI(11)或AI(13)或AI(15)或AI(17)中的任何一个的情况下使用。AI(01)项目标识单元数据串必须具有包装指示符数字⋯9’,可变质量AI单元数据串可以是0~099999之间的任意值。编码方法字段“01i1000”~“011illl”用于不含有通用数据压缩字段的、具有8个符号字符的固定长度条码符号的编码。21 GB/T21335--2008对可变质量产品及日期进行编码的八种方法:1.用编码方法字段“0111000”定义A1(01)+AI(310x)+AI(11),附加信息为公制质量及生产日期;2.用编码方法字段“0111001”定义AI(01)+AI(320x)+AI(11),附加信息为英制质最及生产El期;3.用编码方法字段“0111010”定义AI(01)+AI(310x)+A1(13),附加信息为公制质量及包装日期;4.用编码方法字段“0111011”定义AI(01)+AI(320x)+AI(13),附加信息为英制质量及包装日期;5.用编码方法字段“0111100”定义AI(01)+AI(310x)+AI(15),附加信息为公制质量及保质期;6.用编码方法字段“0111101.’定义AI(01)+Al(320x)+AI(15),附加信息为英制质量及保质期;7.用编码方法字段“0111110”定义Al(01)+AI(310x)+AI(17),附加信息为公制质量及有效期}8.用编码方法字段“011111l”定义AI(01)+AI(320x)+AI(17),附加信息为英制质鼍及有效期。3个AI单元数据串被压缩成76个二进制位的压缩数据字段,其中,项目标识为40个二进制位,质量标识为20个二进制位,Et期为16个二进制位。在对这3个AI单元数据串进行编码时,先从AI(01)单元数据串中去掉前3个数字019及末尾的校验码,其余的12个数字在40个二进制位的压缩数据字段中进行编码,分为4组,每组3个数字被编码为10个二进制位。再从质量单元数据串中去掉前3个数字310或320,然后从余下的7个数字的AI单元数据串数据中将第2个数字(一个o)去掉,形成6个数字。这6个数字由最后】位AI数字及后5位质量数字组成,将其编码成20个二进制位并添加到压缩数据字段中。16个二进制位的El期压缩数据是去掉AI(11、13、15或17)两位AI标识符,剩下的6位“YYMMDD(年月日)”数字按下式转换成值在0~38399之间的16位二进制压缩数据,再添加到压缩数据字段中。(YY×384)+((MM一1)×32)+(DD)在16个二进制位子字段中的值38400,用来指示没有日期宇段被编码。当需要对编码方法字段“0100”或“0101”不支持的质量值编码时,可选择这种方式来对贸易项目标识与质量值编码。译码时.译码器将前40位二进制数分4个组(每组lo位二进制数)译码成12个十进制数(每组3个数),在这12个数的前面增加前缀“019”,后面增加计算出的模10校验码,成为第1个A1单元数据串。再将其余的20位二进制数转换成6位十进制数字,并在第1个数字后面插入一个0以形成7位数字,再在这7位数字前面加上310哉320作为AI前缀,形成数据报文的第2个AI单元数据串;最后将剩下的16位二进制数转换成十进制数值,如果这最后16位的值为38400,则不再对其他数据进行译码。、如果对日期进行了编码,译码器将根据上述公式提取6位日期数字,并由译码器根据编码方法字段的定义添加一个相应的应用标识符AI(11、13、15或17)前缀,再将这8位数字作为第3个A1单元数据串添加到译码报文中。举例说明编码方法字段“0111000”,对(01)90012345678908(3103)012233(15)991231进行编码,实际上只将粗体数字编码成压缩数据字段。译码器将传输]e00l90012345678908310301223315991231。7.2.5.4.5编码方法字段“01100”——变量贸易项目及应付款金额此编码方法字段可在被编码的数据信息以两个AI单元数据串AI(01)跟接AI(392x)开始的情况下使用。AI(01)项目标识单元数据串必须具有包装指示符数字9,AI(392x)中表示小数点位置的数字z,其值只能为0、1、2或3。AI(01)单元数据串被压缩成40位二进制数,而AI(392x)中表示小数点位置的数字z被编码成两位二进制数。然后用数字编码模式将价格数字编码。放在通用数据压缩字段中。利用通用数据压缩字段编码方法可对任何附加的AI单元数据串进行编码。在对上述两个AI单元数据串进行编码时,先从AI(01)单元数据串中去掉前3个数字019及末尾,2 GB/T21335--2008的校验码。其余的12个数字在40个二进制位中编码成压缩数据,分为4组,每组3个数字被编码为10个二进制位;再从Al(392x)单元数据串中去掉前3个AI数字392,对表示小数点位置的数字(允许值为0~3)直接编码成后2个二进制位,这样形成总长度为42个二进制位的压缩数据字段。位于表示小数点位置的数字后面的数据用数字编码模式编码成通用数据压缩字段。译码时,译码器将前40位二进制数分4个组(每组10位二进制数)译码成12个十进制数(每组3个数),在这I2个数的前面增加前缀019}后面增加计算出的模10校验码,成为第一个Al单元数据串。添加3位Al数字392,其后跟被编码成2个二进制位的表示小数点位置的十进制数字,最后将剩余的通用数据压缩字段部分译码。举例说明编码方法字段“01100”,对(01)90012345678908(3922)795进行编码,实际上只将粗体数字编码成压缩数据字段,译码器将传输le001900123456789083922795。7.2。5。4.6编码方法字段“01101”——变量贸易项目殛带有1SO货币代码的应付款金额此编码方法字段可在被编码的数据信息以两个Al单元数据串——AI(01)跟接AI(393x)开始的情况下使用。AI(01)项目标识单元数据串必须具有包装指示符数字9,AI(393x)中表示小数点位置的数字z,其值只能为0、1、2或3。AI(01)单元数据串被压缩成40位二进制数,而AI(393x)中表示小数点位置的数字z被编码成2位二进制数。3位数字的ISO货币码被编码成10位二进制数。然后再用数字编码模式将价格数字编码,放在通用数据压缩字段中。在对上述两个AJ单元数据串进行编码时.先从AI(01)单元数据串中去掉前3个数字“019”及末尾的校验码,其余的12个数字在40个二迸制位中编码成压缩数据,分为4组,每组3个数字lo个二进制位;再从Al(393x)单元数据串中去掉前3个AI数字393,接下来的表示小数点位置的数z(允许值为d~3)直接编码成后面的2位二进制数;再将后3位ISO货币代码直接编成为后10位二进制数,这样形成总长度为52个二进制位的压缩数据字段。然后再用数字编码模式将3位Is()货币代码后面的数据编码,放在通用数据压缩字段中。译码时,译码器将前40位二进制数分成4个组(每组10位二进制数)泽码成12个十进制数(每组3个数),在这]2个数的前面增加前缀“019”;后面增加计算出的模10校验码,成为第一个AI单元数据串。添加3位AI数字393,其后跟被编码成两个二进制位的表示小数点位置的数字,并将其后的10位二进制数直接译码成3位数字的ISO货币码,最后将剩余的通用数据压缩宇段部分译码。举例说明编码方法字段“01101”.对(01)90012345678908(3932)0401234进行编码,实际上只将黑体数字编码成压缩数据字段。译码器将传输]e0019001234567890839320401234。7.2.5.5通用数据压缩字段通用数据压缩字段采用3种不同编码模式的组合将AI单元数据串编码成二进制数字串:a)数字编码模式用来对数字及FNCI字符进行编码.每2个字符要求用7位二迸制位编码;b)字母数字编码模式用来对数字及大写字母混合的字符进行编码,每一数字或FNCl字符要求用5位二进制位编码,每一字母要求用6位二进制位编码;c)“GB/T1988”编码模式用来对英文大小写字母、数字及大多数标点符号进行编码,每一数字、字母及标点符号分别要求用5、7、8位二进制位编码。除那些需用特定压缩数据编码方法来进行编码的AI单元数据串外,通用数据压缩字段可对各种AI单元数据串进行编码。通用数据压缩字段是可变长度条码符号的最后字段。一旦利用通用数据压缩字段编码方法对全部数据进行了处理,通用数据的编码过程将以7,2.5.5.4中所描述的填充步骤结束。7.2.5.5.1数字编码模式数字编码模式是一种默认的编码模式,在通用数据压缩字段编码的开始就有效。它将两位数字或一位数字与一个FNCl字符的组合按各自的顺序编码在7位二进制数中。这7位二进制数的值的计算公式如下:23 GB/T21335--2008value=(11×D1)+Dz+8其中D。、D2为数字值或FNCl字符的值(FNCl被赋值为10)。这些7位二进制数“0001000”~“111111l”相应的数值范围为8~127(两个FNCl字符不能被编码成7位二进制数)。位于通用数据压缩字段的开头或者位于前一个7位二进制位的数字编码之后的由4个⋯0’组成的二进制序列“0000”(即字母数字锁定码),发出一个锁定或转变到字母数字编码模式的信号(见表11)。衰11数字编码模式字符编码的二进制数字数字一数字、数字一FNCI以及FNCI一数字对0001000~¨“111字母数字锁定码0000数字编码模式持续地对数据的字符对进行编码,直到满足下列条件之一为止:a)如果剩下两个或多个字符,且不能用数字编码,则将1个字母数字锁定码编人数据压缩字段中。b)如果还剩下1个非数字的字符,则将1个字母数字锁定码编进数据压缩字段中。c)如果还剩下1个数字的字符,则首先计算当前二进制数字串编码所需的条码符号大小,然后再加大未使用位数,使得总位数为12的偶数倍。1)如果未使用位数大于或等于7位.则将数字及1个FNCl填充字编码进下1个7位中。该FNCl字将作为填充字,识读器不对其进行译码;2)如果未使用位数为4~6位,则将数字值加上1后再将其编码进下一个4位中}3)否则,使用更大的符号,将数字及FNCl填充字编码到下一个7位中,该FNCl字将作为填充字,识读器不对其进行译码;采用7.2.5.5.4中所描述的填充步骤对未使用位进行编码。d)已不剩任何字符,根据7.2。5.5。4中所描述的填充步骤对任何剩下的位进行编码。只要字母数字锁定码被编码,编码模式即行转变以响应该锁定码。如果数据的下1个字符需要“GB/T1988”编码模式,则在字母数字锁定码之后编人1个“GB/T1988”锁定码。在译码时,当数字压缩在条码符号的末端有效时,必须进行以下特殊检查:a)如果紧靠填充序列前面的最后7位二进制位数字编码是1个后接FNCl字符的数字时,则忽略该FNCl字符。b)如果在条码符号中仅剩的二进制位为4~6位时,数字编码仍有效,则将剩下位数中的前4位的二进制数字串转换为十进制值。1)如果此值为0,则数据信息结束;2)否则,它将被译码,将该十进制值减去1的结果作为数据信息的最后1位数据。7.2.5.5.2字母数字编码模式字母数字编码模式对数字、FNcl/数字锁定码、大写字母、5个标点符号和两个锁定码字符进行编码。字符的编码二进制位数字串不具有固定的位长,根据每一被编码字符的位长分配位数,字符被编码成3~6个二进制位不等,如表12所示。24 表12字母数字编码模式GB/T21335--2008字符ASCII值编码的值编码的二进制数字o~948~57ASCII值减去43(5位二进制数)00101~011lOFNCl/数字锁定码15(5位二进制数)01111A~Z65~90ASCII值减去33(6位二进制数)100000~111001*(星号)4258(6位二进制数)111010,(逗号)4459(6位二进制数)lllOll一(减号或连字符)4560(6位二进制数)111100.(句号)4661(6位=进制数)111101/(斜线或斜杠)4762(6位二进制数)111110数字锁定码0(3位二进制数)000“GB/T1988”锁定码4(5位二进制数)00100通过把每一个字符的编码二进制数字添加到通用数据压缩字段中来对数据编码。下列情况除外:a)如果数据的下一个字符是FNCl,则用字母数字编码模式将其编码;b)如果数据的下一个字符只能用“GB/T1988”编码模式来进行编码,则将一个“GB/T1988”锁定码编码到通用数据压缩字段中;c)如果数据后续的6个字符可以用数字编码模式来进行编码,则将一个数字锁定码编码到通用数据压缩字段中;d)如果数据后续的4个或5个字符可以用数字编码模式来进行编码,并且位于数据字符串的末端,则将一个数字锁定码编码到通用数据压缩字段中。只要锁定码被编码,编码模式即行转变以响应该锁定码。译码时,通过首先检查紧随前面已经译码字符后字段中的前1位或前3位即字段的开头,对已编码的二进制位字段进行译码。a)如果第1位为⋯1,则将下一个字符作为一个6二进制位的字符进行译码;b)如果前3位为“000”,则它是一个数字锁定码;c)否则,将下一个字符作为一个5二进制位的字符进行译码。7.2.5.5.3“GB/T1988”编码模式此模式用于对扩展式RSS条码表示的GB/T1988规定的信息交换用七位编码字符集中的数字、大小写字母、21个标点符号,以及FNCl字符和两个锁定码字符进行编码。字符的编码二进制数字串不具有固定的位长,根据每一个被编码字符的位长来分配位数。字符被编码成3~8位,如表13所示。表13“GB/T1988”编码模式字符ASCII值编码的值编码的二进制数字0~948~57ASCII值减去43(5位二进制数)00101~01110FNCl/数字锁定码15(5位二进制数)01lllA~Z65~90ASCII值减去1(7位二进制数)1000000~101100197~122ASCII值减去7(7位二进制数)1011010~11100111(惊叹号)33232(8位二进制数)11】O1000”(双引号)34233(8位二进制数)lllOl00l%(百分比号)37234(8位二进制数)111010lO GB/T21335--2008袭13(续)字符ASCII值编码的值编码的二进制数字8L(与号)38235(8位二进制数)11101011’(单引号)39236(8位二进制数)11101100((左圆括号)40237(8位二进制数)llloll01)(右圆括号)41238(8位二进制数)11101110*(星号)42239(8位二进制数)1110111l+(加号)43240(8位二进制数)llll0000,(逗号)4424l(8位二进制数)11110001一(减号或连字符)45242(8位二进制数)11110010.(句号)46243(8位二进制数)l】l100】1/(斜线或斜杠)47244(8位=进制数)11110100:(冒号)58245(8位二进制数)1l】10101}(分号)59246(8位二进制数)1lllOllo<(小于号)60247(8位二进制数)11110111=(等号)61248(8位二进制数)11111000>(大于号)62249(8位二进制数)1llll00l?(问号)63250(8位二进制数)11111010一(下划线或低线)95251(8位二进制数)11111011空格32252(8位二进制数)11111100——数字锁定码0(3位=进制数)000字母数字锁定码4(5位二进制数)00100通过把每1个字符的编码二进制数字添加到通用数据压缩字段中来对数据编码。下列情况除外:a)如果数据的下一个字符是FNCl,则采用“GB/T1988”编码模式对其编码;b)如果数据接下来的4个字符可以用数字编码模式进行编码,且后续的10个字符可以不采用“GB/T1988”编码模式进行编码,则将一个数字锁定码编码进通用数据压缩字段中;c)如果接下来的5个数据符可以用字母数字编码模式进行编码,且后续的10个字符可以不采用“GB/T1988”编码模式进行编码,则将一个字母数字锁定码编码进通用数据压缩宇段中。作为上述各个情况的例外,如果数据以少于10个字符结束,则先在数据末端完成10个字符的测试。如果锁定码被编码,编码模式即行转变以响应该锁定码。译码时,通过首先检查紧随前面已经译码字符后字段中的前3位或前5位即字段的开头,对已编码的二进制位字段进行译码。a)如果前3位为“000”,则它是一个数字锁定码;b)否则,得出前5位二进制数的十进制值,如果该值:1)小于或等于15,则将下一个字符作为1个5位二进制位的宁符译码;2)在16~28之间,则将下一个字符作为1个7位二进制位的宁符译码;3)大于或等于29,则将下一个字符作为1个8位二进制位的字符译码。7.2.5.5.4用于通用数据压缩字段的填充位条码符号中的符号字符数,应为对该符号表示的数据进行编码所需的最小值。但是,在数据被编码 GB/T21335--2008到通用数据压缩字段中后,可能会存在一些未使用的二进制位,这些值将用填充序列来填充直到符号的数据容量被填满为止。填充位串通过重复5位的填充序列“00100”而产生,此序列既是字母数字编码模式中的“GB/T1988”锁定码,又是“GB/T1988”编码模式中的字母数字锁定码,因此对于编码模式及锁定码的转换,咒需编码更多的数据。如果没有足够的未使用位留在符号中,则可将最后~个填充序列舍去。如果数据编码以数字编码结束,则在交替更换的“00100”锁定码/填充序列之前要求有一个4位的字母数字锁定码“0000”。例如,如果编码以数字编码结束.同时还留有7个末使用位,则它们将被编码成“0000001”,也就是在字母数字锁定码“0000”之后接上GB/T1988模式锁定码“001oo”的前3位“001”。如果要填充的位少于4个末使用位,则第一个4位的锁定码本身将被缩短。7.2.6校验符扩展式RSS符号中的第一个符号字符为校验符,它对符号跃度(符号字符总数)及数据符单元宽度加权的“校验和”进行编码。只有前面的4009个校验符值(o~4008)被用到。符号中的符号字符数S(4~22)及校验和的值被编码到校验符中,即:校验符值一211×(S一4)+校验和的值,其中,s为符号字符数。校验和的值等于条码符号中所有的数据符单元宽度加权和的模211运算的结果。加权的模211校验和的值由下式计算:(W1.1F1.1+Ⅳ1.2El,2+⋯+W1.eEl.8+⋯+Ⅳ州E.8)mod211式中:ww.”——在表14中的标号为N的数据符中序号为M的单元的权;EN,M--"一标号为N的数据符中M单元的宽度模块数;ww.”E~.”——两者的乘积l下标z——条码符号中标号最大的数据符的标号。表14中的权是3的连续次幂模2Il运算的结果,用公式Ww.”=3”““9mod2Il计算。注:数据符的标号与数据符的序号是不同的。校验和值的计算中出现的数据符标号是实际的条码符号中所有数姑符的标号,它们的出现不一定是连续的,而是根据条码符号中符号字符的个数,由表16中的序列决定的。附录F.3给出了一个扩展式RSS符号的编码示例。裹14横211校验和计算的数据符单元的权数据符数据符单]己序号(M)与定位符标号(N)l23678位置关系A1右1l39278l329677A2左2206018011814372163A2右31891451339117140209205B1左4】9315749147l95717l91H1右56218613619716985441X2B2左618513318814241236108B2右7li3】281739780298750c1左8150288441l23l5852156C1右946138203187l39206196l66C2左1076175115337111122l55C2右】1431291761061071】0119146 GB/T2133,5--2008表14(续)数据符数据符单j己序号(M)与定位符标号(N)123678位置关系D1左12164814410309059177D1右13109116137200178112125164D2左1470210208202184130179115D2右1513419l151319368204190E1左161482266198172947l2E1右17618541626419215440E2左1812014925751442126167E2右197926782369207199175Fl左2010398833811413l182124Fl右21161611831271708853159F2左22551657382472515F2右23451351941605817410089注1:N为数据符的标号,例如“cl右”是指定位符cl右边的数据符.标号为9。注2:定位符A1左边的符号字符是校验符而不是数据符,校验符不进行单元加权。7.2.7定位符扩展式RSS条码符号有12个唯一的定位符,这些定位符位于符号字符对之间。由于定位符与符号字符相邻,可以对条码符号的由符号字符与相邻定位符组成的段分段进行扫描和译码。如果条码符号中含有奇数个符号字符,则符号以最后一个定位符及右侧保护符结束。在这种情况下,最后一个定位符位于最后一个数据符的右边,并与其相邻。这12个定位符是基于六个从A至F的基本图形,每一基本图形都具有两种形式(形式1和形式2)。形式1图形的单元1是最左侧的空,而在形式2图形中相对应的单元是最右侧的条。这种条空的倒转可用来区分两种形式的图形。12个定位符分别为A1、A2、B1、B2、C1、C2、D1、D2、E1、E2、F1及F2。采用形式1图形的定位符最左侧的空作为单元1,而采用形式2图形的定位符则是将形式l图形从左至右镜像并且条空转换得到的图形。表15列出了-这6个基本图形各单元的宽度。每一个定位符都由5个单元组成,共15个模块。“形式1”的定位符中的单元2及单元3中的模块之和为10~12,而单元4及单元5中的模块之和均为2。宽单元对(单元2和单元3)与从第2至第5这4个单元的总宽度之比介于10:12~12:14之间,这也是定位符逻辑识别的第1步的基础。同样,“形式2”的定位符则是将第1~第4这4个单元的总宽度与宽单元对(单元3和单元4)的宽度进行比较。表15定位符的单元宽度基本图形单元宽度(单元1为空)基本图形单元宽度(单元l为条)(形式1)单元1单元2单元3单元4单元5(形式2)单元1单元2单元3单元4单元5A11841A2l1481B1364]1BZ1463C13461C21643D1328l1D2l823E12651E21562Fl29lF2192 GB/T21335--2008定位符以10种依据符号长度分配的唯一的集合方式来在符号中使用(见表16)。这些集合被分成两个组,在每一组中,每一集合至少有一个唯一的定位符子集,以将其与组中的其他集合区分开。这种集合的选择可避免由错误译码的校验符引起的误读而得出错误的符号长度。寰16定位符序列条码符号中定位符顺序段的数目,jzf。j。fss},IsI。ft。fz,组l4A1A25或6AlB2Bl7或8A1C2B1D29或10A1E2B1D2C111或12A1E2BlD2D1F213或14A1E2B1D2E1F2F1组215或16A1A2B1B2ClC2D1D217或18A1A2B1B2C1C2D1E2E119或20A1A2BlB2C1C2D1E2FIF221或22A1A2B1B2ClC2DlE2E1F2F17.2.8层排扩展式RSS层排扩展式RSS可以排列为2行~11行+每一行为34X高,行与行之间有一个3X高的层分隔符。图12给出了一个两行符号的示例,图12中符号表示的数据与图10中符号表示的数据相同,以便于进行比较。当符号可用区域或印制装置的宽度不足以容纳整个单行的符号时,使用层排扩展式RSS。图12衰示数据(01)98898765432106(3202)012345(15)991231的层排扩展式RSS符号层排扩展式RSS符号的行应按从上到下的顺序进行排序。除最后一行外,符号每行中的符号字符数均应为偶数。最后一行最少应含有两个带额外填充(如果需要)的符号字符。当层排扩展式RSS符号是EAN·UCC复合码的一个线性部分时,符号中的第一行最少应具有4个符号字符,二维部分应打印在符号第一行的上面。在每行中,符号字符对之间都有一个定位符,且每行都具有各2个单元的左、右保护符。最后一行可以含有奇数个符号字符,此时最后一个定位符紧靠最右边的保护符。除最底行以外,第一行及其后的奇数行将以空开始,而第二行及其以后的偶数行则将以条开始,参29 GB/T21335—2008见图13。如果每行含有偶数个段对(如2、4个对,也就是4、8个段等),则将以倒转的单元次序来打印偶数行,也就是作为一个镜像来打印,保证偶数行以条开始的。如果每行含有奇数个段对(如1、3、5个对,也就是2、6、10个段等),则偶数行将自动以条开始。表17列出了这些倒转行。表17层排扩展式RSS中的倒转行行中包含自々段的数目行序号2468lO12141618201F2FRFRFRFRFR3F4FRF5F6FR7F8F9F】oF】lF注;⋯F为正常顺序的行,“R”为倒转行,。一”表示不可能出现的情况。使用一种由3个1X高的行组成的3X高的层分隔符来分隔层排扩展式RSS条码符号的行。层分隔符各行的前’4个和最后4个模块总是空。除了“形式1”的定位符的第1、第2、第3单元和“形式2”的定位符的第3、第4、第5单元之下的各13个模块之外,层分隔符第一行的单元是由相邻的符号上面行条/空颜色的互补色形成的。上述各13个模块,在相邻定位符的条之下的是浅色,在相邻定位符的空之下的是以深色开始的深浅交替的形式。除了层分隔符行的两端的各4个模块之外,层分隔符的第二行由交替的条空模块组成。除了“形式1”的定位符的第1、第2、第3单元和“形式2”的定位符的第3、第4、第5单元之上的各13个模块之外,层分隔符第三行的单元是由相邻的符号下面行条/空颜色的互补色形成的。上述各13个模块,在相邻定位符的条之上的是浅色,在相邻定位符的空之上的是以深色开始的深浅交替的形式。图12所示的层排扩展式RSS符号有8个符号字符,层排为两行,每一行有4个符号字符。第~行由前4个符号字符组成,并在右边增加有一个1x的空及1X的条的保护符。而第二行则打印为一个镜像图案,它从左边开始,打印的是后4个符号字符的镜像图案.并附加一个1X的条及1X的卒的保护符。图12中示例的符号的整体尺寸为102X宽、7lx高。对于行倒转的要求有一个例外,如果最后一行应从左至右进行镜像,但它又是一个含有奇数个定位符的不完全宽度行,则将其向右偏移一个模块并在行的左边增加一个“浅”模块。这是一个必要的措施,因为含有奇数个定位符的某些行拥有对称的保护条,而它在倒转后的图形将与倒转前一样,图13给出了一个要求将最后一行进行偏移的层排扩展式RSS的例子。 吼删IGB/T21335--2008圈13表示数据(0I)95012345678903(3103)000123的层排扩展式RSS条码符号7.2,9参考译码算法条码识读系统设计成在现行算法允许的范围内识读有缺陷的条码符号。这部分叙述了(;B/T14258中描述的用于检测符号质量的可译码度值计算中使用的参考译码算法。算法包括下列译码步骤:a)通过从左到右和从右到左寻找一段4个单元的序列并计算其中相应单元宽度的比,找到符号:1)从左到右:9.5z12≤(单元l+单元2)t(单元1+单元2+单元3+单元4)≤12.5:142)从右到左一9.5:12≤(单元3+单元4)l(单元1+单元2+单元3+单元4)≤12.5:14注:上面的单元1、单元2、单元3、单元4的序号是一段4个单元的序列中的单元序号,顺着扫描方向排序.它们与定位符中单元的序号是不同的.通过上述1)或2)比率的确定可识别出“形式1"的定位符的第2个~第5个单元。采用同样的方法可识别出“形式2”的定位符的第1个~第4个单元,但要将上面I)中的“从左到右”改为“从右到左”;将上面2)中的“从右到左”改为“从左到右”。使用步骤b)中的方法对定位符进行译码,利用“形式1”定位符前4个单元或“形式2”定位符后4个单元的宽度和(多),以找到标称的相似边缘闻距数值日和丘,因为定位符前或定位符后4个单元的宽度和(户)的模块总数为14,此时需将步骤b)2)中与P相除的数由17改为14。验证数值E1和F:是否符合有效的扩展式RSS的定位符。b)检查每一相邻的符号字符与定位符间距之间有效比值是否为(】7±1.5);15,然后每一符号字符按下列步骤译码:1)获得7个宽度的测量值P、F。、&、氏、e4、☆和如(图14)。篓z睇!:嚣魏臻。嚣。图14译码测量注:上图表示左起条单元为第一个单元,但数据符也可以是上圉从左到右镜像或条空反转的形式。2)将测量值e。他、如⋯e如和e。转换为表示整数模块宽度(E,)的标称值F1、B、E、F;、E3I GB/T21335--2008和E。。下面的方法用于E。(i一1,2,⋯,5,6)的确定:如果1.5p/17≤P。<2.5p/17,那么E.一2;如果2.5i,/17≤P,<3.5p/17,那么E,一3;如果3.5p/17≤e,<4.5p/17,那么E,一4;如果4.5t,/17≤P。<5.5p/17,那么E,一5;如果5.5p/17≤e,<6.5p/17,那么E。一6;如果6.5p/17≤P。<7.5p/17,那么E。一7;如果7.5p/17≤e,<8.5p/17,那么E,一8;如果8.5p/17≤毋<9.5p/17,那么E,一9。否则字符出错。3)从E值确定符号字符各单元的标称宽度。H("一17)个模块中剩余的模块分配给最后一个单元,得出该单元的宽度。而不是从E值中计算出来。有效的单元宽度集合是没有单元宽度小于一个模块、并且至少有一个偶数单元是一个模块宽。例如:图14中tE-~E的值是{426733)。可能的单元宽度的集合是{22061213)(注意不应有0宽度单元)、{3152122)或{40243031),其中只有8个单元宽度为{3152122)的集合满足要求,因此被选作字符各单元的宽度。如果导出的单元宽度的集合都是无效的,那么字符出错。附录G给出了单元宽度译码算法的c语言程序。4)采用附录B中的程序确定奇子集和偶子集的值。5)从奇子集和偶子集数值计算数据符的值。6)查看表15表示的图形,用上述从E值确定标称单元宽度的方法对定位符译码。7)计算并存储单元宽度加权的和用于校验和的计算。c)当校验符中标明的全部数据符和定位符被译码之后,验证从校验符得到的模211的校验和值与数据符单元宽度加权的和模211的校验和值相符合。d)将数据符值转换为二进制数字串,再转换为A1单元数据串。e)此外,为稳妥起见,考虑到具体的识读设备和设想中的应用环境,需对扫描加速度、绝对计时以及尺寸等进行其他的附加检查。设计实际的识读扩展式RSS的扫描器时,可参见附录H中为使误读最小化而附加的符号译码考虑。8符号质■8.1一维条码符号质量参数RSS系列符号采用GB/T14258定义的对条码符号进行测量和评级的标准方法进行质量评价。应该把本标准中定义的RSS系列符号的参考译码算法用于GB/T14258标准中对“译码”及“可译码度”等参数的评价。层排式RSS的层分隔符的所有单元应是人眼可辨识的,在对符号质量进行评价时,不对层分隔符进行评级。有关符号打印方面的指导见附录J。8.2附加的判定规则国家标准GB/T14258允许条码码制标准规定一些附加的判定规则。对于RSS条码,附加的规则是在每次尝试扫描时,两个保护符内侧的单元必须存在,且宽度不大于3z。对不满足此项要求的任何单独的扫描曲线应该判定为0级。8.3层排式符号的质量依据GB/T14258,层排式RSS符号的每一行应作为一个单独的符号来进行评价。为将相邻行的窜行的影响降到最低,如GB/T14258所规定的,扫描线应该通过符号每行的高度的80%的检测带。符号每行扫描线数取10或行高除以测量7L径得到的值中的较小者。符号所有行的符号等级中的最小值32 作为符号的总符号等级。9传输的数据GB/T21335--2008RSS系列符号在设计和设想上要与ISO/IEC15424规定的码制标识符一起使用。在使用RSS系列符号的应用中,需开启识读器的码制标识符处理功能。EAN·UCC系统要求使用码制标识符。未使用码制标识符的应用系统将不能识别RSS符号中的应用标识符数据,或把其他码制条码符号的数据误认为是应用标识符数据。可以使用一个码制标识符前缀“3eo”对RSS系列符号进行传输。如果RSS系列线性符号与一个二维部分相结合,AI单元数据串的数据紧跟在线性部分数据后面。例如+某个RSS-14或限定式RSS符号会被传输为]e00110012345678902,其中粗体部分1001234567890在符号中进行编码。而码制标识符前缀、作为项目标识的应用标识符“01”和EAN/UCC模10计算得到的校验码“2”被加在传输的数据串中。扩展式RSS对应用标识符进行编码,因此只将码制标识符前缀作为编码数据的前缀附加在传输数据中。扩展式RSS可对非数据字符FNCl进行编码,在作为符号的最后一个字符时FNCl不被传输;其他情况下FNCl作为(ASCII值29)被传输。对于EAN·UCC复合码,二维部分中的AI单元数据串,应在线性部分数据后直接被传输。通常情况下,如果线性部分设置了连接标志,则识读器必须对两部分进行译码。然而,识读器可能支持另外一个模式.即;只有一维部分被译码,并在传输过程中忽略连接标志。这种模式支持那些只要求有贸易项目主标识的应用场合。识读器还支持选择UCC/EAN一128模拟模式。这种模式在进行数据传输时模拟UCC/EAN一128符号,其码制标识符为?ci。超出48个数据的字符的扩展式RSS符号将被以两条信息传输,每条信息都将拥有一个符号前缀]el,并且不会超过48个数据的字符,信息将在两个单元数据串之间被分割,见附录D。10供人识读字符打印时,供人识读字符应以清晰的字体出现在条码符号之下。GB/T15425对供人识读字符提出了附加要求。11最小模块宽度(x尺寸)应通过考虑应用系统中条码生成设备和识读设备的技术性能来决定所能使用的x尺寸的最小值。对一般的应用场合,x尺寸的推荐值为0.25mm。在一个给定的符号中,x尺寸应保持一致。当连接二维部分时。RSS符号应具有与二维部分一样的x尺寸。12应用参数GSl通用规范中规定了RSS的数据容量、X尺寸、最小符号高度、最低符号质量等级、符号类型、符号位置等参数,以及应用所要求的其他参数。 GB/T21335--2008附录A(规范性附录)EAN·UCC校验码的计算RSS-14、层排式RSS一14以及限定式RSS可以对EAN/UCC一14编码结构进行编码,即可以对14位数字的全球贸易项目代码进行编码。采用应用标识“ol”的扩展式RSS也町用来对EAN/UcC一14编码结构进行编码。通过使用应用标识符“00”,扩展式RSS还可用来对SSCC18编码结构(系列货运包装箱代码)进行编码。EAN/ucc14、SSCC一18编码结构和其中校验码的计算见表A.1。表A.1EAN·UCC编码结构中校验码的计算编码结构数字及其位置EAN/UCC14NlN2N,N4N=N6N7NsNgN10NilN12N1lN14SSCC—18N,N2NxN。N5N6N,N8N。NloN11N12Nl3N1.NI5N16N17N18.每个位置的数乘以下面相应的数值计算步骤一×3×1×3×1×3×1×3×1×3×1×3×1×3×1×3×1×3计算步骤二乘积累加求和,结果一SUM计算步骤三以大于或等于SUM的且与SUM最接近的10的整数倍的数减去SUM.结果一校验码(N。a或N。s)EAN·UCC校验码不在RSS-14、限定式RSS及扩展式RSS符号中被编码,而是隐含在被编码的EAN/UCC一14结构的其他数字中。EAN·UCC校验码能在供人识读字符中被显示。在详码时,译码器根据被译出的EAN/UCC一14结构的其他数字计算出EAN·UCC校验码并进行传输。 GB/T21335--2008附录B(规范性附录)单元宽度编码和译码的C语言程序符号的值通过计算被编码.得到每一个(”,^)字符的子集值。然后得出子集中各单元的宽度及单元排列的模式即单元宽度的序列。采用C语言的编码程序(getRSSwidths)根据子集值计算得到子集的单元宽度序列;采用c语言的译码程序(getRSSvalue)根据子集的单元宽度序列计算得到子集值。为子集赋值即把连续值分配给各子集的单元宽度序列。赋值的规则是,排序靠前的宽度值越小的单元宽度序列,赋予的值越小。赋值从排序靠前的宽度值都是一个模块宽的子集,即前几个单元的宽度最窄且从有效的子集开始(被赋予0值的第一个子集是除最后一个单元外的单元都是一个模块宽,且最后一个单元的宽度不超出最大单元宽度限制的那个子集)。接下来的值将被赋予余下的子集中那个靠前序号单元的宽度最窄的有效子集。例如,6模块的子集包含有以下0~9的数值,对应的以模块为单位的单元宽度序列为:子集值单元宽度序列01312131312124l215131621272121821931单元宽度超出最大宽度(maxWidth)的单元宽度序列被跳过。如果单元宽度序列中所有的单元都超过一个模块宽(noNarrow=0),则该序列被排除,并跳过。/*****************************************+*getRSSwidths(获得RSS单元宽度)*本程序对一个给定的值,生成RSS各单元的宽度**调用变量(或参数);*val一要求的值*n一模块的数量*elements=子集中的单元的数量(RSS一14和扩展式RSS--4,限定式RSS=7)*maxWidth=一个单元的最大宽度(单位为模块)*noNarrow--0将跳过那些没有一个模块宽的单元的单元宽度序列**Return(返回);*staticintwidths[]一各单元的宽度********************************-X-***-X-*****/voidgetRSSwidths(intval,intn,intelements,intrilaxWidth,intnoNarrow)35 GB/T21335--2008{intbar;intelmWidth;inti;intmxwElement;intsubVal,lessVal;intnarrowMask一0lfor(bar--0;bar一elements--bar一1)){subVal一一combins(n—elmWidth一(elements--bar)。elementsbar2)}/*去掉单元宽度超过最大要求值的组合*/if(elements—bar一1>1){lessVaI一0lfor(mxwElement=n--elmWidth--(elements--bar一2):mxwElement>maxWidth;mxwElement一一、1essVal+一combins(nelmWidth--mxwElement一1,elements—bar一3))subVal一一lessVal*(elements—l—bar)1)elseif(n—elmWidth>maxWidth){subVal一一1)vaI一一subVal:if(val一elements--bar1))tsubVal一=eombins(n—elmWidth一(elements--bar), GB/T21335--2008elements—bar一2);}/*去掉单元宽度超过最大要求值的组合*/if(elements--bar~1>1){1essVal一0;for(mxwElement=nmelmWidth--(elements--bar2)}mxwElement>maxWidth;mxwElement一一){lessVal+一combins(n--elmWidth--mxwElement--1elements--bar一3)。)subVal一=lessVal*(elements一1一bar)}1elseif(n—elmWitdth>maxWidth)(subVal一一;)val+=subval;)n--一elmWidthl)return(val);/****************************。**。“。”+*。。*”’*combins(n,r);返回从n选择的r的组合数}*Combinations(组合)=n!/((n—r)!*r!)******************************************/intcombins(intn,intr){inti,jfintmaxDenom,mindenom;intval,if(n—r>r){rainDenom—r:maxDenom=n--r}e[se{minDenom=n--r:maxDenom—r:)val=1;j一1.38 for(i—nli>maxDenom;i一一val*一i:if(j<一minDenom){val/一j;j++;}for(;j<一minDenom;j++)val/一j)return(VS.1);GB/T21335--200839 GB/T21335--2008附录C(规范性附录)限定式RSS校验符的单元宽度限定式RSS条码符号校验符的各单元宽度及相应的单元宽度序列见表C.1。表c.1限定式RSS校验符的单元宽度校验符的单元宽度单元宽度(从最左边的“空”到最右边的“条”)值序列号S1B1S2B2S3B3S4B4S5B5S6B6S7B7O0l1】1l1l3l1l1l232121l2131l312l132141l1l3123151l131l161l12l1321712l21231l81l12l1】13l1913131101l2l1l132111】1l121】121231121l21l13l1312121{一131l141l31l3l115121l1l132l—161212123l117121l131181212l131l1912l2l131201313l1212ll】1】l2l231l221l121231l1l2321241l1l1l2121251l12l261l13212127121l2121281l12121 袭C.1(续)GB/T21335--2008校验符的单元宽度单元宽度(从最左边的“空”到最右边的“条”)值序列号S1BlS2B2S3B3S4134S5135S6B6S7B7291l212121l301312121l13l31121l2l2132l1212l33l121l2】21341l21212121l3513l1l2121l36l2】l1】l212l3712】1l12138l21l12121l13912l12l12l214012l2l1212141l31l212l1421l1l31l3143l1l13212l44451】1l231214552l21l13l2l4657121l13l12l47631l121231486412l12l149651l1l121l3215066l12l12l5l73l1212l12l152741l21l21】215375121l21l21547612l21l1215577l13121l2l1567812l1l21l215779l21l12l2l15882l21l12l1】2】l1591261l21l1231l60127l12l1l2】l611281l121l1321621291l12l12l21l41 GB/T21335--2008表C.1(续)校验符的单元宽度单元宽度(从最左边的“空”到最右边的“条”)值序列号S】B1S2B2S3B3S4B4S5B5S6B6S7B7631301l121】2121641321l12l2165141l2l121l21l66142121212167143121l21l2】12l168144】21Z21l121l69145l212Z1】12】l70146I31lZ1I121【171210l121l123l17221ll1212l17321212l1321l174213121l12121l75214121l1212176218l121l1312177216l121l212l178217l121l21l12l179220l121l1218031621l1218131721l1l13218Z318Z】l12l21l8331921l12l2I1l8432021l3121l853222121l21l18632321212121l8732621212l18833721】1l】212】1注:s1、s2⋯s7分别表示第1个空、第2个空⋯第7个空lBl、/2,2⋯B7分别表示第i个条、第2个条⋯第7个条。注;表c.1中的“单元宽度序列号”是用附录B中的程序“getRSSwidths(获得RSS宽度)”生成的以所有8个模块的组合中的前6个“空”与前6个“条”组配而形成的21×21E441种单元宽度序列的序列编号(编号为0~440).该序列编号的计算为:(“空单元序列的值”X21)+“条单元序列的值”。在定义校验符集时可以使用序列号来代替条/空宽度序列。生成条和空单元的“getRSSwidths(获得RSS宽度)”程序所调用的变量为:val(值)一“空单元序列的值”(对于空)或“条单元序列的值”<对于条)(为0~20)n(模块数量)=8elements(单元数量)一6maxWidth(单元最大宽度)=3nONarrow一】 附录D(规范性附录)分割较长的扩展式RSS符号进行UCC/EAN一128模拟传输GB/T21335--2008对于超过48个数据的字符的扩展式RSS符号,在进行传输前,必须将其分割成两个UCC/EAN128模拟的部分。分割应在超出48个字符限制的单元数据串的开头进行。单元数据串由FNCl分隔符确定,或者由表D.1中给出的固定长度的AI单元数据串的末端确定。识读器采用下面的步骤查找可能超出48个数据字符的单元数据串:a)如果扩展式RSS符号表示的数据超过48个字符,则从符号的起始位置开始检查;b)检查一维部分数据接下来的两个数字(AI的前两个数字);c)如果这两个数字包含在表D.1中,则跳过表D.1中该AI标识的字符数;d)如果表中不存在该A1,则表明该AI字符串为非预定义长度,继续搜索数据直到第一次出现FNCl或者直到符号的末端(取二者中首先出现的);e)如果发现字符数超出48个的限制,则在被处理的最后一个单元数据串的开始处将数据分割,否则转到步骤b)。如果第一条信息以FNCl结束,则不传输FNcl。裹D.1预意义长度簟元数据审的应用标识符及字符总数字符数(包括应用标识符及应用标识符的前两个数字散据字段)数据字段)0020188011619802162040316232H+4。04183110ll8321012833lO13834101483510158361016841161783这里月为应用标识符的第3个数字(直接跟在23后面)。只有那些头两个数字与表D.1中的数字相匹配的应用标识符单元数据串,才被认为是“固定长度”的。其他一些应用标识符的单元数据串可以自然形成只有一种长度,但是因为这些应用标识符不在预定义长度的表格中,这些单元数据串仍被认为是“可变长度”数据串。表D.1不会再增加其他预定义长度的AI数据串。 GB/T21335--2008附录E(资料性附录)RSS条码符号的单元表E.1、表E.2、表E.3分别描述了各种类型RSS符号按顺序排列的各个单元。裹E.1RSS-14的单元单元类型描述l空左侧保护符的外侧单元(1个模块宽)2条左侧保护符的内侧单元(1个模块宽)3空数据符1的第1个奇数单元4条数据符1的第1个偶数单元5空数据符1的第2个奇数单元6条数据符1的第2个偶数单元7空数据符1的第3个奇数单元8条数据符1的第3个偶数单元9空数据符1的第4个奇数单元10条数据符1的第4个偶数单元11空左侧校验符(定位符)的第1个单元12条左侧校验符(定位符)的第2个单元13空左侧校验符(定位符)的第3个单元14条‘左侧校验符(定位符)的第4个单元(1个模块宽)15空左侧校验符(定位符)的第5个单元(1个模块宽)16条数据符2的第4个偶数单元17空数据符2的第4个奇数单元18条数据符2的第3个偶数单元19空数据符2的第3个奇数单元20条数据符2的第2个偶数单元21空数据符2的第2个奇数单元22条数据符2的第1个偶数单元23空数据符2的第1个奇数单元24条数据符4的第1个奇数单元25空数据符4的第1个偶数单元26条数据符4的第2个奇数单元27空数据符4的第2个偶数单元28条数据符4的第3个奇数单元29空数据符4的第3个偶数单元30条数据符4的第4个奇数单元44 衰E.1(续)GB/T21335--2008单元类型描述31空数据符4的第4个偶数单元32条右侧校验符<定位符)的第5个单元(1个模块宽)33空右侧校验符(定位符)的第4个单元(1个模块宽)34条右侧校验符(定位符)的第3个单元35空右侧校验符(定位符)的第2个单元36条右侧校验符(定位符)的第1个单元37空数据符3的第4个偶数单元38条数据符3的第4个奇数单元39空数据符3的第3个偶数单元40条数据符3的第3个奇数单元41空数据符3的第2个偶数单元42条数据符3的第2个奇数单元43空数据符3的第1个偶数单元44条数据符3的第1个奇数单元45空右侧保护符的内侧单元(1个模块宽)46条右侧保护符的外侧单元(1个模块宽)衰E.2限定式RSS的单元单元类型描述1空左侧保护符的外侧单元(1个模块宽)2条左侧保护符的内侧单元(1个模块宽)3空左侧数据符的第1个单元及第1个奇数单元4条左侧数据符的第2个单元及第1个偶数单元5空左侧数据符的第3个单元及第2个奇数单元6条左侧数据符的第4个单元及第2个偶数单元7空左侧数据符的第5个单元及第3个奇数单元8条左侧数据符的第6个单元及第3个偶数单元9空左侧数据符的第7个单元及第4个奇数单元10条左侧数据符的第8个单元及第4个偶数单元11空左侧数据符的第9个单元及第5个奇数单元12条左侧数据符的第lo个单元及第5个偶数单元13空左侧数据符的第11个单元及第6个奇数单元14条左铡数据符的第12个单元及第6个偶数单元15空左侧数据符的第13个单元及第7个奇数单元16条左侧数据符的第14个单元及第7个偶数单元17空校验符(定位符)的第1个单元 GB/T21335--2008裹E.2(续)单元类型描述18条校验符(定位符)的第2个单元19空校验符(定位符)的第3个单元20条校验符(定位符)的第4个单元2】空校验符(定位符)的第5个单元22条校验符(定位符)的第6个单元23空校验符(定位符)的第7个单元24条校验符(定位符)的第8个单元25空校验符(定位符)的第9个单元26条校验符(定位符)的第10个单元27空校验符(定位符)的第11个单元28条校验符(定位符)的第12个单元29空校验符(定位符)的第13个单元(1个模块宽)30条校验符(定位符)的第14个单元(1个模块宽)3l空右侧数据符的第1个单元及第1个奇数单元32条右侧数据符的第2个单元及第1个偶数单元33空右侧数据符的第3个单元及第2个奇数单元34条右侧数据符的第4个单元及第2个偶数单元35空右侧数据符的第5个单元及第3个奇数单元36条右侧数据符的第6个单元及第3个偶数单元37空右侧数据符的第7个单元及第4个奇数单元38条右侧数据符的第8个单元及第4个偶数单元30空右侧数据符的第9个单元及第5个奇数单元40条右侧数据符的第10个单元及第5个偶数单元41空右侧数据符的第11个单元及第6个奇数单元42条右侧数据符的第12个单元及第6个偶数单元43空右侧数据符的第13个单元及第7个奇数单元44条右侧数据符的第14个单元及第7个偶数单元45空右侧保护符的内侧单元(1个模块宽)46条右侧保护符的外侧单元(1个模块宽)表E.3扩展式RSS(0段格式)的单元单元类型描述1空左侧保护符的外侧单元(1个模块宽)2条左侧保护符的内侧单元(1个模块宽)3空符号字符l的第1个奇数单元(限制在4个模块宽或更少)4条符号字符1的第1个偶数单元46 表E.3(续)GB/T21335--2008单元类型描述5空符号字符1的第2个奇数单元6条符号字符1的第2个偶数单元7空符号字符l的第3个奇数单元8条符号字符1的第3个偶数单元9空符号字符1的第4个奇数单元10条符号字符1的第4个偶数单元11空定位符Al的第1个单元12条定位符Al的第2个单元13空/定位符Al的第3个单元】4条定位符A1的第4个单元(】个模块宽)】5空定位符A1的第5个单元(1个模块宽)16条符号字符2的第4个偶数单元17空符号字符2的第4个奇数单元18条符号宇符2的第3个偶数单元19空符号字符2的第3个奇数单元20条符号字符2的第2个偶数单元21空符号宇符2的第2个奇数单元22条符号字符2的第1个偶数单元23空符号字符2的第1个奇数单元(限制在4个模块宽或更少)24条符号字符3的第1个奇数单元(限制在4个模块宽或更少)25空符号字符3的第1个偶数单元26条符号字符3的第2个奇数单元27空符号宇符3的第2个偶数单元28条符号字符3的第3个奇数单元29空符号字符3的第3个偶数单元30条符号字符3的第4个奇数单元31空符号字符3的第4个偶数单元32条定位符B2的第5个单元(1个模块宽)33空定位符B2的第4个单元(1个模块宽)34条定位符B2的第3个单元35空定位符B2的第2个单元36条定位符B2的第1个单元37空符号字符4的第4个偶数单元38条符号字符4的第4个奇数单元39窜符号字符4的第3个偶数单元47 GB/T21335--2008表E.3(续)单元类型描述40条符号字符4的第3个奇数单元41空符号字符4的第2个偶数单元42条符号字符4的第2个奇数单元43空符号字符4的第1个偶数单元44条符号字符4的第1个奇数单元(限制在4个模块宽或更少)45空符号字符5的第1个奇数单元(限制在4个模块宽或更少)46条符号字符5的第1个偶数单元47空符号字符5的第2个奇数单元48条符号字符5的第2个偶数单元49空符号字符5的第3个奇数单元50条符号字符5的第3个偶数单元5l空符号字符5的第4个奇数单元52条符号字符5的第4个偶数单元53空定位符Bl的第1个单元54条定位符Bl的第2个单元55空定位符B1的第3个单元56条定位符B1的第4个单元(1个模块宽)57空定位符Bl的第5个单元(1个模块宽)58条符号字符6的第4个偶数单元59空符号字符6的第4个奇数单元60条符号宇符6的第3个偶数单元61空符号字符6的第3个奇数单元62条符号字符6的第2个偶数单元63空符号字符6的第2个奇数单元64条符号字符6的第1个偶数单元65空符号字符6的第1个奇数单元(限制在4个模块宽或更少)66条右侧保护符的内侧单元(1个模块宽)67空右侧保护符的外侧单元(1个模块宽)48 F.1RSS一14附录F(资料性附录)编码示例GB/T21335--2008在图F.1所示的复合码中,一维部分RSS-14中的连接标志为1(代表连接二维部分),对贸易项目代码24012345678905编码。¨圈F.1RSS·14复合码示伊0一维部分RSS-14的单元宽度按以下步骤计算:a)符号值ysYMBoL为:VSYM∞,=10000000000000(连接标志)-}-24012345678905(贸易项目代码)去掉校验码一12401234567890b)左、右侧数据符对值y。一。、v。Am分别为:VLPAIR=12401234567890div4537077=2733309VRP^IR=1240i234567890mod4537077—1170097c)4个数据符的值为:数据符1的值Vm—V㈣IRdiv1597—2733309divl597—1711数据符2的值VD2一V㈨】Rmod1597—2733309mod1597—842数据符3的值Vm—vR⋯Rdiv1597—1170097div1597—732数据符4的值VD4一VH⋯Rmod1597=1170097mod1597—1093d)这4个数据符的奇子集值(v。。n)及偶子集值(vEvE。)为:数据符1结构为(16,4),而值(Vr¨)1711位于第3组中,奇/偶子集模块数为8/8。Vni求出y()∞及yEvEN:VoDol=(Vnl一961)div34=(1711—961)div34=750div34=22VEvENl=(VDl一961)mod34一(1711—961)mod34—750mod34—2数据符2结构为(15。4),而值(VI)z)842位于第2组中,奇/偶子集模块数为7/8。yW求出nⅧN及ⅥmjVEvENz=(Vm一336)div20一(842—336)div20—506div20—25VoDI)2一(yD2—336)mod20=(842—336)mod20=506mod20—6数据符3结构为(16,4),而值(yD3)732位于第2组中,奇/偶子集模块数为1016。y瑚求出UⅡ)D及hⅦN:VoDD3=(Vna一161)div10=(732—161)div10—571div10=57yEv£N3=(Vm一161)mod10一(732—161)mod10=571mod10=1数据符4结构为(15,4),而值(Vm)1093位于第3组中,奇/偶子集模块数为9/6。V【)4求出矿EvEN及yf)DD:利用下式从49 GB/T21335--2008VEvEN4=(Vm一1036)div20一(1093—1036)div48=57div48=1V㈣rM一(Vm一1036)mod20=(1093—1036)rood48—57mod48—9e)用附录B中的RSS子集宽度算法由子集值求得以下单元宽度序列:奇子集1(值22)一3l3偶子集1(值2)一113因此,数据符1的单元宽度序列一3133;奇子集2(值6)一1231偶子集2(值25)一3】13因此,数据符2的单元宽度序列=13213l13(从左至右镜像反转);奇子集3(值57)一331偶子集3(值1)一112因此,数据符3的单元宽度序列一31313212(从左至右镜像反转);奇子集4(值9)=1242偶子集4(值1)一l12因此,数据符4的单元宽度序列一1121422。注:按照书写习惯,单元宽度序列都是从左至右排列,但对于有些符号字符.如上面的数据符2和数据符3.字符单元的排序实际上是从右至左的。f)计算校验和的值:数据符1:3×1+1×3+1×9+1×27+l×2+3×6+3×18+3×54—278数据符211×4+3×12+2×36+l×29+3×8+1×24+1×72+3×58=435数据符313×16+1×48+3x65+1×37+3×32+2×17+1×5l+2×74=657数据符4:1×64+1×34+2×23+l×69+4×49+2×68+2×46+2x59—7552125因此,校验和的值一2125mod79=71。g)从校验和的值计算两个校验符(定位符):71大于或等于8,因此temp的值为71+1=7272大于或等于72,因此temp的值为72+1—73左校验符的值为73div9=8右校验符的值为73mod9一】左校验符(值8)的单元序列=1391右校验符(值1)的单元序列=35ll(从左至右镜像反转)。h)包括左侧保护符、数据符1、左侧校验符/定位符、数据符2(反转)、数据符4、右侧校验符/定位符(反转)、数据符3(反转)及右侧保护符在内的条码符号单元宽度为:11,3133,13911,31l3123l,ll2l422,1153,21231313,11F.2限定式RSS图F.2中的限定式RSS符号对贸易项目代码00098765432105进行编码。ⅢIIlIⅢ⋯⋯图F.2限定式RSS符号示例限定式RSS的单元宽度按下列步骤计算: GB/T21335--2008a)求出符号值VsY删儿.:符号值等于贸易项目代码(去掉校验码):V,vm。一00098765432105去掉校验码一9876543210b)计算左、右侧数据符的值Vwrt、V—o—t:VDIFFT一98765432】0div2013571—4904VnRⅧn=9876543210mod2013571—1991026c)计算两个数据符的奇、偶子集值Vmo、V一。:左侧数据符值(V—rt)为4904,位于第i组中,奇/偶子集模块数为17/9,因此左侧数据符的奇子集值(Vo一)和偶子集值(V。。。。。)分别为:Vf)DDI.一(VJmEFT一0)div28=4904div28=175VEvENI。一(VnlErT一0)mod28—4904mod28—4右侧数据符值(Vm·。“t)为1991026,位于第5组中,奇/偶子集模块数为19/7,因此右侧数据符的奇子集值(nmnR)和偶子集值(yev一)分别为:V()1Hm一(VDKlGHt一1979845)div1=11181div1—11181VEvENK一(VmM{T一1979845)mod1—11181mod1—0d)利用附录B中的RSS子集宽度算法由子集值得出以下单元宽度序列:左侧数据符奇子集(值175)一11245左侧数据符偶子集(值4)=1121因此,左侧数据符单元宽度序列;11l212右侧数据符奇子集(值11181)一83135右侧数据符偶子集(值o)一l1Il1因此,右侧数据符单元宽度序列=31313e)计算校验符的值:左侧数据符单元宽度加权和=12425121512121。1×1+1×3+1×9+1×27+2×81+1×65+2×17+1×51+2×64+2×14+4×42+2×37+5×22+1×66—926右侧数据符单元宽度加权和一3×20+l×60+3×2+1×6+1×18+1×54+3×73+1×41+5×34+1×13+2×39+1×28+Z×84+1×74=995因此校验符的值=(926+995)mod89=52f)用附录B给出的算法得到.债为52的校验符单元宽度序列一1l212l211。g)包括左侧保护符、左侧数据符、校验符、右侧数据符及右侧保护符在内的条码符号单元宽度为:11,11l21212425l,l12121211,313131512121,11。F.3扩展式RSS图F.3中的扩展式RSS符号对AI单元数据串(10)12A编码,本示例的数据没有包含主要项目标识,只用于示范指导。啊圈F.3扩展式RSS符号示例5 GB/T21335--2008扩展式RSS的单元宽度按下列步骤计算:a)符号对1012A编码。b)二进制字段为:连接标记一0(无二维部分)编码方法一00(无应用标识符01)可变长度位一00(偶数个段,组1)数据位:i0=00i0011(数字编码)12=00lOi01(数字编码)0000(字母数字锁定码)A一100000(字母数字编码)填充一0010000因此按顺序链接成二进制数字串为:0000000100]1001010100001000000010000。注:两位数字(如i0、12)的编码方法见7.2.5.5.1中的公式,大写字母(如A)的字母数字编码方法见表12。c)把二进制数字串以12位分成一组,本示例分为三组,值分别为:000000010011、001010100001及000000010000。相应的3个数据符值为:数据符1的值(VDl)一000000010011—19数据符2的值(VD2)一001010100001—673数据符3的值(yI)3)一000000010000—16d)计算这3个数据符的奇、偶子集值y。nn、VzvEw:数据符1的值(Vm)为19,位于第1组,奇/偶子集模块数为12/5,因此数据符1的奇子集值(VoDD。)和偶子集值(VEvEw。)分别为:VoDDl一(yn】一0)div4=19div4—4VEvENl=(Vm一0)mod4一l9mod4—3数据符2的值(ym)为673,位于第2组,奇/偶子集模块数为10/7,因此数据符2的奇子集值(u,。)和偶子集值(v。,。)分别为:V(1DD2一(VD2—348)div20—325div20—16VEvEN2一(VD2—348)mod20—325mod20—5数据符3的值(Vm)为16,位于第1组,奇/偶子集模块数为12/5,因此数据符3的奇子集值(Voom)和偶子集值(Vevw,)分别为:VoDm=(Vm0)div4=16div4=4VEvEN3=(VD3—0)mod4—16mod4=0e)用附录B中给出的扩展式RSS子集单元宽度算法由子集值求出以下单元宽度序列:数据符1的奇子集(值4)一1173数据符1的偶子集(值3)=21因此,数据符1的单元宽度序列=12l17l3l(从左至右镜像反转)数据符2的奇子集(值16)一1513数据符2的偶子集(值5)一12因此,数据符2的单元宽度序列一I1521232数据符3的奇子集(值4)一1173数据符2的偶子集(值o)=i12因此,数据符3的单元宽度序列一1I17132(从左至右镜像反转)注;按照书写习惯,单元宽度序列都是从左至右排列,但对于偶数序号的符号字符(奇数的数据符).如上面的数据符1和数据符3,字符单元的排序实际上是从右至左的。 f)计算校验和:数据符l的单元宽度加权和一1007数据符2的单元宽度加权和63—1562GB/T21335--20081×l+2×3+1×9+1×27+7×81+1×32+3×96+1×771×20+1×60+5×180+1×118+1×143+2×7+3×21+2×数据符3的单元宽度加权和一1×189+1×145+1×13+1X39+7×117+1X140+3×209+2×205—2382因此,校验和=(1007+1562+2382)mod211—98g)计算校验符:校验符的值(Vc)一21l(符号字符数一4)+校验和一211(4—4)+98:98校验符值(Vc)为98,位于第1组中,奇/偶子集模块数为12/S,因此校验符的奇子集值(VonDc)和偶子集值(VEvEwc)分别为:VODDc=(Vc一0)div4—98div4=24VEvENc一(Vc一0)mod4—98mod4—2用附录B给出的扩展式RSS子集单元宽度算法,由子集值求出以下单元宽度序列:校验符奇子集(值24)一1515校验符偶子集(值2)一121因此,校验符单元宽度序列一1152151。h)包括左侧保护符、校验符、定位符A1、数据符1(反转)、数据符2、定位符A2、数据符3(反转)及右侧保护符在内的条码符号单元宽度为:11,1152151,18411,13171l21,11521232,11481,231711,11。53 GB/T21335--2008附录G(资料性附录)单元宽度译码的c语言程序#include/**-16ad.****************-g-*******************”“*“elements()”和“elementsExp()”这两个程序*需输入以下值:*eDist[]=前(2*k-2)个边缘到相似边缘距离的标称值(E.)*(字符图形总是从距相邻定位符最远的单元开始ff),以及*确定字符结构的n和k(注意在程序中n和k分别被表示为N和K)。*这两个程序输出以下值:*widths[]一2*k个推算出的单元宽度。对于RSS14,调用程序:对于内侧数据符,调用elements(*eDist.。widths,15,4);对于外侧数据符,调用elements(*eDist,*widths,16,4)。*对于限定式RSS的数据符,调用elements(*eDist,*widths,26,7)。**对于扩展式RSS的数据符,调用elementsExp(*eDist,*widths,17,4)。******************t1-***************、**-ye*****o//***************.g-tl"*****q-********************elements()程序确定(n,k)符号字符的各单元宽度,这种(n,k)符号字符至少有一个*偶数单元是一模块宽。*(注意:偶数单元⋯一第2、第4、第6等,具有奇数个模块。)***,g-*g-**************-g-**********g-*g-*g-*****o/voidelements(int”eDist,int*widths,intN,intK){ntminEyenntbarSum;/-g-从标称的边缘到相似边缘距离尺寸推算出各单元宽度*/minEven=10l/*以一个相当大的最小值开始*/barSum=widths[03;1;/*首先假设第一个条为1模块宽*/for(i;1li1){/*如果最窄偶数单元的宽度太大,重新调整,使最窄偶数单元为1模块宽*/for(i一0;i1){/*如果最窄奇数单元的宽度太大,重新调整,使最窄奇数单元为1模块宽*/for(i=0}i