中文字幕无码日韩视频无码三区

一種測試設備的俄文字符打印輸出方法

文檔序號:9216989閱讀:331來源:國知局
一種測試設備的俄文字符打印輸出方法
【技術領域】
[0001] 本發明屬于打印技術領域,涉及一種測試設備的俄文字符打印輸出方法,具體地 說,涉及一種基于點陣設計及多倍密度壓縮的測試設備的俄文字符打印輸出方法。
【背景技術】
[0002] 測試設備是武器系統進行技術準備、確保處于良好狀態的必需裝備。目前,使用原 廠引進測試設備對裝備狀況進行技術準備測試。測試結果為打印輸出,這也是測試設備唯 一的輸出方式,且必須由專用的俄制打印裝置才能打印測試結果,國產打印設備無法替代。 由于測試設備的技術內容并未對我公開,因此一旦打印裝置出現故障,只能返俄羅斯原廠 維修或更換新裝置,同時相關耗件耗材也必須引進,這不僅浪費大量人力物力財力,還大大 增加了技術準備時間,影響戰斗力的生成。
[0003] 測試設備與俄制打印裝置為并口連接方式,測試設備將需打印的測試結果以二進 制數據流形式傳輸給俄制打印裝置進行打印。根據并口通信協議及標準打印指令集的知識 可知,在該二進制數據流中,打印一行字符是一個完整打印執行語義,該語義中包含打印機 動作執行指令和打印內容兩部分,一個打印頁面的二進制數據流包含多個這樣的打印執行 語義。因此,若以測試設備所輸出的打印一行字符之二進制數據流作為一個處理單元,對該 處理單元進行解析,可得到打印指令和打印內容兩部分。將得到的打印指令及打印內容轉 由國產通用打印機執行,即可實現國產針式打印機對測試結果的打印。但在實際操作過程 中發現,雖然國產針式打印機可正確執行轉譯的打印指令,但無法正確打印出測試內容,其 原因在于測試結果為俄文顯示,俄制打印裝置內的專用俄文字符與國產針式打印機標準俄 文字符在映射關系、字符規格等方面存在不一致性,造成了打印亂碼及文字格式不齊等打 印異常現象,且該問題無法通過全/半角切換等普通措施得到解決。

【發明內容】

[0004] 為了克服現有技術中存在的缺陷,綜合利用國產針式打印機的開放技術和已有功 能,本發明提供一種測試設備的俄文字符打印輸出方法,使得從測試設備打印端口獲取的 二進制流解析為打印指令和打印內容后,可通過國產針式打印機正確打印輸出,且俄文字 符的打印效果在字符形式和字符規格上與俄制打印裝置相一致。該方法分為離線處理和 在線處理兩部分,首先在離線狀態下,將所有俄文字符設計為點陣顯示形式,并對設計的點 陣進行ASCII碼編碼,將點陣ASCII碼與俄文字符的俄制ASCII原碼一一對應地建立映射 關系并預先存儲在上位機中,然后在在線狀態下,將從測試設備打印端口獲取的打印二進 制數據流送入上位機,以打印一行字符的數據流為單位進行打印指令和打印內容的碼流轉 換,將原始碼流轉換為一個新的碼流,最后將轉換后的碼流送入國產針式打印機,驅動其以 多倍密度壓縮方式將點陣圖形形式打印輸出。其技術方案如下:
[0005] -種測試設備的俄文字符打印輸出方法,包含離線處理和在線處理兩部分,離線 狀態下,將俄文字符用8行14列點陣形式表示,一個特定俄文字符對應一個點陣,點陣前 10列通過打點設計俄文字符圖形,后4列不打點,在設計好的俄文字符點陣中,用" 1"代替 "點",用"〇"代替"空",變換成一個8行14列的二進制數矩陣,每列數組按從上到下的順 序定義高低位,對高4位和低4位分別進行ASCII編碼,并按照高4位、低4位的順序前后 排列編碼得到的碼字,再從左到右輸出14列數組的ASCII編碼結果,得到一個28位的點陣 ASCII碼,根據一個點陣ASCII碼與一個俄文字符ASCII原碼均指向相同特定俄文字符之原 則建立二者的映射關系,并將該映射關系預先存儲在上位機中,在線狀態下對送入上位機 的二進制數據流按照輸入順序,逐個對單個碼流處理單元內的打印指令和打印內容進行碼 流轉換,首先檢測處理單元的打印指令中是否存在初始化指令"1B40",如存在,再檢測是 否含打印指令"1B21 04",如有,則以國產針式打印機四倍密度壓縮打印指令代替原碼指 令"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編碼。在離線狀態下,將俄文字符點陣中的"點"用"1"代替,"空" 用"0"代替,每個俄文字符點陣即變成一個8行14列的二進制數矩陣。矩陣的每一列數組 中包含8位二進制數,按照從上到下的順序定義高低位,將這8位二進制數分為高四位和 低四位兩組,分別進行ASCII編碼,并將高四位編碼得到的ASCII碼放在前、低四位得到的 ASCII碼放在后,由此一列數組通過ASCII編碼得到兩位ASCII碼。對矩陣的14列數組分 別進行ASCII編碼,并按照從左到右的順序依次將得到的ASCII碼進行排列,則每個俄文字 符點陣經編碼后均變換成一個28位ASCII碼序列,簡稱為點陣ASCII碼。
[0016] ③點陣ASCII碼與俄文字符ASCII原碼的映射關系構建。步驟①②完成后,俄文 字符將有兩套ASCII碼表示,一套是本發明的點陣ASCII碼,另一套是俄制打印裝置默認的 俄制ASCII原碼。在離線狀態下,根據點陣ASCII碼與俄制ASCII原碼指向同一個俄文字 符的原則,一一對應地構建俄制ASCII原碼與點陣ASCII碼的映射關系,并將該映射關系預 先在上位機中進行存儲。
[0017] ④碼流轉換。在在線狀態下,將從測試設備打印端口獲取的二進制數據流送入上 位機,以打印一行字符的數據流為一個處理單位,稱之為一個碼流處理單元,逐個對各碼流 處理單元內的打印指令和打印內容進行碼流轉換處理。首先檢測碼流處理單元中打印指令 部分是否存在初始化指令"1B40",如存在,再檢測是否含打印指令"1B21 04",如有,則 以國產針式打印機四倍密度壓縮的打印指令代替原碼指令"1B21 04",如沒有,則以國產 針式打印機兩倍密度壓縮的打印指令替代原碼指令"1B21 04",其他打印指令保持不變; 如打印指令中不存在打印初始化指令"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進行表示。將點陣中的"點"用"1"代替,"空"用"〇"代替, 得到一個8X14的二進制數矩陣,如表2所示。對于表2中的數組矩陣,以矩陣頂部為最高 位,底部為最低位,將矩陣數組的每一列分為"高四位"和"低四位"兩組分別進行ASCII編 碼處理。如,第一列數組按從上到下順序為"11111110",將高4位"1111"作為一組數進行 ASCII編碼,編碼結果為"F",低四位" 1110"作為一組數,ASCII編碼結果為"E",因此第一 列數組經ASCII編碼結果為"
當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1