买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】一种测试设备的俄文字符打印输出方法_中国人民解放军海军航空工程学院_201510309714.5 

申请/专利权人:中国人民解放军海军航空工程学院

申请日:2015-06-08

公开(公告)日:2015-09-23

公开(公告)号:CN104932846A

主分类号:G06F3/12(2006.01)I

分类号:G06F3/12(2006.01)I

优先权:

专利状态码:失效-未缴年费专利权终止

法律状态:2020.06.02#未缴年费专利权终止;2018.03.09#授权;2016.06.15#著录事项变更;2016.06.15#专利申请权、专利权的转移;2016.04.20#实质审查的生效;2015.09.23#公开

摘要:本发明公开了一种测试设备的俄文字符打印输出方法,首先在离线状态下,将所有俄文字符设计为点阵显示形式,并对设计的点阵进行ASCII码编码,将点阵ASCII码与俄文字符的俄制ASCII原码一一对应地建立映射关系并预先存储在上位机中,然后在在线状态下,将从测试设备打印端口获取的打印二进制数据流送入上位机,以打印一行字符的数据流为单位进行打印指令和打印内容的码流转换,将原始码流转换为一个新的码流,最后将转换后的码流送入国产针式打印机,驱动其以多倍密度压缩方式将点阵图形形式打印输出。无需对国产针式打印机的标准打印字符码表及指令进行任何修改,可实现与原俄制打印装置相同字符形式及规格的俄文打印效果。

主权项:一种测试设备的俄文字符打印输出方法,其特征在于,包含离线处理和在线处理两部分,离线状态下,将俄文字符用8行14列点阵形式表示,一个特定俄文字符对应一个点阵,点阵前10列通过打点设计俄文字符图形,后4列不打点,在设计好的俄文字符点阵中,用“1”代替“点”,用“0”代替“空”,变换成一个8行14列的二进制数矩阵,每列数组按从上到下的顺序定义高低位,对高4位和低4位分别进行ASCII编码,并按照高4位、低4位的顺序前后排列编码得到的码字,再从左到右输出14列数组的ASCII编码结果,得到一个28位的点阵ASCII码,根据一个点阵ASCII码与一个俄文字符ASCII原码均指向相同特定俄文字符之原则建立二者的映射关系,并将该映射关系预先存储在上位机中,在线状态下对送入上位机的二进制数据流按照输入顺序,逐个对单个码流处理单元内的打印指令和打印内容进行码流转换,首先检测处理单元的打印指令中是否存在初始化指令“1B 40”,如存在,再检测是否含打印指令“1B 2104”,如有,则以国产针式打印机四倍密度压缩打印指令代替原码指令“1B 2104”,如没有,则以国产针式打印机两倍密度压缩打印指令替代原码指令,如打印指令中不存在打印初始化指令“1B 40”,则按照前一个码流处理单元中所采用的密度压缩打印指令执行本码流处理单元的打印任务,然后将处理单元中的打印内容按照映射关系转换为点阵ASCII码形式,同时统计出本单元内的打印字符个数,乘以14后再除以256,将整除得到的商和余数转换为十六进制数,将其作为码字头按照“商余数”的顺序将这两个十六进制数添加到新生成的点阵ASCII码码流前面,最后将转换后的码流通过并口送入国产针式打印机中,驱动打印机进行打印。

