CN108415857B - 一种串口数据的通用处理方法 - Google Patents
一种串口数据的通用处理方法 Download PDFInfo
- Publication number
- CN108415857B CN108415857B CN201810171508.6A CN201810171508A CN108415857B CN 108415857 B CN108415857 B CN 108415857B CN 201810171508 A CN201810171508 A CN 201810171508A CN 108415857 B CN108415857 B CN 108415857B
- Authority
- CN
- China
- Prior art keywords
- data
- serial port
- content
- configuration file
- recording
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种串口数据的通用处理方法,该方法包括如下步骤:编写配置文件;程序读入配置文件;串口号自动识别检测并建立通信;根据配置文件内容定义数据图形化显示;实时通信,实时通信采用程序三级缓存的处理方法;数据记录。本发明公开了一种串口数据的通用处理方法,该方法应用于具有串口通信的功能的产品中,上位机软件的串口数据处理程序可以通过更换配置文件的方式实现不同产品型号的串口通信功能,无需再针对各个型号产品重复开发软件;串口处理程序能实现串口的自动查找;串口数据内容可以通过图形化的界面进行显示;串口数据具有三级缓存和处理机制,能够有效保证数据的实时性和准确性。
Description
技术领域
本发明属于模拟训练装置技术领域,特别是涉及一种串口数据的通用处理方法。
背景技术
基于虚拟现实和电气采集相结合的技术是模拟器目前主流的技术架构,在这种技术架构中,通常是用电气***模拟操作的部件,由虚拟现实技术模拟产生实时的训练场景,受训人员操作的信息实时通过串口通信传输给虚拟现实计算机。这种技术的关键点之一就是虚拟现实和电气***的接口数据通信。
目前,电气***采集到操作信息和虚拟现实软件的通信主要采用的串口通信技术。电气***以实时的方式,把采集到的开关量和模拟量发送虚拟现实计算机串口,虚拟现实软件按照数据通信协议对数据进行接收和解析,软件根据受训人员的操作动作信息产生相应的视景及信息,并反馈到虚拟场景中,给受训人员提供逼真的模拟环境。
根据模拟器的操作动作及采集的信号特性,串口通信数据包括开关量数据和模拟量数据两种。
目前模拟器的技术架构,在接口软件开发上,都是按照不同的模拟器型号,根据通信协议研制接口程序。接口程序通常直接在虚拟场景软件中直接编码实现。不同型号的模拟器电气***接口不一样,存在CAN总线、RS232、RS422、RS485等多种方式,通信协议的帧格式不一致,通信协议的内容不一样。各个型号模拟器需要编写各自的接口,代码的通用性和可移植性较差,无法保证程序的可靠性。
接口软件通常无法提供电气***检测功能,只能在应用软件中通过实际操作来检测电气***的信号输出是否正确和正常。在电气***测试时,如果使用串口调试助手等通用调试软件,只能得到串口数据的数值,不能直观的显示出数据含义,需要解决数据接收的显示和处理功能。
计算机操作***存在着串口的端口号改变的情况,这种情况发生后,如果对计算机***和软件不熟悉的人员只能判定为通信连接问题。对于软件使用的用户不够友好,软件的智能化程度不够。
发明内容
本发明的目的在于提供一种串口数据的通用处理方法,具体包括串口连接、协议格式、数据通信、内容显示、数据记录的方法和装置,能够让上位机软件灵活地连接串口、使用串口数据。
本发明是通过以下技术方案实现的:
一种串口数据的通用处理方法,该方法包括如下步骤:
S1、编写配置文件;
S2、程序读入配置文件;
S3、串口号自动识别检测并建立通信;
S4、根据配置文件内容定义数据图形化显示;
S5、实时通信,实时通信采用程序三级缓存的处理方法;
S6、数据记录。
进一步地,所述S1的具体步骤为,按照格式编写配置文件,在配置文件中注明文件适用的设备型号及版本,以及适用的软件版本;在配置文件中设置串口的查询模式、串口信息、软件刷新频率、串口通信协议、显示内容、数据记录格式、网络数据包内容。
进一步地,所述配置文件中还设置有软件刷新频率或软件的处理周期其中一种。
进一步地,所述串口信息包括串口号、波特率、起始位、停止位,较优的,查询模式为自动识别模式时,串口信息中包括至少一个默认串口号;
所述查询模式包括自动识别模式和指定串口模式;
所述串口通信协议包括帧头、命令码、长度、内容、校验和和帧尾,较优的,串口通信协议中包括的多种格式的数据按照顺序排列;
所述显示内容根据数据类型配置对应的含义;
所述数据记录格式包括全部数据连续记录、按照接收到的正确数据帧内容记录和按照使用帧内容记录三种模式;
所述网络数据包内容包括网络通信包类型、IP地址、网络端口号,所述网络通信包类型包括广播、组播、UDP、TCP。
进一步地,所述S3中串口号自动识别检测的方法为,使用是否能够成功打开的方式遍历***中存在的串口;按照通信协议与串口进行通信,并核对通信结果是否与通信协议一致;记录匹配成功的串口号,并能按照定义的串口参数自动打开。
进一步地,所述S4中根据配置文件内容定义数据图形化显示步骤为,在程序中预先初始化显示控件资源信息,预置开关量(通断状态)和模拟量(数值状态)两种显示控件;读取配置文件的定义内容,对应串口数据中开关量的每字节每位内容,在界面用图形化的界面更新开关状态,并在图形下面标注数据内容含义;读取配置文件的定义内容,对应串口数据中模拟量的字节数据,在界面用图形化的界面更新数值状态,并在进度条图形下面标注数据内容含义。
进一步地,所述S5中程序三级缓存的具体处理方法,建立计算机线程,实时监控串口数据,当端口产生消息后,接收端口数据,按数据接收顺序写入到一级缓存区中;程序按照设定的数据处理的周期频率,按照固定的周期间隔去一级缓冲区中获取数据,一次取完所有数据,并存储到二级缓存区中;应用程序再根据通信协议,在每个周期内对二级缓存区中的数据进行判断,按照协议内容整理出一个或多个帧数据包,并将整理的帧数据存储到三级缓存区中或者直接使用。
进一步地,S6中所述数据记录包括按照接收到的内容全部顺序记录,按照接收到的正确帧内容记录,按照使用帧内容记录。
本发明具有以下有益效果:
本发明公开了一种串口数据的通用处理方法,该方法应用于具有串口通信的功能的产品中,上位机软件的串口数据处理程序可以通过更换配置文件的方式实现不同产品型号的串口通信功能,无需再针对各个型号产品重复开发软件;串口处理程序能实现串口的自动查找;串口数据内容可以通过图形化的界面进行显示;串口数据具有三级缓存和处理机制,能够有效保证数据的实时性和准确性。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例软件运行流程示意图。
图2为本发明实施例串口号自动识别流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种串口数据的通用处理方法,该方法包括如下步骤:
步骤1、编写配置文件;
具体的,按照格式编写配置文件,在配置文件中注明此文件适用的设备型号及版本,以及适用的软件版本;在配置文件中设置串口的查询模式、串口信息、软件刷新频率、串口通信协议、显示内容、数据记录格式、网络数据包内容;
其中,所述查询模式包括自动识别模式和指定串口模式;
所述串口信息包括串口号、波特率、起始位、停止位,较优的,查询模式为自动识别模式时,串口信息中包括至少一个默认串口号;
所述软件刷新频率可以由软件的处理周期替代;
所述串口通信协议包括帧头、命令码、长度、内容、校验和和帧尾,较优的,串口通信协议中包括的多种格式的数据按照顺序排列;
所述显示内容根据数据类型配置对应的含义;
所述数据记录格式包括全部数据连续记录、按照接收到的正确数据帧内容记录和按照使用帧内容记录三种模式;
所述网络数据包内容包括网络通信包类型、IP地址、网络端口号,所述网络通信包类型包括广播、组播、UDP、TCP;
步骤2、程序读入配置文件;
步骤3、检测串口、建立通信;
具体的,如图2所示,所述串口号自动识别检测的方法为,程序启动时,软件遍历***中的所有串口,并记录能打开的串口号,然后根据记录的串口号按顺序遍历进行识别检测;
根据配置文件中定义的通信协议内容,判定是否通信协议为应答模式,如果是应答模式,则发送数据请求帧,然后接收串口数据内容,并把接收到的数据与通信协议内容进行比对,如果帧格式一致,则判定此串口为正确的串口,如果帧格式不一致或者没有数据,则继续查询测试下个串口;
步骤4、根据配置文件内容定义数据图形化显示;
具体的,根据配置文件初始化程序界面,分别显示开关量和模拟量;根据配置文件中的定义开关量含义,采用信号灯或开关状态的模式,以图形化的界面显示数据状态,并在图形下方标出数据内容,便于直接观察;模拟量根据配置文件定义字节数和高低位关系,采用数字、进度条或滑块的模式,以图形化的界面显示数据状态,并在图形下方标注数据内容,便于直接观察;
步骤5、实时通信,实时通信采用程序三级缓存的处理方式;
具体的,建立计算机线程,实时监控串口数据,当端口产生消息后,接收端口数据,按数据接收顺序写入到一级缓存区中;程序按照设定的数据处理的周期频率,按照固定的周期间隔去一级缓冲区中获取数据,一次取完所有数据,并存储到二级缓存区中;应用程序再根据通信协议,在每个周期内对二级缓存区中的数据进行判断,按照协议内容整理出一个或多个帧数据包,并将整理的帧数据存储到三级缓存区中或者直接使用;
步骤6、数据记录;
具体的,数据记录包括如下三种记录模式:按照接收到的内容全部顺序记录,一级缓存区内数据;按照接收到的正确帧内容记录,不包括错误帧和不完整帧;按照使用帧内容记录,所有在程序中用于数据处理的帧;数据记录直接按格式输出到文本文件中;
本发明的一个具体实施方式如下:
步骤1、按照格式和通信协议编写配置文件;
本实施例中,配置文件采用XML格式进行编写,编写时,按照配置文件的内容要求和XML文件的语法要求进行填写;
配置文件的内容及顺序是串口连接、程序处理周期、协议格式、内容显示、数据记录模式;
其中,串口连接包括是否自动查找串口、串口号、波特率、起始位、停止位;
协议格式包括帧头、命令码、长度、内容、校验和、帧尾;
内容显示包括对应协议的开关量名称、模拟量字节位数及名称;
步骤2、在程序初始化时读入配置文件,调用MSXML控件,并解析文件内容;
步骤3、根据配置文件中的通信协议,在程序执行初始化函数时对操作***中的串口进行遍历查找;
在程序中设定从串口1查找至串口99,如果找到能够与通信协议一致的串口,则认为该串口就是与设备连接的正确串口,程序停止查找,如果串口没有数据或者通信协议匹配失败,则认为该串口不是与设备连接的正确串口,程序串口号增加1,继续查找;
步骤4、根据配置文件中的界面定义,在程序初始化时,对程序界面进行初始化,分配显示控件的资源,初始化图形界面;
步骤5、根据配置文件中的网络数据包定义,在程序初始化时,对网络端口进行初始化,设置通信地址和端口号,启动网络通信服务进程;
步骤6、在VC中定义消息,建立线程,实时监测串口缓存的数据,并记录到一级缓存中;
步骤7、根据配置文件中定义的刷新周期,设置SetTimer定时器时间;
步骤8、在每个周期内实时处理串口数据;
步骤9、根据配置文件中的定义,在每个周期内实时记录数据内容;
步骤10、根据配置文件定义的网络数据包格式,把串口数据按照对应关系填写到网络数据包的结构体中,并按照周期发送。
以上内容仅仅是对本发明所作的举例和说明,所属本技术领域的技术人员对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (4)
1.一种串口数据的通用处理方法,其特征在于,该方法包括如下步骤:
S1、编写配置文件;
S2、程序读入配置文件;
S3、串口号自动识别检测并建立通信;
S4、根据配置文件内容定义数据图形化显示;
S5、实时通信,实时通信采用程序三级缓存的处理方法;
S6、数据记录;
所述S1的具体步骤为,按照格式编写配置文件,在配置文件中注明文件适用的设备型号及版本,以及适用的软件版本;在配置文件中设置串口的查询模式、串口信息、软件刷新频率、串口通信协议、显示内容、数据记录格式和网络数据包内容;
所述配置文件中还设置有软件刷新频率或软件的处理周期;
所述串口信息包括串口号、波特率、起始位和停止位;
所述查询模式包括自动识别模式和指定串口模式;
所述串口通信协议包括帧头、命令码、长度、内容、校验和和帧尾;
所述数据记录格式包括全部数据连续记录、按照接收到的正确数据帧内容记录和按照使用帧内容记录三种模式;
所述网络数据包内容包括网络通信包类型、IP地址和网络端口号,所述网络通信包类型包括广播、组播、UDP和TCP;
所述S3中串口号自动识别检测的方法为,使用是否能够成功打开的方式遍历***中存在的串口;按照通信协议与串口进行通信,并核对通信结果是否与通信协议一致;记录匹配成功的串口号,并能按照定义的串口参数自动打开。
2.根据权利要求1所述的一种串口数据的通用处理方法,其特征在于:所述S4中根据配置文件内容定义数据图形化显示步骤为,在程序中预先初始化显示控件资源信息,预置开关量和模拟量两种显示控件;读取配置文件的定义内容,对应串口数据中开关量的每字节每位内容,在界面用图形化的界面更新开关状态,并在图形下面标注数据内容含义;读取配置文件的定义内容,对应串口数据中模拟量的字节数据,在界面用图形化的界面更新数值状态,并在进度条图形下面标注数据内容含义。
3.根据权利要求1所述的一种串口数据的通用处理方法,其特征在于:所述S5中程序三级缓存的具体处理方法,建立计算机线程,实时监控串口数据,当端口产生消息后,接收端口数据,按数据接收顺序写入到一级缓存区中;程序按照设定的数据处理的周期频率,按照固定的周期间隔去一级缓冲区中获取数据,一次取完所有数据,并存储到二级缓存区中;应用程序再根据通信协议,在每个周期内对二级缓存区中的数据进行判断,按照协议内容整理出一个或多个帧数据包,并将整理的帧数据存储到三级缓存区中或者直接使用。
4.根据权利要求1所述的一种串口数据的通用处理方法,其特征在于:S6中所述数据记录包括按照接收到的内容全部顺序记录,按照接收到的正确帧内容记录,按照使用帧内容记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810171508.6A CN108415857B (zh) | 2018-03-01 | 2018-03-01 | 一种串口数据的通用处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810171508.6A CN108415857B (zh) | 2018-03-01 | 2018-03-01 | 一种串口数据的通用处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108415857A CN108415857A (zh) | 2018-08-17 |
CN108415857B true CN108415857B (zh) | 2021-03-23 |
Family
ID=63129734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810171508.6A Active CN108415857B (zh) | 2018-03-01 | 2018-03-01 | 一种串口数据的通用处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108415857B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739747A (zh) * | 2018-12-13 | 2019-05-10 | 西安现代控制技术研究所 | 一种串行通信信息协议通用解析方法 |
CN110032535B (zh) * | 2018-12-28 | 2021-06-29 | 北京润科通用技术有限公司 | 一种串口数据解析方法及装置 |
CN109783417B (zh) * | 2019-01-11 | 2022-03-15 | 四川长虹电器股份有限公司 | 一种串口通讯装置及方法 |
CN110417773A (zh) * | 2019-07-26 | 2019-11-05 | 湖北三江航天红峰控制有限公司 | 一种串口协议数据采集解析方法、***及装置 |
CN113284602A (zh) * | 2020-02-19 | 2021-08-20 | 深圳市理邦精密仪器股份有限公司 | 串口信息的配置方法、监护仪以及插件盒 |
CN116483751A (zh) * | 2023-04-06 | 2023-07-25 | 河南翔宇医疗设备股份有限公司 | 一种串口号识别方法、装置及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103507758A (zh) * | 2013-10-16 | 2014-01-15 | 江苏省常州技师学院 | 自动化厂房用车远程锁止和防盗***及其工作流程 |
CN105068966A (zh) * | 2015-08-19 | 2015-11-18 | 长沙威胜信息技术有限公司 | 串口自动识别方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8965719B1 (en) * | 2008-03-07 | 2015-02-24 | Versify Solutions, Inc. | Universal performance monitor for power generators |
CN101833442B (zh) * | 2009-03-13 | 2012-11-21 | 华东电网有限公司 | 一种goose和mms事件量信息可视化融合方法 |
CN101710335B (zh) * | 2009-11-20 | 2011-11-16 | 杭州华三通信技术有限公司 | 一种设备面板生成方法和装置 |
CN102004474B (zh) * | 2010-09-16 | 2012-05-30 | 西北工业大学 | 飞行器集成测试通用接口检测与控制器 |
CN102270168A (zh) * | 2011-08-09 | 2011-12-07 | 西安辉炜信息科技有限公司 | 自动检测串口信息的方法 |
CN103401930B (zh) * | 2013-08-05 | 2016-08-10 | 北京邮电大学 | 一种基于Web Service的工业监控方法及装置 |
CN105681134B (zh) * | 2016-03-04 | 2018-08-10 | 西安航天动力技术研究所 | 一种通用型多种串口通信协议检测识别方法 |
CN105979218A (zh) * | 2016-06-13 | 2016-09-28 | 中南大学 | 一种高清实时监控视频高效传输方法 |
CN106775897B (zh) * | 2017-01-13 | 2020-10-13 | 福州福大海矽微电子有限公司 | 一种用于机顶盒的驱动程序启动方法及*** |
-
2018
- 2018-03-01 CN CN201810171508.6A patent/CN108415857B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103507758A (zh) * | 2013-10-16 | 2014-01-15 | 江苏省常州技师学院 | 自动化厂房用车远程锁止和防盗***及其工作流程 |
CN105068966A (zh) * | 2015-08-19 | 2015-11-18 | 长沙威胜信息技术有限公司 | 串口自动识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108415857A (zh) | 2018-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415857B (zh) | 一种串口数据的通用处理方法 | |
CN108234614B (zh) | 一种基于自定义协议及Netty框架的交互方法 | |
CN105866575B (zh) | 一种车载显示器综合测试装置及测试方法 | |
CN103812726B (zh) | 一种数据通信设备的自动化测试方法及装置 | |
CN102946616B (zh) | 一种物联网中间件性能测试***和测试方法 | |
CN102624576B (zh) | 一种自动测试浏览器的网页下载时间的方法和*** | |
WO2017000424A1 (zh) | 协议检测方法及装置 | |
CN108429738A (zh) | 一种数据解析方法及解析平台 | |
CN111104341A (zh) | 智能家居设备自动化测试方法、装置、设备及存储介质 | |
CN106559270B (zh) | 一种城轨信号设备的数据分析方法及装置 | |
JP2000196705A (ja) | メッセ―ジ/シ―ケンス編集機能を有する自動通信プロトコル試験システムおよび試験方法 | |
CN101902367A (zh) | 一种产生测试用例的方法及装置 | |
CN111290955B (zh) | 用于地铁信号***测试软件的非侵入式自动化测试*** | |
CN105738736B (zh) | 一种智能变电站二次设备全景测试***、构建及测试方法 | |
CN113760956A (zh) | 基于asap标准的通用发动机标定*** | |
WO2007061241A1 (en) | Error test method for mobile communication terminals | |
CN111046543A (zh) | 一种智能变电站测试仿真方法 | |
WO2023147731A1 (zh) | 异常数据的处理方法、装置及电子设备 | |
CN116643542A (zh) | 一种基于低代码开发平台的油田站场数字孪生工艺组态方法、***及装置 | |
CN115827358A (zh) | 一种pfr功能的自动化测试***、方法、装置及存储介质 | |
CN204392274U (zh) | 一种智能变电站测试*** | |
CN107576864B (zh) | 自学习式继电保护自动测试方法及*** | |
CN106547670A (zh) | 远程读、写嵌入式Linux应用程序内存变量值的方法及装置 | |
CN116737483A (zh) | 一种装配测试交互方法、装置、设备及存储介质 | |
CN209441385U (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 |