一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于串口的通讯方法、装置及计算机可读介质与流程

2022-02-22 09:34:40 来源:中国专利 TAG:


1.本发明涉及通信技术领域,特别涉及基于串口的通讯方法、装置及计算机可读介质。


背景技术:

2.随着无人智能终端的普及,衍生出各式各样的设备控制方法和数据传输方法,数据传输过程中,容易出现数据被抓包分析,中途拦截篡改数据之类的危险情况,并且导致智能设备不能按正确的指令执行动作,所以在一些关键的数据传输方面,一般都采用通过串口进行智能终端与其他硬件进行通讯。
3.但是常规的串口通讯的方法也会存在一些弊端,比如串口通讯的时候,串口之间数据传输容易丢失。
4.公开号:cn107368301a公开了一种串口框架协议实现方法、存储介质及装置,该专利方案通过串口通讯与其他设备进行通讯,提升数据传输的效率和安全性,同时提供了一套数据传输框架协议,可以保证串口中的读取数据在读取过程中被其他进程使用,提升了串口通讯模块的可移植和可复用性。但该专利没有考虑到串口通讯,数据容易丢失的特点,没有针对数据容易丢失做特殊的处理,导致数据传输的可靠性较差。且该专利未提供串口通讯异常的解决方案,会导致串口通讯阻塞整个系统的流程。


技术实现要素:

5.本发明实施例提供了基于串口的通讯方法、装置及计算机可读介质,能够提高数据传输的可靠性。
6.第一方面,本发明实施例提供了基于串口的通讯方法,包括:
7.s1:通过串口建立android设备与其他通讯设备的通讯连接;
8.s2:通过所述android设备开启新的写进程,建立与所述其他通讯设备下发命令的进程;
9.s3:向所述其他通讯设备下发指令,并通过命令计时器进行计时;
10.s4:通过所述其他通讯设备开启新的读进程监听所述android设备下发的指令的返回值并执行所述android设备下发的指令对应的操作;
11.s5:判断所述android设备下发的指令是否执行完成,若未完成,则等待至命令计时器计时结束,若所述命令计时器计时结束时仍未完成,执行s3;若已完成,通过所述其他通讯设备返回表征执行完成的返回信息,执行s6;
12.s6:通过所述android设备确定所述返回信息是否完整,若是,确定所述android设备与所述其他通讯设备通讯结束。
13.可选的,所述通过所述其他通讯设备返回表征执行完成的返回信息包括:
14.所述其他通讯设备添加指令返回值的开始符号;
15.所述开始符号添加完毕后,添加指令返回值的结束符号。
16.可选的,s6包括:
17.确定所述返回信息是否包括开始和终止符号,若否,结合上一返回信息和下一返回信息对所述返回信息进行重组,确定重组后的所述返回信息是否能够正常解析。若否,执行s3,若是,确定所述android设备与所述其他通讯设备通讯结束。
18.可选的,所述确定所述返回信息是否完整后进一步包括:将所述返回信息保存在所述android设备的共享文件。
19.可选的,所述将所述返回信息保存在所述android设备的共享文件包括:
20.创建一个保存串口数据的所述共享文件;
21.将所述返回信息保存在所述共享文件中,所述共享文件用于其他进程访问并查看所述返回信息。
22.可选的,所述通过所述android设备确定所述返回信息是否完整之前进一步包括:
23.所述android设备开启新的读进程监听所述返回信息。
24.第二方面,本发明实施例提供了基于串口的通讯装置,包括:
25.连接模块,用于通过串口建立android设备与其他通讯设备的通讯连接;
26.建立模块,用于通过所述android设备开启新的写进程,建立与所述其他通讯设备下发命令的进程;
27.处理模块,用于执行:
28.s3:向所述其他通讯设备下发指令,并通过命令计时器进行计时;
29.s4:通过所述其他通讯设备开启新的读进程监听所述android设备下发的指令的返回值并执行所述android设备下发的指令对应的操作;
30.s5:判断所述android设备下发的指令是否执行完成,若未完成,则等待至命令计时器计时结束,若所述命令计时器计时结束时仍未完成,执行s3;若已完成,通过所述其他通讯设备返回表征执行完成的返回信息,执行s6;
31.s6:通过所述android设备确定所述返回信息是否完整,若是,确定所述android设备与所述其他通讯设备通讯结束。
32.可选的,所述处理模块在执行所述通过所述其他通讯设备返回表征执行完成的返回信息时,执行:
33.所述其他通讯设备添加指令返回值的开始符号;
34.所述开始符号添加完毕后,添加指令返回值的结束符号。
35.第三方面,本发明实施例提供了基于串口的通讯装置,包括:至少一个存储器和至少一个处理器;
36.所述至少一个存储器,用于存储机器可读程序;
37.所述至少一个处理器,用于调用所述机器可读程序,执行上述实施例中任一所述的方法。
38.第三方面,本发明实施例提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述实施例中任一所述的方法。
39.本发明实施例提供了基于串口的通讯方法、装置及计算机可读介质。在本发明各实施例中,通过定时和异常机制,提供了串口通讯阻塞不回复或者串口通讯数据丢失等异
常情况的解决方案,在重要的数据传输的过程中,提升数据传输的效率和安全性,通过将获取的数据存储在共享文件中,方便其他进程访问和使用,同时添加串口通讯的定时和异常机制,处理和解决串口通讯异常和未正常返回的情况,保证了串口通讯的稳定性。
附图说明
40.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1是本发明一实施例提供的一种基于基于串口的通讯方法的流程图;
42.图2是本发明一实施例提供的串口通讯的原理图;
43.图3是本发明一实施例提供的一种基于基于串口的通讯装置的示意图。
具体实施方式
44.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.如图1所示,本发明一实施例提供了一种基于基于串口的通讯方法,包括:
46.s1:通过串口建立android设备与其他通讯设备的通讯连接;
47.s2:通过android设备开启新的写进程,建立与其他通讯设备下发命令的进程;
48.s3:向其他通讯设备下发指令,并通过命令计时器进行计时;
49.s4:通过其他通讯设备开启新的读进程监听android设备下发的指令的返回值并执行android设备下发的指令对应的操作;
50.s5:判断android设备下发的指令在命令计时器计时结束是否完成,若否,执行s3;若是,通过其他通讯设备返回表征执行完成的返回信息,执行s6;
51.s6:通过android设备确定返回信息是否完整,若是,确定android设备与其他通讯设备通讯结束。
52.具体的,通过定时和异常机制,提供了串口通讯阻塞不回复或者串口通讯数据丢失等异常情况的解决方案,在重要的数据传输的过程中,提升数据传输的效率和安全性,通过将获取的数据存储在共享文件中,方便其他进程访问和使用,同时添加串口通讯的定时和异常机制,处理和解决串口通讯异常和未正常返回的情况,保证了串口通讯的稳定性。
53.命令计时器在下发指令的时候开启,在收到指令返回值时终止定时,命令计时器及时结束后仍没有收到指令返回值的情况下,重新执行下发的命令。
54.在本发明一实施例中,通过其他通讯设备返回表征执行完成的返回信息包括:
55.其他通讯设备添加指令返回值的开始符号;
56.开始符号添加完毕后,添加指令返回值的结束符号。
57.具体的,当其他通讯设备收到指令时,执行相关指令,之后添加指令返回值的开始符号,指令返回值添加完毕后,添加指令返回值的结束符号,若一条返回信息同时包含开始
符号和技术符号,则代表是正常返回值,否则为异常返回值。
58.在本发明一实施例中,s6包括:
59.确定返回信息是否包括开始和终止符号,若否,结合上一返回信息和下一返回信息对返回信息进行重组,确定重组后的返回信息是否能够正常解析。若否,执行s3,若是,确定android设备与其他通讯设备通讯结束。
60.如前文所述,可以通过确定返回信息中是否包括开始符号和终止符号来确定返回信息是否完整,若果返回信息不完整,通过数据重组机制,结合上一条和下一条返回信息来重组返回信息,同时检测重组后的返回信息是否能够正常解析,如果能够正常解析,则确定返回信息是完整的。
61.在本发明一实施例中,确定返回信息是否完整后进一步包括:将返回信息保存在android设备的共享文件。
62.在本发明一实施例中,将返回信息保存在android设备的共享文件包括:
63.创建一个保存串口数据的共享文件;
64.将返回信息保存在共享文件中,共享文件用于其他进程访问并查看返回信息。
65.具体的,创建一个保存串口数据的share文件,将串口读取到的数据保存在share文件中,其他进程访问和读取share文件中的串口数据。
66.在本发明一实施例中,通过所述android设备确定返回信息是否完整之前还包括:
67.android设备开启新的读进程监听所述返回信息。
68.android读取串口数据易丢失的说明如下:
69.1、在android中,与串口通讯过程中,读取数据是通过输入流来实现;
70.2、从输入流中读取内容的时候,是按照时间来进行读取的,即每间隔一个时间段来进行读取;
71.3、如图2所示的串口通讯的原理图中的过程,读取输入流的时候每次的间隔时间为5s,如果智能板的返回结果通过串口返回的数据恰好在5s一次的数据读取中,不会出现问题。如果返回的数据恰好在5s的边缘,返回的数据分别在前一个5s和当前5s或者在当前5s和下一个5s中,进行数据读取的时候就会出错;
72.4、常规的android的串口读取如果出现这种情况,没有做处理,所以会导致数据传输过程中不稳定,读取的数据不全;
73.5、通过添加异常机制,添加开始占位符和结束占位符的方式,如果当前5s读取信息不全面,则从上一个5s和下一个5s继续取值,从这15s中获取完整的信息,通过异常机制可以明显的提升数据传输的稳定性。
74.android读取串口数据安全性的说明如下:
75.1、在android板与智能板的数据通讯过程中,数据只在android板和智能板之间进行通讯,是一对一的通讯,在通讯过程中不会出现第三方篡改数据,以及第三方获取数据的情况;
76.2、如果第三方需要访问数据,必须经过android板或者智能板同意,申请权限才能访问;
77.3、串口间的通讯时通过串口线进行连接,不依赖于网络等介质,通讯速度响应几块;
78.通过串口通讯,可以提升数据的传输效率,同时可以保证传输数据的安全性。
79.本发明上述各实施例可以应用于各种智能终端,能够在重要的数据传输的过程中,提升数据传输的效率和安全性,通过将获取的数据存储在共享文件中,方便其他进程访问和使用,同时添加串口通讯的定时和异常机制,处理和解决串口通讯异常和未正常返回的情况,保证了串口通讯的稳定性。为优化目前串口通讯方法的不足。
80.为详细说明本发明之技术内容以下兹例举一系列一种基于串口通讯的无人售卖柜传感器通讯方法的场景详予说明。
81.无人售卖柜通过串口读取重力传感器的信息,但是重力传感器的返回值截取不全,场景如下:
82.1、初始化串口配置信息,打开重力传感器对应串口,通过串口,建立与重力传感器的通讯连接;
83.2、android设备开启新的写进程,建立与重力传感器下发硬件命令的进程;
84.3、向重力传感器下发读取重量指令,并开始命令计时器;
85.4、重力传感器开启新的读进程监听android下发的指令的返回值;
86.5、重力传感器执行android下发的读取重量的指令;
87.6、android下发的读取重量的指令执行完成,并返回执行完成的信息;
88.7、android设备开启新的读进程监听其他硬件指令执行后的返回值;
89.8、检测返回的信息是否完整,是否包含开始和终止符号,通过检测发现截取的返回值不全面,重新给重力传感器下发读取重量的指令,然后重新执行步骤3-7。
90.无人售卖柜通过串口读取门锁的信息,但是没有收到返回值,场景如下:
91.1、初始化串口配置信息,打开门锁对应串口,通过串口,建立与门锁的通讯连接;
92.2、android设备开启新的写进程,建立与门锁下发命令的进程;
93.3、向门锁下发读取门锁和门磁状态的指令,并开始命令计时器;
94.4、门锁对应的智能板开启新的读进程监听android下发的指令的返回值;
95.5、门锁对应的智能板执行android下发的读取门锁和门磁状态的指令;
96.6、android下发的读取门锁和门磁状态的指令未执行完成,命令计时器计时时间到,android重新下发读取门锁和门磁状态的指令,然后重新执行步骤3-5。
97.如图3所示,本发明实施例提供了一种基于串口的通讯装置,包括:
98.连接模块310,用于通过串口建立android设备与其他通讯设备的通讯连接;
99.建立模块320,用于通过所述android设备开启新的写进程,建立与所述其他通讯设备下发命令的进程;
100.处理模块330,用于执行:
101.s3:向所述其他通讯设备下发指令,并通过命令计时器进行计时;
102.s4:通过所述其他通讯设备开启新的读进程监听所述android设备下发的指令的返回值并执行所述android设备下发的指令对应的操作;
103.s5:判断所述android设备下发的指令是否执行完成,若未完成,则等待至命令计时器计时结束,若所述命令计时器计时结束时仍未完成,执行s3;若已完成,通过所述其他通讯设备返回表征执行完成的返回信息,执行s6;
104.s6:通过所述android设备确定所述返回信息是否完整,若是,确定所述android设
备与所述其他通讯设备通讯结束。
105.在本发明一实施例中,处理模块在执行通过其他通讯设备返回表征执行完成的返回信息时,执行:
106.其他通讯设备添加指令返回值的开始符号;
107.开始符号添加完毕后,添加指令返回值的结束符号。
108.可以理解的是,本发明实施例示意的结构并不构成基于串口的通讯装置的具体限定。在本发明的另一些实施例中,基于串口的通讯装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
109.上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
110.本发明还提供了一种计算机可读介质,存储用于使一计算机执行如本文所述的基于串口的通讯方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
111.在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
112.用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
113.此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
114.此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
115.需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
116.以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
117.上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基于上述多个实施例本领域技术人员可以知晓,可以组合上述不同
实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献