CN111061528A - 一种基于32bit数据位的简化编码方法 - Google Patents
一种基于32bit数据位的简化编码方法 Download PDFInfo
- Publication number
- CN111061528A CN111061528A CN201911194306.4A CN201911194306A CN111061528A CN 111061528 A CN111061528 A CN 111061528A CN 201911194306 A CN201911194306 A CN 201911194306A CN 111061528 A CN111061528 A CN 111061528A
- Authority
- CN
- China
- Prior art keywords
- hexadecimal
- file
- picture
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/37—Details of the operation on graphic patterns
- G09G5/373—Details of the operation on graphic patterns for modifying the size of the graphic pattern
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明揭示了一种基于32bit数据位的简化编码方法,通过词语分析对符号的字符串、整数、浮点数加以区分,在写入十六进制文本时根据数据类型重新编码;画面定义文件的组织格式设计,画面定义文件包括pdf.c、normal.h、draw.h、declare.h、warn.h,在编译阶段建立基于文件偏移的索引目录,编译完成后输出到十六进制文本头部。本发明能将原始脚本文件重新编码后生成目标码,极大地减小了目标码,不仅大幅节省了存储空间,而且可以提高在嵌入式终端的加载和执行速度,编码方式,能有效识别整型立即数、浮点型立即数、指令和字符串,提升嵌入式终端对脚本文件的校验识别和差错处理能力,提升可靠性。不再限制单幅画面定义文件的尺寸,使主机在画面定义时能做到高度细节化。
Description
技术领域
本发明涉及一种基于32bit数据位的简化编码方法,属于编码方法的技术领域。
背景技术
机载显示领域,有一种采用特定图形描述语言编制画面定义脚本文件,实现画面显控的方法,《信息与电脑(理论版)》-陈桂梅、李国超,该文中提及机载座舱显示系统图形产生机制研究,给出了图形描述语言的概念,并建立了一整套软件实现机制,该机制通过将航空显示符号抽象成绘图关键字(以下称指令)的方式,使主机可以通过编制画面定义文件构建显示画面。
但是构建画面定义文件时存在不足:每个画面的定义文件定长存储,且存储空间限制为4KB;将单个指令编码长度限制为2Byte,并且不区分指令类型;未对画面定义文件中的指令和数据加以区分;不支持直接书写字符串,必须采用区位码方式;不支持浮点数书写,必须采用特殊的精度转换格式。
发明内容
本发明的目的是解决上述现有技术的不足,针对传统机载座舱显示构建画面定义文件所存在不足的问题,提出一种基于32bit数据位的简化编码方法。
为了达到上述目的,本发明所采用的技术方案为:
通过词语分析对符号的字符串、整数、浮点数加以区分,在写入十六进制文本时根据数据类型重新编码;
其中,符号为首字母为英文、且只包含英文数字和下划线,整数为十进制数只包含0-9数字,十六进制数以0x、0X开头且只包含0-9数字,浮点数只包含0-9数字和一个小数点,并且以数字开头和结束,字符串以英文双引号开始和结束
画面定义文件的组织格式设计,画面定义文件包括pdf.c、normal.h、draw.h、declare.h、warn.h,
其中,pdf.c是画面定义文件的实体,所有的画面元素和画面控制逻辑均通过此文件定义和修改,normal.h定义了关键字的十六进制编码,包括逻辑运算符,取位运算符,属性更改字,draw.h定义了显示控制脚本的指令的十六进制编码,在pdf.c中按特定格式引用相应指令,完成对画面的组织控制,declare.h定义了数据缓存区地址对应的关键字和精度的十六进制编码,实现外部输入到画面显示内容的映射,warn.h定义了告警字符串、以及字符串显示格式和显示优先级的十六进制编码,用于统一输出告警信息,
脚本转换时按照normal.h、declare.h、draw.h的顺序依次将宏定义关键字和数据导入符号表,再顺序解析pdf.c和warn.h,将这两个文件中引用到相关宏定义的地方替换为符号表中的数据,若宏定义未被定义则输出相应的错误提示信息;
通过建立索引表的方式,取消pdf.c存储空间固定分配的限制,在输出十六进制数据时在前端先预留一段索引表空间,在编译阶段建立基于文件偏移的索引目录,编译完成后输出到十六进制文本头部。
本发明的有益效果主要体现在:
1.能将原始脚本文件重新编码后生成目标码,极大地减小了目标码,不仅大幅节省了存储空间,而且可以提高在嵌入式终端的加载和执行速度。
2.编码方式能有效识别整型立即数、浮点型立即数、指令和字符串,提升嵌入式终端对脚本文件的校验识别和差错处理能力,提升可靠性。
3.不再限制单幅画面定义文件的尺寸,使主机在画面定义时能做到高度细节化。
附图说明
图1是本发明中十六进制编码分类表的示意图。
图2是本发明脚本转换的流程图。
图3是本发明中对符号类型重新编码的流程图。
图4是本发明编码后的十六进制文件图。
具体实施方式
本发明提供一种基于32bit数据位的简化编码方法。以下结合附图对本发明技术方案进行详细描述,以使其更易于理解和掌握。
为区分整型数据、浮点数和指令,如图1所示,对原始32bit数据进行重新编码,将整型数据高八位截断并填充0;在指令定义时引入指令头、指令类型和指令编码,详见图1。解析软件按照32bit顺序读取十六进制数据文件,若高八位为0即表示此为立即数,高八位为0x80即表示此为指令,否则即为浮点数,同时在字符串前增加一个32bit的文本指令,标志字符串,并给出字符串长度。
本发明将画面定义文件转换为十六进制数据文件的过程见图2,具体过程如下:
步骤201:选择文件,转换工具采用WIN32平台软件,通过选择窗口“打开”选项,映射到GetOpenFileName()函数,调用文件选择窗口;
步骤202:获取文件路径,此处通过读取OPENFILENAME结构的成员变量lpstrFile获取当前文件名,并根据“\”位置得到文件路径;
步骤203:检测脚本文件是否完整,除pdf.c外还必须包含normal.h、declare.h、draw.h和warn.h,此处需要在pdf.c所在路径下检测上述脚本文件是否完整,若完整继续执行步骤204,否则退出;
步骤204:初始化符号表,需要将“#define”定义的关键字和其十六进制编码对应起来,为了便于检索,采用C++中的map结构,定义了map<string,val>symbolTable符号表,此处需对其进行初始化;
步骤205:从normal.h中提取运算符号编码,normal.h文件中定义了逻辑运算符,取位运算符,属性更改字运算符,需要读取此文件中的运算符关键字和其对应的编码,保存到步骤203创建的符号表中;
步骤206:从declare.h中提取地址符号编码,大部分指令需要引用地址,实现外部输入到画面显示内容的映射,需要读取此文件中的地址符号关键字和其对应的编码,保存到步骤203创建的符号表中;
步骤207:从draw.h中提取指令编码,指令是组成脚本的基本元素,本发明需要读取此文件中的指令关键字和其对应的编码,保存到步骤203创建的符号表中;
步骤208:创建十六进制脚本文件,在脚本文件所在路径下创建.dat文件,并向后跳转固定长度的目录空间,准备写入脚本文件,脚本文件分为三个部分,第一部分为目录、第二部分为告警字符、第三部分为画面,目录占固定字节,告警字符和画面连续存储;
步骤209:读取warn.h文件,当读取到有效关键字时,检索符号表symbolTable,若关键字已定义,则输出关键字对应十六进制编码,否则输出提示告警信息,同时判断关键字WARN_LIN和PFL_LIB,作为一项告警的开始和结束标记,记录标记位置,待步骤211写入目录;
步骤210:读取pdf.c文件,当读取到有效关键字时,检索符号表symbolTable,若关键字已定义,则输出关键字对应十六进制编码,否则输出提示告警信息,同时判断关键字HEAD和EOF1,作为一幅画面的开始和结束标记,记录标记位置,待步骤211写入目录;
步骤211:写十六进制脚本目录,跳转到文件头部,根据步骤209和步骤210记录的标记位置,将告警项的起始结束地址以及画面的起始结束地址写入目录;
步骤212:删除临时文件,在读取完脚本文件后,会对其进行预处理,删除注释和空行,并写入*.tmp临时文件,此处需要将临时文件删除,通过系统调用函数system调用"del*.tmp"命令删除临时文件。
为了对区分画面定义文件中的指令和数据加以区分,同时识别PDF文件中的字符串和浮点数,需要对文本中的数据格式进行识别和标识,执行的过程见图3,具体过程如下:
步骤301:调用getline()函数读取一行字符串,调用sscanf()函数获取第一个字符串,如果获取的字符串长度为0表示字符串为空,继续读取下一行字符串。
步骤302:通过atoi()函数,将字符串转换为整型数据并记录数据类型。
步骤303:通过atoi()函数,将字符串转换为整型数据并记录数据类型。
步骤304:通过atof()函数,将字符串转换为浮点型数据并记录数据类型。
步骤305:输出的符号类型包括整型、浮点型、字符串,在输出整形数据时,裁掉高八位,并填充为0;在输出浮点型数据时,输出整个32位数据;在输出字符串时,添加32位字符串头标志且含字符串长度,再按字节序输出字符,字符按照GBK方式编码。
如图4所示,为经过重新编码后的十六进制文件图。
通过以上描述可以发现,本发明一种基于32bit数据位的简化编码方法,能将原始脚本文件重新编码后生成目标码,极大地减小了目标码,不仅大幅节省了存储空间,而且可以提高在嵌入式终端的加载和执行速度,编码方式能有效识别整型立即数、浮点型立即数、指令和字符串,提升嵌入式终端对脚本文件的校验识别和差错处理能力,提升可靠性。不再限制单幅画面定义文件的尺寸,使主机在画面定义时能做到高度细节化。
以上对本发明的技术方案进行了充分描述,需要说明的是,本发明的具体实施方式并不受上述描述的限制,本领域的普通技术人员依据本发明的精神实质在结构、方法或功能等方面采用等同变换或者等效变换而形成的所有技术方案,均落在本发明的保护范围之内。
Claims (1)
1.一种基于32bit数据位的简化编码方法,其特征在于包括如下步骤:
通过词语分析对符号的字符串、整数、浮点数加以区分,在写入十六进制文本时根据数据类型重新编码;
画面定义文件的组织格式设计,画面定义文件包括pdf.c、normal.h、draw.h、declare.h、warn.h,
其中,pdf.c是画面定义文件的实体,所有的画面元素和画面控制逻辑均通过此文件定义和修改,normal.h定义了关键字的十六进制编码,包括逻辑运算符,取位运算符,属性更改字,draw.h定义了显示控制脚本的指令的十六进制编码,在pdf.c中按特定格式引用相应指令,完成对画面的组织控制,declare.h定义了数据缓存区地址对应的关键字和精度的十六进制编码,实现外部输入到画面显示内容的映射,warn.h定义了告警字符串、以及字符串显示格式和显示优先级的十六进制编码,用于统一输出告警信息,
脚本转换时按照normal.h、declare.h、draw.h的顺序依次将宏定义关键字和数据导入符号表,再顺序解析pdf.c和warn.h,将这两个文件中引用到相关宏定义的地方替换为符号表中的数据,若宏定义未被定义则输出相应的错误提示信息;
通过建立索引表的方式,取消pdf.c存储空间固定分配的限制,在输出十六进制数据时在前端先预留一段索引表空间,在编译阶段建立基于文件偏移的索引目录,编译完成后输出到十六进制文本头部。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911194306.4A CN111061528B (zh) | 2019-11-28 | 2019-11-28 | 一种基于32bit数据位的简化编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911194306.4A CN111061528B (zh) | 2019-11-28 | 2019-11-28 | 一种基于32bit数据位的简化编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111061528A true CN111061528A (zh) | 2020-04-24 |
CN111061528B CN111061528B (zh) | 2022-10-21 |
Family
ID=70299441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911194306.4A Active CN111061528B (zh) | 2019-11-28 | 2019-11-28 | 一种基于32bit数据位的简化编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061528B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788797A (zh) * | 2010-01-06 | 2010-07-28 | 大连理工大学 | 一种嵌入式人机界面组态信息编码方法 |
-
2019
- 2019-11-28 CN CN201911194306.4A patent/CN111061528B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788797A (zh) * | 2010-01-06 | 2010-07-28 | 大连理工大学 | 一种嵌入式人机界面组态信息编码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111061528B (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5802539A (en) | Method and apparatus for managing text objects for providing text to be interpreted across computer operating systems using different human languages | |
US7663511B2 (en) | Dynamic character encoding | |
US7958133B2 (en) | Application conversion of source data | |
US8117217B2 (en) | Information processing apparatus and encoding method | |
CN106354746B (zh) | 搜索方法和搜索设备 | |
US10224958B2 (en) | Computer-readable recording medium, encoding apparatus, and encoding method | |
CN111061528B (zh) | 一种基于32bit数据位的简化编码方法 | |
JP4056199B2 (ja) | マルチバイト・キャラクタ・コード化体系内で使用される単一バイト・キャラクタ処理の最適化の方法、システム、およびコンピュータ・プログラム製品 | |
US8463759B2 (en) | Method and system for compressing data | |
CN107491327B (zh) | 一种基于发电机组控制器自定义字符串的写入方法 | |
US10942934B2 (en) | Non-transitory computer-readable recording medium, encoded data searching method, and encoded data searching apparatus | |
CN104021134A (zh) | 字体文件修改转换方法及其系统 | |
CN115712601A (zh) | 一种基于springbatch批量读取定长文件的方法 | |
CN101553800B (zh) | 将主机系统sam/vsam文件转换为开放系统sam/vsam文件的转换装置和方法 | |
CN108132780B (zh) | 一种基于自定义脚本的航空显示控制方法 | |
CN1226692C (zh) | 基于语义语言的机器翻译系统及方法 | |
CN102110082B (zh) | 一种小样文件的补字输出方法及系统 | |
CN113609821B (zh) | 一种正则表达式转换方法、装置、设备及存储介质 | |
CN111581921B (zh) | 一种文本编辑的方法、装置、计算机存储介质及终端 | |
CN113407375B (zh) | 数据库删除数据的恢复方法、装置、设备和存储介质 | |
JPS59112339A (ja) | 文書検索高速化方式 | |
CN110232189B (zh) | 语义解析方法、装置、设备和存储介质 | |
CN112486910A (zh) | 一种快速解析海量数据文件的方法 | |
CN115878851A (zh) | 一种编辑xml文件的方法、装置、电子设备及存储介质 | |
CN117931271A (zh) | 一种支持设置配置文件的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |