CN106445462B - 一种Unity3D平台的串口数据处理方法 - Google Patents

一种Unity3D平台的串口数据处理方法 Download PDF

Info

Publication number
CN106445462B
CN106445462B CN201610830812.8A CN201610830812A CN106445462B CN 106445462 B CN106445462 B CN 106445462B CN 201610830812 A CN201610830812 A CN 201610830812A CN 106445462 B CN106445462 B CN 106445462B
Authority
CN
China
Prior art keywords
data
frame
byte
postamble
processing method
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
Application number
CN201610830812.8A
Other languages
English (en)
Other versions
CN106445462A (zh
Inventor
耿直
王吉庆
王可
柳秀喆
李亮亮
马宁
王威
杨延荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Magic Future (Shandong) Digital Technology Co.,Ltd.
Original Assignee
Ji'nan Super Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ji'nan Super Intelligent Technology Co Ltd filed Critical Ji'nan Super Intelligent Technology Co Ltd
Priority to CN201610830812.8A priority Critical patent/CN106445462B/zh
Publication of CN106445462A publication Critical patent/CN106445462A/zh
Application granted granted Critical
Publication of CN106445462B publication Critical patent/CN106445462B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种Unity3D平台的串口数据处理方法,本发明通过融合、校正将在Unity3D平台中通过串口读取的错误数据转化为正确可用的数据。通过对处理后的数据进行二次过滤,可过滤掉无法校正的空数据。在Unity3D平台中通过开辟多线程的方式实现自动动态适配硬件配置或通过设置时间阈值的方式来控制多线程的开启达到手动调节接收数据的速率。

Description

一种Unity3D平台的串口数据处理方法
技术领域
本发明涉及一种Unity3D平台的串口数据处理方法,属于Unity3D平台串口通信开发技术领域。
背景技术
串行接口简称串口,也称串行通信接口或串行通讯接口 ( 通常指 COM 接口 ),是采用串行通信方式的扩展接口。其特点是通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低了成本,特别适用于远距离通信,但传输速度较慢。由于串口使用简单,成本低廉,现在被普遍应用于产品的开发和测试过程中。
目前Unity3D平台给出的串口读取接口可以在最小单位时间点读取串口数据。但应用串口进行通信测试时存在一些读取数据错误问题从而影响对数据的使用,例如最常出现的就是每帧读取的数据并不是一帧完整的数据,绝大多数情况下会出现诸如数据采集了本应为前一帧的后半段数据和本应为此帧数据的前半段数据的结合、读取的数据为空数据或半空数据,然而当这一部分数据如果无法使用时,就会造成长时间的数据丢失,使得程序出现相应的丢帧、卡顿甚至崩溃的情况。
目前处理串口数据的硬件设备和串口处理数据的系统仅仅给出了调节接收数据速度、过滤错误数据的功能,然而如果遇到错误数据量大却无法校正仅仅将这些错误数据过滤后,则依然会出现大范围数据丢失、程序出现卡顿丢帧甚至崩溃的情况。
鉴于此,找到一种可以将这些无法使用的错误数据融合、校正、过滤成为可以使用的正确数据的方法,在Unity3D平台串口通信开发领域意义重大。
发明内容
本发明要解决的技术问题是提供一种Unity3D平台的串口数据处理方法,融合、校正、过滤Unity3D平台在读取串口数据时读取到的错误数据,保证接收到的错误数据经过处理后每一帧数据都是正确可用的。
为了解决所述技术问题,本发明采用的技术方案是:一种Unity3D平台的串口数据处理方法,所述方法包括:
标定数据的帧头字节、帧尾字节;
将此帧字节数据全部转化为一个字符串;
检查当前帧接收到的一帧数据的开头字节是否为帧头字符、帧尾是否为帧尾字符;
如果帧头帧尾字符对比正确,则将此帧数据暂时放入一个事先定义好的完整数据集合中;
如果对比错误,则通过寻找帧尾帧头的方式得出完整数据,将处理后的完整数据放入完整数据集合当中;
将上述完整数据集合的数据取出进行校验,校验正确则将数据放入可使用正确数据集合中。
本发明所述Unity3D平台的串口数据处理方法,对比错误后得到完整数据的具体步骤为:如果对比错误,则先遍历字符串,查看此帧数据中是否有帧尾帧头连接在一起的字符串,如果有则以此为界,将前段数据与后段数据分开,新建两个字符串str01、str02,此时若是第一帧读取数据,则将前段数据在内存中销毁,将后段数据加入帧头后存入str02待用,如果不是第一帧数据,则将此帧数据的前半段数据与上帧数据存储起来的后半段数据相加连为同一段数据,在数据两端加上帧头、帧尾,并遍历字符串,计算其长度是否等于一帧数据的长度,若是,其为一端完整数据,将数据存入str01,然后将此帧数据的后半段数据存入str02以备下一帧使用;若此帧数据不含有帧尾帧头,仅有帧尾存在于倒数第二个字节,则用帧头加上这段数据的第一个字节到倒数第二个字节组成一帧完整数据,然后将处理后的数据与开头数据做对比,如果对比结果正确,则此数据为处理后的完整数据,放入完整数据集合当中。
本发明所述Unity3D平台的串口数据处理方法, Unity3D平台脚本读取串口函数的后面加入此方法返回处理过的数据即为正确数据。
本发明所述Unity3D平台的串口数据处理方法,将读取数据函数放入新开辟的多线程中,按照不同计算机设备的性能自动的调节接收数据的速率,保证自动兼容所有配置的硬件设备。
本发明所述Unity3D平台的串口数据处理方法,在脚本中设置一个时间阈值,每隔所述时间阈值则开启一次多线程来接收数据。
本发明所述Unity3D平台的串口数据处理方法,根据硬件输入的数据通信协议在算法入口用参数动态设置用来验证数据完整性的帧头与帧尾的字符,来动态兼容不同硬件的通信协议。
本发明所述Unity3D平台的串口数据处理方法,根据硬件输入的数据通信协议在算法入口用参数动态设置每帧接收数据的长度,来动态兼容不同硬件的通信协议。
本发明所述Unity3D平台的串口数据处理方法,在完整数据集合取处理过的完整数据时,按照先进先出的原则将完整数据集合的数据取出,取出后按照此帧数据的校验特性进行相应的异或或者加减操作的校验,校验正确则将数据放入可使用正确数据集合当中。
本发明的有益效果:1.通过融合、校正将在Unity3D平台中通过串口读取的错误数据转化为正确可用的数据。2.通过对处理后的数据进行二次过滤,可过滤掉无法校正的空数据。3. 在Unity3D平台中通过开辟多线程的方式实现自动动态适配硬件配置或通过设置时间阈值的方式来控制多线程的开启达到手动调节接收数据的速率。4.通过在算法函数入口参数处动态的传入接收目标数据的数据长度和枕头帧尾的字符来动态的适配所有硬件的通信协议。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步的说明和限定。
一种Unity3D平台的串口数据处理方法,该方法的具体步骤为:1、标定数据的帧头字节、帧尾字节;2、将此帧字节数据全部转化为一个字符串;3、检查当前帧接收到的一帧数据的开头字节是否为帧头字符、帧尾是否为帧尾字符;4、如果帧头帧尾字符对比正确,则将此帧数据暂时放入一个事先定义好的完整数据集合当中;5、如果对比错误,则先遍历字符串,查看此帧数据中是否有帧尾帧头连接在一起的字符串,如果有则以此为界,将前段数据与后段数据分隔开来。此时若是第一帧读取数据,则新建两个字符串str01、str02,将前段数据在内存中销毁,将后段数据存入str02待用。在下一帧接收数据时若接收到的数据含有帧尾帧头,则此帧数据一定是上帧数据的延续,所以此帧数据的上半段数据与上帧数据存储起来的下半段数据可相加起来连为同一段数据,再将前后两端分别加上帧头、帧尾,保险起见,可以遍历字符串,计算其长度是否等于一帧数据的长度,若是,其为一段完整可用的数据,存入str01,然后将下半段数据存入str02以备下一帧之用。若此帧数据不含有帧尾帧头,仅存在帧尾,处于倒数第二个字节,则用帧头加上这段数据的第一个字节到倒数第二个字节组成一帧完整数据。然后将此帧处理后的数据与开头数据做对比,如果对比结果正确,则此数据为处理后的完整数据,放入处理后数据的集合当中。6、将处理后的数据按照先进先出的原则依次取出,取出后按照此帧数据的校验特性进行相应的异或或者加减操作的校验,校验正确则将数据放入可使用正确数据集合当中。7、Unity3D平台脚本读取串口函数的后面加入此种算法后返回处理过的数据即为正确数据。如图1所示,为本发明的流程图。
本实施例中,为了自动兼容所有配置的硬件设备,将读取数据函数放入新开辟的多线程中,按照不同计算机设备的性能自动的调节接收数据的速率,保证自动兼容所有配置的硬件设备。
本实施例中,为了调节接收数据的速率,根据自己软件的需求在脚本中设置一个时间阈值,每隔所述时间阈值则开启一次多线程来接收数据,通过这样的方式来静态的设置自己需要的串口读取速率。
本实施例中,为了兼容不同硬件的通信协议,可以根据硬件输入的数据通信协议在算法入口用参数动态设置用来验证数据完整性的帧头与帧尾的字符,或者根据硬件输入的数据通信协议在算法入口用参数动态设置每帧接收数据的长度。
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明作出的改进和替换,属于本发明的保护范围。

Claims (7)

1.一种Unity3D平台的串口数据处理方法,其特征在于:所述方法包括:
标定数据的帧头字节、帧尾字节;
将此帧数据全部转化为一个字符串;
检查当前帧接收到的一帧数据的开头字节是否为帧头字节、帧尾是否为帧尾字节;
如果帧头字节和帧尾字节对比正确,则将此帧数据暂时放入一个事先定义好的完整数据集合中;
如果对比错误,则通过寻找帧尾帧头的方式得出完整数据,将处理后的完整数据放入完整数据集合当中,对比错误后得到完整数据的具体步骤为:如果对比错误,则先遍历字符串,查看此帧数据中是否有帧尾帧头连接在一起的字符串,如果有则以此为界,将前段数据与后段数据分开,新建两个字符串str01、str02,此时若是第一帧读取数据,则将前段数据在内存中销毁,将后段数据加入帧头后存入str02待用,如果不是第一帧数据,则将此帧数据的前半段数据与上帧数据存储起来的后半段数据相加连为同一段数据,在数据两端加上帧头、帧尾,并遍历字符串,计算其长度是否等于一帧数据的长度,若是,其为一段完整数据,将数据存入str01,然后将此帧数据的后半段数据存入str02以备下一帧使用;若此帧数据不含有帧尾帧头,仅有帧尾存在于倒数第二个字节,则用帧头加上这段数据的第一个字节到倒数第二个字节组成一帧完整数据,然后将处理后的数据与开头字节做对比,如果对比结果正确,则此数据为处理后的完整数据,放入完整数据集合当中;
将上述完整数据集合的数据取出进行校验,校验正确则将数据放入可使用正确数据集合中。
2.根据权利要求1所述的Unity3D平台的串口数据处理方法,其特征在于:Unity3D平台脚本读取串口函数的后面加入正确数据集合中的数据即为正确数据。
3.根据权利要求1所述的Unity3D平台的串口数据处理方法,其特征在于:将读取数据函数放入新开辟的多线程中,按照不同计算机设备的性能自动地调节接收数据的速率,保证自动兼容所有配置的硬件设备。
4.根据权利要求1所述的Unity3D平台的串口数据处理方法,其特征在于:在脚本中设置一个时间阈值,每隔所述时间阈值则开启一次多线程来接收数据。
5.根据权利要求1所述的Unity3D平台的串口数据处理方法,其特征在于:根据硬件输入的数据通信协议在标定数据的帧头字节、帧尾字节之前用参数动态设置用来验证数据完整性的帧头与帧尾的字节,来动态兼容不同硬件的通信协议。
6.根据权利要求1所述的Unity3D平台的串口数据处理方法,其特征在于:根据硬件输入的数据通信协议在标定数据的帧头字节、帧尾字节之前用参数动态设置每帧接收数据的长度,来动态兼容不同硬件的通信协议。
7.根据权利要求1所述的Unity3D平台的串口数据处理方法,其特征在于:按照先进先出的原则将完整数据集合的数据取出,取出后按照此帧数据的校验特性进行相应的异或或者加减操作的校验,校验正确则将数据放入可使用正确数据集合当中。
CN201610830812.8A 2016-09-19 2016-09-19 一种Unity3D平台的串口数据处理方法 Active CN106445462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610830812.8A CN106445462B (zh) 2016-09-19 2016-09-19 一种Unity3D平台的串口数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610830812.8A CN106445462B (zh) 2016-09-19 2016-09-19 一种Unity3D平台的串口数据处理方法

Publications (2)

Publication Number Publication Date
CN106445462A CN106445462A (zh) 2017-02-22
CN106445462B true CN106445462B (zh) 2019-07-23

Family

ID=58168737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610830812.8A Active CN106445462B (zh) 2016-09-19 2016-09-19 一种Unity3D平台的串口数据处理方法

Country Status (1)

Country Link
CN (1) CN106445462B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739572B (zh) * 2018-12-25 2022-01-28 江南机电设计研究所 一种通用化一体化串口通信方法
CN114003522A (zh) * 2021-10-29 2022-02-01 四川虹美智能科技有限公司 基于串口的通讯方法、装置及计算机可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102142917A (zh) * 2011-03-28 2011-08-03 华为技术有限公司 数据帧的定位方法和装置
CN102510323A (zh) * 2011-09-22 2012-06-20 航天科工惯性技术有限公司 一种串口数据的帧识别方法
CN103347025A (zh) * 2013-07-10 2013-10-09 北京航天自动控制研究所 一种空间飞行器的遥测数据处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102142917A (zh) * 2011-03-28 2011-08-03 华为技术有限公司 数据帧的定位方法和装置
CN102510323A (zh) * 2011-09-22 2012-06-20 航天科工惯性技术有限公司 一种串口数据的帧识别方法
CN103347025A (zh) * 2013-07-10 2013-10-09 北京航天自动控制研究所 一种空间飞行器的遥测数据处理方法

Also Published As

Publication number Publication date
CN106445462A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
USRE40918E1 (en) Method and device for transmitting data frames
CN107113087B (zh) 将帧经由总线系统从发送器串行传输至至少一个接收器的方法和用于总线系统的参与站
CN106445462B (zh) 一种Unity3D平台的串口数据处理方法
CN101171790B (zh) 具有适应性选通偏移调整功能的接收机
CN109936624A (zh) Http请求报文头的适配方法、装置和计算机设备
CN107148760B (zh) 将帧经由总线系统从发送器串行传输至至少一个接收器的方法和用于总线系统的参与站
CA2743273A1 (en) Method and device for intercepting junk mail
CN110704356A (zh) 一种通用的解析串口数据方法
CN111539206B (zh) 一种确定敏感信息的方法、装置、设备及存储介质
CN104765573A (zh) 一种串口通讯数据处理分析方法
US11477056B2 (en) Method and apparatus for controlling communication compensation, and air conditioner
CN109885525B (zh) Uart接收方法、装置、电子设备及可读存储介质
CA1294379C (en) Method and arrangement for compensating shifts in delay produced by the doppler effect in bursts in a tdma frame
US9083381B2 (en) Method of determining at least one parameter of an error-correcting code implemented on transmission, corresponding device and computer program
JPWO2016185513A1 (ja) パケットフィルタ装置、及びパケットフィルタ方法
US7792233B2 (en) Packet preamble search method and device thereof
EP1603302B1 (de) Verfahren und Vorrichtung zur Codierung, Übertragung und Decodierung digitaler Daten
US20210200524A1 (en) Method and apparatus for upgrading software
JPS58116825A (ja) 情報連照方式
CN110471669B (zh) 一种空指针引用的检测方法及检测装置
US9154294B2 (en) Resynchronization method of a received stream of groups of bits
CN110049312B (zh) 一种arinc818协议故障注入方法及装置
CN109743178B (zh) 一种防止区块链的块链被劫持的方法及系统
US6769092B1 (en) Method and system for testing linked list integrity
JP2763394B2 (ja) 通信制御装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231114

Address after: Room 7-1912, No.5.7.9 Jingsi Road, Shizhong District, Jinan City, Shandong Province, 250000

Patentee after: Magic Future (Shandong) Digital Technology Co.,Ltd.

Address before: Room C816, Jiahui Global Plaza, No. 548 Beiyuan Street, Jinan City, Shandong Province, 250014

Patentee before: JINAN CHAOGAN INTELLIGENT TECHNOLOGY CO.,LTD.