全文数据:一种测试设备的俄文字符打印输出方法技术领域[0001]本发明属于打印技术领域,涉及一种测试设备的俄文字符打印输出方法,具体地说,涉及一种基于点阵设计及多倍密度压缩的测试设备的俄文字符打印输出方法。背景技术[0002]测试设备是武器系统进行技术准备、确保处于良好状态的必需装备。目前,使用原厂引进测试设备对装备状况进行技术准备测试。测试结果为打印输出,这也是测试设备唯一的输出方式,且必须由专用的俄制打印装置才能打印测试结果,国产打印设备无法替代。由于测试设备的技术内容并未对我公开,因此一旦打印装置出现故障,只能返俄罗斯原厂维修或更换新装置,同时相关耗件耗材也必须引进,这不仅浪费大量人力物力财力,还大大增加了技术准备时间,影响战斗力的生成。[0003]测试设备与俄制打印装置为并口连接方式,测试设备将需打印的测试结果以二进制数据流形式传输给俄制打印装置进行打印。根据并口通信协议及标准打印指令集的知识可知,在该二进制数据流中,打印一行字符是一个完整打印执行语义,该语义中包含打印机动作执行指令和打印内容两部分,一个打印页面的二进制数据流包含多个这样的打印执行语义。因此,若以测试设备所输出的打印一行字符之二进制数据流作为一个处理单元,对该处理单元进行解析,可得到打印指令和打印内容两部分。将得到的打印指令及打印内容转由国产通用打印机执行,即可实现国产针式打印机对测试结果的打印。但在实际操作过程中发现,虽然国产针式打印机可正确执行转译的打印指令,但无法正确打印出测试内容,其原因在于测试结果为俄文显示,俄制打印装置内的专用俄文字符与国产针式打印机标准俄文字符在映射关系、字符规格等方面存在不一致性,造成了打印乱码及文字格式不齐等打印异常现象,且该问题无法通过全半角切换等普通措施得到解决。发明内容[0004]为了克服现有技术中存在的缺陷,综合利用国产针式打印机的开放技术和已有功能,本发明提供一种测试设备的俄文字符打印输出方法,使得从测试设备打印端口获取的二进制流解析为打印指令和打印内容后,可通过国产针式打印机正确打印输出,且俄文字符的打印效果在字符形式和字符规格上与俄制打印装置相一致。该方法分为离线处理和在线处理两部分,首先在离线状态下,将所有俄文字符设计为点阵显示形式,并对设计的点阵进行ASCII码编码,将点阵ASCII码与俄文字符的俄制ASCII原码一一对应地建立映射关系并预先存储在上位机中,然后在在线状态下,将从测试设备打印端口获取的打印二进制数据流送入上位机,以打印一行字符的数据流为单位进行打印指令和打印内容的码流转换,将原始码流转换为一个新的码流,最后将转换后的码流送入国产针式打印机,驱动其以多倍密度压缩方式将点阵图形形式打印输出。其技术方案如下:[0005]—种测试设备的俄文字符打印输出方法,包含离线处理和在线处理两部分,离线状态下,将俄文字符用8行14列点阵形式表示,一个特定俄文字符对应一个点阵,点阵前10列通过打点设计俄文字符图形,后4列不打点,在设计好的俄文字符点阵中,用“Γ代替“点”,用“0”代替“空”,变换成一个8行14列的二进制数矩阵,每列数组按从上到下的顺序定义高低位,对高4位和低4位分别进行ASCII编码,并按照高4位、低4位的顺序前后排列编码得到的码字,再从左到右输出14列数组的ASCII编码结果,得到一个28位的点阵ASCII码,根据一个点阵ASCII码与一个俄文字符ASCII原码均指向相同特定俄文字符之原则建立二者的映射关系,并将该映射关系预先存储在上位机中,在线状态下对送入上位机的二进制数据流按照输入顺序,逐个对单个码流处理单元内的打印指令和打印内容进行码流转换,首先检测处理单元的打印指令中是否存在初始化指令“1B40”,如存在,再检测是否含打印指令“1B2104”,如有,则以国产针式打印机四倍密度压缩打印指令代替原码指令“1B2104”,如没有,则以国产针式打印机两倍密度压缩打印指令替代原码指令,如打印指令中不存在打印初始化指令“1B40”,则按照前一个码流处理单元中所采用的密度压缩打印指令执行本码流处理单元的打印任务,然后将处理单元中的打印内容按照映射关系转换为点阵ASCII码形式,同时统计出本单元内的打印字符个数,乘以14后再除以256,将整除得到的商和余数转换为十六进制数,将其作为码字头按照“商余数”的顺序将这两个十六进制数添加到新生成的点阵ASCII码码流前面,最后将转换后的码流通过并口送入国产针式打印机中,驱动打印机进行打印。[0006]本发明的有益效果:在完成测试设备输出的打印二进制数据流解析后,通过本发明,无需对国产针式打印机的标准打印字符码表及指令进行任何修改,可实现与原俄制打印装置相同字符形式及规格的俄文打印效果,从而解决测试设备的俄制打印装置用国产针式打印机替代后,所出现的打印乱码及打印行无法对齐的问题。附图说明[0007]图1是基于点阵设计及多倍密度压缩打印的俄文字母打印输出技术的整体实现框图;[0008]图2是实施例1中,66个俄文字母的点阵设计范例图;[0009]图3是实施例2中,采用本发明的打印输出效果图;[0010]图4是实施例2中,俄制ASCII原码直接驱动国产针式打印机的打印效果图;[0011]图5是实施例2中,以国产打印机中标准俄文字进行打印的效果图。具体实施方式[0012]下面结合附图具体实施方式对本发明的技术方案作进一步详细地说明。[0013]—种测试设备的俄文字符打印输出方法,具体通过以下技术措施达到:[0014]①俄文字符的点阵设计。在离线状态下,对应每个俄文字符设置一个8行14列的点阵,其中,前10列用于俄文字符设计,用“点”标明点阵中针式打印机需要打点位置,用“空”表示点阵中针式打印机无需在此处打点,由此可将单个俄文字符在该点阵中用“点”所组成的图形形式表示出来;后4列为每个字符的间距,均为“空”。对应每个不同俄文字符,都其独特的点阵图形表示,在此统称之为俄文字符点阵。[0015]②点阵的ASCII编码。在离线状态下,将俄文字符点阵中的“点”用T代替,“空”用“〇”代替,每个俄文字符点阵即变成一个8行14列的二进制数矩阵。矩阵的每一列数组中包含8位二进制数,按照从上到下的顺序定义高低位,将这8位二进制数分为高四位和低四位两组,分别进行ASCII编码,并将高四位编码得到的ASCII码放在前、低四位得到的ASCII码放在后,由此一列数组通过ASCII编码得到两位ASCII码。对矩阵的14列数组分别进行ASCII编码,并按照从左到右的顺序依次将得到的ASCII码进行排列,则每个俄文字符点阵经编码后均变换成一个28位ASCII码序列,简称为点阵ASCII码。[0016]③点阵ASCII码与俄文字符ASCII原码的映射关系构建。步骤①②完成后,俄文字符将有两套ASCII码表示,一套是本发明的点阵ASCII码,另一套是俄制打印装置默认的俄制ASCII原码。在离线状态下,根据点阵ASCII码与俄制ASCII原码指向同一个俄文字符的原贝1J,一一对应地构建俄制ASCII原码与点阵ASCII码的映射关系,并将该映射关系预先在上位机中进行存储。[0017]④码流转换。在在线状态下,将从测试设备打印端口获取的二进制数据流送入上位机,以打印一行字符的数据流为一个处理单位,称之为一个码流处理单元,逐个对各码流处理单元内的打印指令和打印内容进行码流转换处理。首先检测码流处理单元中打印指令部分是否存在初始化指令“1B40”,如存在,再检测是否含打印指令“1B2104”,如有,则以国产针式打印机四倍密度压缩的打印指令代替原码指令“1B2104”,如没有,则以国产针式打印机两倍密度压缩的打印指令替代原码指令“1B2104”,其他打印指令保持不变;如打印指令中不存在打印初始化指令“1B40”,则按照其前一个码流处理单元中所采用的国产针式打印机密度压缩的打印指令执行本码流处理单元的打印任务,其他打印指令保持不变;然后,将码流处理单元中的打印内容按照映射关系转换为点阵ASCII码,生成一段打印内容的点阵ASCII码流;同时,统计出该单元内的打印字符个数,乘以14后再除以256,将整除得到的整数形式的商和余数转换为十六进制数,并按照“商余数”的顺序将这两个十六进制数作为点阵ASCII码流的码字头添加到点阵ASCII码流前端。[0018]⑤打印输出。完成单个码流处理单元的码流转换后,即将其通过并口送入国产针式打印机中,驱动打印机进行点阵打印。[0019]实施例1:俄文字母的点阵设计、点阵ASCII编码及与俄制ASCII原码的映射构建。[0020]按本发明具体实现过程如下:[0021]对66个俄文字母逐一进行点阵设计。首先设置一个8X14的空白点阵用于某个俄文字母的设计。在点阵前10列,根据该俄文字母形式在对应位置上标出“点”,使得这一系列“点”组成的图形具有对应俄文字母的基本形状,其余位置为“空”;后4列用于俄文字符间的间隔控制,全部为“空”。按照同样方式完成所有俄文字母的点阵设计,图2为66个俄文字母点阵形式表示。[0022]俄文字母点阵的ASCII编码。具体以字母“B”为例,说明点阵的ASCII编码过程。为对比方便,B的点阵用表1进行表示。将点阵中的“点”用“Γ代替,“空”用“0”代替,得到一个8X14的二进制数矩阵,如表2所示。对于表2中的数组矩阵,以矩阵顶部为最高位,底部为最低位,将矩阵数组的每一列分为“高四位”和“低四位”两组分别进行ASCII编码处理。如,第一列数组按从上到下顺序为“11111110”,将高4位“1111”作为一组数进行ASCII编码,编码结果为“F”,低四位“1110”作为一组数,ASCII编码结果为“E”,因此第一列数组经ASCII编码结果为“FE”;第二列为“00000000”,高四位、低四位经ASCII编码变为“00”;第三列为“10010010”,经ASCII编码变为“92”;第四列为“00000000”,经ASCII编码变为“00”;第五列为“10010010”,经ASCII编码变为“92”;第六列为“00000000”,经ASCII编码变为“00”;第七列为“10010010”,经ASCII编码变为“92”;第八列为“00000000”,经ASCII编码变为“00”;第九列为“10011000”,经ASCII编码变为“8C”;第十列到第十四列均为“00000000”,经ASCII编码变为3个“00”。按照从左到右顺序对14列数组的ASCII码进行排列,由此所设计俄文字母“B”点阵经ASCII编码变为28位的ASCII码序列:FE009200920092008C0000000000。[0023]表1字母B的点阵[0025]表2字母B转换为数组矩阵[0027]俄文字母的点阵ASCII码与俄制ASCII原码的映射关系构建。俄文字母在俄制打印装置中默认表示为两位的ASCII码,依照对应俄文字母将其填入表3“俄制ASCII原码”项中;同样地,对应俄文字母将点阵ASCII码填入表3中“点阵ASCII码”项,则表3中同一序号的“俄制ASCII原码”与“点阵ASCII码”具有唯一的对应关系,由此建立俄制ASCII原码与点阵ASCII码的一一映射关系。表3中“点阵ASCII码”项只显示了前10列的编码情况,后4列编码均为“00”,故表中省略显示。[0028]将该映射关系预先存储在上位机中,当上位机收到从测试设备打印输出端口获取的原始码流后,通过调用该映射关系即可用把原始码流中的俄制ASCII码变换为点阵ASCII码。[0029]表3设计的点阵ASCII码与俄制ASCII原码的映射关系[0030][0032]实施例2:俄文字符的国产针式打印机打印输出[0033]一实施准备:[0034]1笔记本电脑一台作为上位机,国产OKI针式打印机一台,将上位机通过并口与针式打印机相连。[0035]2俄文字符的俄制原码及其点阵ASCII码映射关系预先存储在上位机中,本实施例将用到俄制字符“一”、“空格”、“I”、“”和“”,对应俄制ASCII原码为“D4”、“20”、“B3”、“28”和“29”,按照本发明步骤①至③,其点阵ASCII码分别设计为“0010001000100010001000000000”、“0000000000000000000000000000”、“0000000000FF0000000000000000”、“0000000040800000000000000000”和“0000000024438000000000000000”。[0036]3由测试设备打印输出端口采集的二进制数据流一段,在此称之为原始码流,将其表示为十六进制的码流形式如下:[0037][0038]二实施过程[0039]将该原始码流送入上位机中,上位机以单个码流处理单元为单位逐一进行码流转换和打印输出。本实施例中,原始码流中有5个“0A”(换行指令,如数据流中标注下划线“」’位置所示),即该段数据流将进行5行字符的打印。上位机可通过检测收到指令码“0A”即可区分出每个码流处理单元。[0040]首先对第一个码流处理单元进行码流转换和打印输出。[0041]码流转换。根据俄制和通用标准打印指令集的相关知识,单元内前14个码字“1B401B2104IB32”为打印指令,其中,“1B40”为打印初始化指令,检测到该指令,则上位机进一步检测是否含有打印指令“IB2104”,该指令码同样存在,因此需调用国产针式打印机四倍密度压缩方式的打印指令替代该码流处理单元的打印指令。在OKI针式打印机中对应的四倍密度压缩打印指令码为“IB5A”,用其代替“1B2104”,其他打印指令保持不变。则该码流处理单元的新打印指令变为:IB40IB5AIB32。[0042]对于该码流处理单元的打印内容部分,其中每两个俄制ASCII原码对应一个俄制字符,如“C4”表示俄制字符“一”,根据预先存储于上位机中的映射关系,将原始码流转换为点阵ASCII码流形式,同时,统计出该码流处理单元中含136个字符数,则根据本发明步骤④中所述方法,用136乘以14再整除256,得到余数和商分别为112和7,变换为16进制码得到“7007”,再把“7007”作为ASCII码流的码字头置于点阵ASCII码流之前。因此,第一个处理单元转换后的码流为:[0043][0046]打印输出。将本单元转换后的码流通过并口送入打印机中,驱动OKI打印机打印出本打印行的点阵形式。[0047]在第一个码流处理单元打印输出的同时,对第二个码流处理单元进行码流转换。首先进行打印指令值的检测,在第二个码流处理单元中不含初始化指令,因此该处理单元按照上一个码流处理单元的密度压缩打印指令执行点阵打印,即直接在本码流处理单元起始位置加入打印指令“IB5A”。[0048]然后按照同样方法,将第二个码流处理单元的打印内容码流转换为点阵ASCII码流形式,该码流处理单元中所含字符个数为136,用136乘以14再整除256,得到余数和商分别为126和7,两个值变换为16进制码为“7E07”,把“7E07”作为ASCII码流的码字头置于点阵ASCII码流之前。[0049]因此,第二个处理单元转换后的码流为:[0053]将转换后的码流通过并口送入打印机中,驱动OKI打印机打印出第二打印行的点阵形式。[0054]同样方法处理第3、4、5个码流处理单元。[0055]最终打印输出实际效果如图4所示。为进行打印效果比对,图4给出了采用原始码流直接驱动OKI针式打印机的打印输出效果,图5则是将原始码流中的俄制字符对应转换为国产打印机的标准俄文字进行打印的效果图。从图3、图4、图5的打印效果对比可以看出,采用原始码流直接打印输出的是乱码,打印出字符无法有效识别;采用俄制字符转换为对应国标俄文字符进行打印的方法,打印出的俄文字母间距过大,打印行字符参差不齐,页面效果与原俄制打印装置效果相差较大;而采用本发明,由国产针式打印机进行打印的效果无论在字符规格、字符间距、页面效果上均与原俄制打印输出装置打印输出效果一致。[0056]以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。

权利要求:1.一种测试设备的俄文字符打印输出方法,其特征在于,包含离线处理和在线处理两部分,离线状态下,将俄文字符用8行14列点阵形式表示,一个特定俄文字符对应一个点阵,点阵前10列通过打点设计俄文字符图形,后4列不打点,在设计好的俄文字符点阵中,用“Γ代替“点”,用“〇”代替“空”,变换成一个8行14列的二进制数矩阵,每列数组按从上到下的顺序定义高低位,对高4位和低4位分别进行ASCII编码,并按照高4位、低4位的顺序前后排列编码得到的码字,再从左到右输出14列数组的ASCII编码结果,得到一个28位的点阵ASCII码,根据一个点阵ASCII码与一个俄文字符ASCII原码均指向相同特定俄文字符之原则建立二者的映射关系,并将该映射关系预先存储在上位机中,在线状态下对送入上位机的二进制数据流按照输入顺序,逐个对单个码流处理单元内的打印指令和打印内容进行码流转换,首先检测处理单元的打印指令中是否存在初始化指令“1B40”,如存在,再检测是否含打印指令“1B2104”,如有,则以国产针式打印机四倍密度压缩打印指令代替原码指令“1B2104”,如没有,则以国产针式打印机两倍密度压缩打印指令替代原码指令,如打印指令中不存在打印初始化指令“1B40”,则按照前一个码流处理单元中所采用的密度压缩打印指令执行本码流处理单元的打印任务,然后将处理单元中的打印内容按照映射关系转换为点阵ASCII码形式,同时统计出本单元内的打印字符个数,乘以14后再除以256,将整除得到的商和余数转换为十六进制数,将其作为码字头按照“商余数”的顺序将这两个十六进制数添加到新生成的点阵ASCII码码流前面,最后将转换后的码流通过并口送入国产针式打印机中,驱动打印机进行打印。

百度查询: 中国人民解放军海军航空工程学院 一种测试设备的俄文字符打印输出方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。