CN113127286B - 多串口通信的数据获取方法、装置、智能终端及存储介质 - Google Patents
多串口通信的数据获取方法、装置、智能终端及存储介质 Download PDFInfo
- Publication number
- CN113127286B CN113127286B CN201911392195.8A CN201911392195A CN113127286B CN 113127286 B CN113127286 B CN 113127286B CN 201911392195 A CN201911392195 A CN 201911392195A CN 113127286 B CN113127286 B CN 113127286B
- Authority
- CN
- China
- Prior art keywords
- serial port
- serial
- monitoring
- acquiring
- mark
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3027—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
Abstract
本发明公开了一种多串口通信的数据获取方法、装置、智能终端及存储介质,所述方法包括:启动预设的监听线程,若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,所述监听线程用于同时对多个串口进行监听;根据预设位置信息以及所述串口标志,确定产生所述串口信号的串口的位置,并获取所述位置处所述串口的数据,所述预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系。本发明可以实现对多串口进行统一监听,并获取到正在进行数据通信的串口的数据,使用更少的处理器资源,降低成本。
Description
技术领域
本发明涉及内存优化技术领域,尤其涉及的是一种多串口通信的数据获取方法、装置、智能终端及存储介质。
背景技术
现今的嵌入式产品已经深切地融入到了人们的现实生活中,随着嵌入式的不断发展,人们对产品的要求也越来越高,导致了处理器需要挂载的外设以及通信的数据越来越多。而作为处理器和外设通信的机制之一的 UART(串口)通信的使用也将越来越频繁。
现有的多串口监听模型由于需要使用大量的监听线程,因此需要消耗大量的内存以及资源,造成内存与资源的浪费。
因此,现有技术还有待改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种多串口通信的数据获取方法、装置、智能终端及存储介质,旨在解决现有技术的多串口监听模型由于需要使用大量的监听线程,因此需要消耗大量的内存以及资源,造成内存与资源的浪费的问题。
本发明解决问题所采用的技术方案如下:
第一方面,本发明实施例提供一种多串口通信的数据获取方法,其中,所述方法包括:
启动预设的监听线程,若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,所述监听线程用于同时对多个串口进行监听;
根据预设位置信息以及所述串口标志,确定产生所述串口信号的串口的位置,并获取所述位置处所述串口的数据,所述预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系。
在一种实施方式中,所述若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,包括:
若所述监听线程监听到所述串口信号,则获取所述串口信号,所述串口信号用于判定有串口存在数据通信;
对所述串口信号进行解析,得到与所述串口信号对应的串口标志。
在一种实施方式中,所述根据预设位置信息以及所述串口标志,确定发出所述串口信号的串口的位置,包括:
获取所述预设位置信息,并将所述串口标志与所述预设位置信息中的串口标志进行对比匹配;
若匹配成功,则根据所述预设位置信息获取所述串口标志所对应的序位号;
根据所述序位号确定产生所述串口信号的串口的位置。
在一种实施方式中,所述获取所述预设位置信息,包括:
获取预设的串口监听集合,所述串口监听集合为所有被监听的串口所对应的串口描述符所组成的集合,每一个所述串口描述符用于反映对应串口的所述预设位置信息;
分别获取每一个所述串口描述符中对应串口的所述预设位置信息。
在一种实施方式中,所述分别获取每一个所述串口描述符中对应串口的预设位置信息,包括:
分别获取每一个所述串口描述符在所述串口监听集合中所排列的序位号,所述序位号用于反映所述串口描述符所对应的串口的串口位置;
获取所述序位号对应的串口标志,所述序位号及其对应的串口标志即为所述预设位置信息。
在一种实施方式中,所述若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志之前,所述方法还包括:
将所述串口监听集合传递至预设的所述监听线程,通过所述监听线程对所述串口监听集合中的串口进行监听。
在一种实施方式中,所述获取所述位置处所述串口的数据之后,所述方法还包括:
判断在预设时间内是否接收到循环监听指令;
若在预设时间内接收到所述循环监听指令,则重复执行所述若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志的步骤;
若在预设时间内未接收到所述循环监听指令,则监听结束。
第二方面,本发明实施例还提供一种多串口通信的数据获取装置,其特征在于,所述装置包括:
标志信息获取单元,用于启动预设的监听线程,若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,所述监听线程用于同时对多个串口进行监听;
数据获取单元,用于根据所述预设位置信息以及所述串口标志,确定产生所述串口信号的串口的位置,并获取所述位置处所述串口的数据,所述预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系。
第三方面,本发明实施还提供一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如上述任意一项所述的多串口通信的数据获取方法。
第四方面,本发明实施例还提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述中任意一项所述的多串口通信的数据获取方法。
本发明的有益效果:本发明实施例通过启动预设的监听线程来同时对多个串口进行监听,由于当某个串口产生串口信号时,则就说明该串口正在进行数据通信。因此若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志。由于发明实施例中的预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系,因此当获取到串口标志后,根据预设位置信息以及所述串口标志,就可以确定产生所述串口信号的串口的位置,继而获取该位置处的所述串口的数据。由此实现多个串口进行统一监听管理,且通过一个监听线程来同时对个串口进行监听,无需使用过多的监听线程,从而达到避免资源的浪费、降低成本的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是传统的多线程监听模型的结构示意图。
图2是本发明实施例提供的多串口通信的数据获取方法具体应用时的结构示意。
图3是本发明实施例提供的多串口通信的数据获取方法的流程示意图。
图4是本发明实施例提供的多串口通信的数据获取方法中标志信息获取的流程示意图。
图5是本发明实施例提供的多串口通信的数据获取方法中确定串口位置并获取数据的流程示意图。
图6是本发明实施例提供的系统差分升级装置的原理框图。
图7是本发明实施例提供的智能终端的内部结构原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
经研究发现,现有的多串口监听模型由于需要使用大量的监听线程,具体如图1中所示,图1中可以看出,现有的多串口监听模型,包括有线程1、线程2以及线程3。在进行监听时,由于线程1、线程2以及线程3 分别对应一个不同的串口,即线程1监听Uart1数据,线程2监听Uart2 数据以及线程3监听Uart3数据。在监听的过程中,线程1、线程2、线程 3需要消耗大量的内存(具体包括内存中的.text区域(即文本区域)和.data 区域(即数据区域))及栈区域,是需要耗费是3个线程的资源。例如,在 linux系统中一个进程状态(线程为特殊的进程)使用thread_info(用于记录部分进程信息的结构体)结构体维护,该结构体在使用现有的多串口监听模型进行监听时大约使用的内存大小为7k,若3个进程则对线程的状态维护资源就需要21k。可见,现有的多串口监听模型需要消耗大量的内存以及资源,造成内存与资源的浪费。
为了解决上述问题,本实施例提供一种多串口通信的数据获取方法,主要通过启动预设的监听线程来同时对多个串口进行监听,由于当某个串口产生串口信号时,则就说明该串口正在进行数据通信。因此若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志。由于发明实施例中的预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系,因此当获取到串口标志后,根据预设位置信息以及所述串口标志,就可以确定产生所述串口信号的串口的位置,继而获取该位置处的所述串口的数据。由此实现多个串口进行统一监听管理,且通过一个监听线程来同时对个串口进行监听,无需使用过多的监听线程,从而达到避免资源的浪费、降低成本的目的。
具体地,如图2中所示,本实施例中的多串口通信的数据获取方法在具体应用时,监听串口的线程只需要调用一个监听线程(即select接口)即可监听到有数据来访的串口的数据(即图2中的Uart1数据,Uart2数据以及 Uart3数据),相比于现有的多串口监听模型,本实施例只消耗一个线程所需要的资源,因此可以节省很多资源,降低对处理器的资源要求,更加的简单实用。
举例说明,本实施例首先为每一个串口设置串口位置信息,该串口位置中存储有每一个串口的串口位置与所述串口的串口标志的对应关系。例如,A串口的串口位置为1号位,对应的串口标志为a;B串口的串口位置为2 号位,对应的串口标志为b;C串口的串口位置为3号位,对应的串口标志为 c.....。当需要对各个串口进行监听时,则启动预设的监听线程,所述监听线程用于同时对多个串口进行监听,也就是说,该监听线程可以同时对A 串口、B串口、C串口......进行监听。当监听到串口信号时,说明此时有串口正在进行数据通信,此时就根据所述串口信号获取串口标志,例如获取到的串口标志为b,则就可以用该串口标志b与预设位置信息进行匹。由于预设位置信息中与串口标志b对应的串口位置为2号位的B串口,因此就可以确定存在数据通信的串口的位置为2号位的串口,即确定出了存在数据通信的串口的位置,进而就可以获取到2号位的串口发出的数据。
示例性方法
如图3中所示,本发明实施例提供一种多串口通信的数据获取方法,所述多串口通信的数据获取方法可以应用于智能终端。在本发明实施例中,所述方法包括如下步骤:
步骤S100、启动预设的监听线程,若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,所述监听线程用于同时对多个串口进行监听。
本实施例所要实现的同时对多个串口进行监听,因此需要预先创建一个可以同时对多个串口进行监听的监听线程。所述监听线程为设置有监听函数(例如select函数)的线程,通过所述监听函数来对多个串口进行监听。由于串口在监听时,监听线程是处于阻塞状态,而当任意一个串口的中断处理器接收到串口信号后,则该监听线程的阻塞状态就会被解除,此时就说明存在数据通信的串口,而串口信号是由存在数据通信的串口产生的,因此当监听线程监听到所述串口信号后,则就根据所述串口信号获取对应的串口标志,串口标识是用于标记对应的串口(具体实施时,所述串口标识可以设置为字符或者代码等形式),即每一个串口标识对应为一个串口,因此根据该串口标志即可确定出串口的位置,即确定出是哪一个串口存在数据通信,进而就可以取所述位置处所述串口的数据。
在一种实施方式中,如图4所示,本实施例中的步骤S100包括以下步骤:
步骤S101、若所述监听线程监听到所述串口信号,则获取所述串口信号,所述串口信号用于判定有串口存在数据通信;
步骤S102、对所述串口信号进行解析,得到与所述串口信号对应的串口标志。
在一种实施方式中,本实施例预先构建一个串口监听集合,该串口监听集合中包括有所有待监听的串口,然后将所述串口监听集合传递至预设的所述监听线程,通过所述监听线程对所述串口监听集合中的串口进行监听,从而实现对多个串口进行统一监听。具体地,在监听时,可将所述串口监听集合传递至所述监听线程中的监听函数中,即select函数,通过所述select函数对所述串口监听集合中的多个串口进行监听。本实施例中的select函数主要用于Socket通信(网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket)当中,select函数机制中提供一fd_set的数据结构,实际上是一long类型的数组,每一个数组元素都能与一打开的文件句柄(不管是Socket句柄,还是其他文件或命名管道或设备句柄)建立联系,当调用select函数时,根据I/O(Input/Output,输入/输出)状态修改fd_set的内容,由此来通知执行了 select函数的进程或文件可读或可写,即实现了对串口的监听。
进一步地,监听过程中,当所述监听线程监听到某个串口的中断处理器接收到中断信号后(即该串口正在进行数据通信),该串口就会发出串口信号。由此可以看出,本实施例中的所述串口信号用于判定有串口存在数据通信,也就是说,当监听线程监听到所述串口信号,则就判定有串口存在数据通信,当监听线程没有监听到所述串口信号,则就判定没有串口存在数据通信。进一步地,所述串口信号中携带一可读取的串口标志。在监听到所述串口信号后,通过获取该串口信号,并对该串口信号进行解析处理,就可以得到该串口信号的属性信息。本实施例中的所述属性信息包括了所述串口信号中所携带的多种数据,例如包括该串口信号所携带的串口标志以及获取到所述串口信息的时间信息。因此根据从所述串口信号解析获取到的属性信息,就可得到该串口信号中的串口标志。例如,对监听到的串口信号进行解析后,得到的属性信息中包括串口标志b,则就对该串口标志进行获取。当然,如果监听到串口信号不止一个,每一个串口信号中都会携带一个串口标志,因此串口标志也就不止一个。本实施例对每一个串口信号进行解析处理,分别从每一个串口信号中获取对应的串口标志。
进一步地,步骤S200、根据预设位置信息以及所述串口标志,确定产生所述串口信号的串口的位置,并获取所述位置处所述串口的数据,所述预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系。
由于本实施例中是用于对多个串口进行统一监听,为了从多个被监听的串口中确定是哪一个串口存在数据通信,以确定存在数据通信的串口的位置。当监听到串口信息并根据所述串口信号获取与所述串口信号对应的串口标志后,则将所述串口标志与预设位置信息进行匹配。由于所述预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系,因此将得到的串口标志与预设位置信息进行匹配,就可以得到与所述串口标志所对应的串口位置,继而就可以对该串口位置的串口数据进行获取。
在一种实施方式中,如图5中所示,所述步骤S200具体包括以下步骤:
步骤S201、获取所述预设位置信息,并将所述串口标志与所述预设位置信息中的串口标志进行对比匹配;
步骤S202、若匹配成功,则根据所述预设位置信息获取所述串口标志所对应的序位号;
步骤S203、根据所述序位号确定产生所述串口信号的串口的位置。
具体实施时,为了根据获取到的串口标志来确定出产生串口信号的串口的位置,即确定出产生所述串口信号的串口在所有串口中排在第几位(即序位号),确定了产生所述串口信号的串口的序位号就确定出了产生所述串口信号的串口的位置,也就是说,本实施例中串口的位置指的就是串口的序位号。因此本实施例需要将所述串口标志与预设位置信息进行对比匹配,因此需要获取所述预设位置信息。本实施例中的所述预设位置信息是预先设置并存储在智能终端中的,可在需要的时候直接调用。
在一种实施方式中,本实施例中的串口监听集合为所有被监听的串口所对应的串口描述符所组成的集合,也就是说,每一个待监听的串口均对应一个串口描述符,而每一个所述串口描述符用于反映对应串口的所述预设位置信息。因此,本实施例可以通过获取所述串口监听集合,然后分别从每一个所述串口描述符中获取到对应串口的所述预设位置信息。
具体地,本实施例中的所述串口监听集合中具有多个串口描述符,所述串口描述符是预先设置的,且是用于反映串口的预设位置信息,即反映的是串口的位置与该串口的串口标识的对应关系。本实施例中的串口描述符以字符的形式体现,并且是按照一定的顺序进行排列的,因此每一个串口描述符在该串口监听集合中均会对应一个序位号,即表示该串口描述符排在第几位,继而就表示出了该串口描述符对应的串口排在第几位(即表示出了每一个串口的位置在哪里)。在获取所述预设位置信息时,本实施例中,首先分别获取每一个所述串口描述符在所述串口监听集合中所排列的序位号,根据所述序位号就可以知道该串口描述符对应的串口的串口位置。然后再进一步获取所述序位号对应的串口标识,所述序位号及其对应的串口标识即为所述串口位置信息。也就是说,本实施例中的预设位置信息包括串口描述符的序位号以及与所述序位号对应的预设标识。
例如,本实施例中的串口监听集合可表示为read_fd_set,而每一个串口所对应的串口描述符可表示为read_fd_set[][]。具体地,当串口描述符为read_fd_set[1][a],表示为排列在串口监听集合中序位号为1号位的串口描述符,进一步获取到read_fd_set[1][a]为A串口所对应的串口描述符,因此read_fd_set[1]即表示A串口的位置为1号位,即表示排在1号位是A串口。然后进一步获取1号位的串口对应的串口标志为a,因此A串口的预设位置信息就为1号位--串口标志a。再如,当串口描述符为read_fd_set[2][b],表示为排列在串口监听集合中序位号为2号位的串口描述符,进一步获取到 read_fd_set[2][b]为B串口所对应的串口描述符,因此read_fd_set[2][b] 即表示B串口的位置为2号位,即表示排在2号位是B串口。然后进一步获取2 号位对应的串口标志为b,因此B串口的预设位置信息就为2号位--串口标志 b。同理可以获取到其他串口的预设位置信息,知道所有待监听的串口的预设位置信息都被获取到。
进一步地,当获取到预设位置信息后,则将监听到的所述串口信号对应的串口标志与所述预设位置信息进行对比匹配,若匹配成功,则根据所述预设位置信息获取所述串口标志所对应的序位号;根据所述序位号确定产生所述串口信号的串口的位置,进而就可以获取所述位置处所述串口的数据。例如,若监听到的所述串口信号对应串口标志为b,则将串口标志b 与预设位置信息进行对比匹配。所述预设位置信息中2号位对应的是串口标志b,因此就可以根据所述串口标志b得到对应的串口的位置在2号位;,即产生所述串口信号的串口的位置在2号位,进而就可以获取2号位的串口(即 B串口)的数据。
在另一种实施方式中,本实施例在获取到串口的数据后,开始判断在预设时间内是否接收到循环监听指令,该循环监听指令是用于重复地对各个串口进行监听。若在预设时间内接收到所述循环监听指令,则重复执行所述若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志的步骤,以实现对各个串口进行循环监听。而若在预设时间内未接收到所述循环监听指令,则监听结束。本实施例中的预设时间可自主进行设置,例如5秒或者10秒,从而实现在获取到串口的数据后,判断5秒或者10秒内是否接收到循环监听指令。
综上,本发明实施例通过启动预设的监听线程来同时对多个串口进行监听,由于当某个串口产生串口信号时,则就说明该串口正在进行数据通信。因此若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志。由于发明实施例中的预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系,因此当获取到串口标志后,根据预设位置信息以及所述串口标志,就可以确定产生所述串口信号的串口的位置,继而获取该位置处的所述串口的数据。由此实现多个串口进行统一监听管理,且通过一个监听线程来同时对个串口进行监听,无需使用过多的监听线程,从而达到避免资源的浪费、降低成本的目的。
示例性设备
如图6中所示,本发明实施例提供一种多串口通信的数据获取装置,该装置包括:标志信息获取单元610以及数据获取单元620。具体地,所述标志信息获取单元610,用于启动预设的监听线程,若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,所述监听线程用于同时对多个串口进行监听。所述数据获取单元620,用于根据所述预设位置信息以及所述串口标志,确定产生所述串口信号的串口的位置,并获取所述位置处所述串口的数据,所述预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系。
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图7所示。该智能终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多串口通信的数据获取方法。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该智能终端的温度传感器是预先在智能终端内部设置,用于检测内部设备的运行温度。
本领域技术人员可以理解,图7中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
启动预设的监听线程,若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,所述监听线程用于同时对多个串口进行监听;
根据预设位置信息以及所述串口标志,确定产生所述串口信号的串口的位置,并获取所述位置处所述串口的数据,所述预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态 RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM (ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus) 直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本发明公开了一种多串口通信的数据获取方法、装置、智能终端及存储介质,所述方法包括:启动预设的监听线程,若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,所述监听线程用于同时对多个串口进行监听;根据预设位置信息以及所述串口标志,确定产生所述串口信号的串口的位置,并获取所述位置处所述串口的数据,所述预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系。本发明可以实现对多串口进行统一监听,并获取到正在进行数据通信的串口的数据,使用更少的处理器资源,降低成本。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (8)
1.一种多串口通信的数据获取方法,其特征在于,所述方法包括:
启动预设的监听线程,若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,所述监听线程用于同时对多个串口进行监听;
根据预设位置信息以及所述串口标志,确定产生所述串口信号的串口的位置,并获取所述位置处所述串口的数据,所述预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系;
将所述串口监听集合传递至所述监听线程中的监听函数中,通过所述监听函数对所述串口监听集合中的多个串口进行监听;
所述根据预设位置信息以及所述串口标志,确定发出所述串口信号的串口的位置,包括:
获取所述预设位置信息,并将所述串口标志与所述预设位置信息中的串口标志进行对比匹配;
若匹配成功,则根据所述预设位置信息获取所述串口标志所对应的序位号;
根据所述序位号确定产生所述串口信号的串口的位置;
所述获取所述预设位置信息,包括:
获取预设的串口监听集合,所述串口监听集合为所有被监听的串口所对应的串口描述符所组成的集合,每一个所述串口描述符用于反映对应串口的所述预设位置信息;
分别获取每一个所述串口描述符中对应串口的所述预设位置信息。
2.根据权利要求1所述的多串口通信的数据获取方法,其特征在于,所述若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,包括:
若所述监听线程监听到所述串口信号,则获取所述串口信号,所述串口信号用于判定有串口存在数据通信;
对所述串口信号进行解析,得到与所述串口信号对应的串口标志。
3.根据权利要求1所述的多串口通信的数据获取方法,其特征在于,所述分别获取每一个所述串口描述符中对应串口的预设位置信息,包括:
分别获取每一个所述串口描述符在所述串口监听集合中所排列的序位号,所述序位号用于反映所述串口描述符所对应的串口位置;
获取所述序位号对应的串口标志,所述序位号及其对应的串口标志即为所述预设位置信息。
4.根据权利要求1所述的多串口通信的数据获取方法,其特征在于,所述若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志之前,所述方法还包括:
将所述串口监听集合传递至预设的所述监听线程,通过所述监听线程对所述串口监听集合中的串口进行监听。
5.根据权利要求1所述的多串口通信的数据获取方法,其特征在于,所述获取所述位置处所述串口的数据之后,所述方法还包括:
判断在预设时间内是否接收到循环监听指令;
若在预设时间内接收到所述循环监听指令,则重复执行所述若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志的步骤;
若在预设时间内未接收到所述循环监听指令,则监听结束。
6.一种多串口通信的数据获取装置,其特征在于,所述装置包括:
标志信息获取单元,用于启动预设的监听线程,若监听到串口信号,则根据所述串口信号获取与所述串口信号对应的串口标志,所述监听线程用于同时对多个串口进行监听;还用于将所述串口监听集合传递至所述监听线程中的监听函数中,通过所述监听函数对所述串口监听集合中的多个串口进行监听;
数据获取单元,用于根据预设位置信息以及所述串口标志,确定产生所述串口信号的串口位置,并获取所述串口位置处的串口数据,所述预设位置信息存储有各个所述串口的串口位置与所述串口的串口标志的对应关系;还用于获取所述预设位置信息,并将所述串口标志与所述预设位置信息中的串口标志进行对比匹配;还用于获取预设的串口监听集合,所述串口监听集合为所有被监听的串口所对应的串口描述符所组成的集合,每一个所述串口描述符用于反映对应串口的所述预设位置信息;分别获取每一个所述串口描述符中对应串口的所述预设位置信息。
7.一种智能终端,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如权利要求1-5中任意一项所述的方法。
8.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-5中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911392195.8A CN113127286B (zh) | 2019-12-30 | 2019-12-30 | 多串口通信的数据获取方法、装置、智能终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911392195.8A CN113127286B (zh) | 2019-12-30 | 2019-12-30 | 多串口通信的数据获取方法、装置、智能终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127286A CN113127286A (zh) | 2021-07-16 |
CN113127286B true CN113127286B (zh) | 2023-01-20 |
Family
ID=76768806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911392195.8A Active CN113127286B (zh) | 2019-12-30 | 2019-12-30 | 多串口通信的数据获取方法、装置、智能终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127286B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490454B (zh) * | 2021-12-29 | 2023-07-18 | 广州河东科技有限公司 | 一种设备串口自适应驱动的方法、装置和串口设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894041A (zh) * | 2010-07-15 | 2010-11-24 | 中兴通讯股份有限公司 | 多虚拟串口系统及其通信方法 |
CN107229591A (zh) * | 2017-06-22 | 2017-10-03 | 湖南省力宇燃气动力有限公司 | 多串口通信方法及装置 |
CN107992367A (zh) * | 2017-10-20 | 2018-05-04 | 河南平高电气股份有限公司 | 一种Modbus串口数据处理方法 |
CN108038072A (zh) * | 2017-12-28 | 2018-05-15 | 深圳Tcl数字技术有限公司 | 串口设备的接入方法、终端设备及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8130777B2 (en) * | 2006-05-26 | 2012-03-06 | Agere Systems Inc. | Link layer device with clock processing hardware resources shared among multiple ingress and egress links |
-
2019
- 2019-12-30 CN CN201911392195.8A patent/CN113127286B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894041A (zh) * | 2010-07-15 | 2010-11-24 | 中兴通讯股份有限公司 | 多虚拟串口系统及其通信方法 |
WO2012006824A1 (zh) * | 2010-07-15 | 2012-01-19 | 中兴通讯股份有限公司 | 多虚拟串口系统及其通信方法 |
CN107229591A (zh) * | 2017-06-22 | 2017-10-03 | 湖南省力宇燃气动力有限公司 | 多串口通信方法及装置 |
CN107992367A (zh) * | 2017-10-20 | 2018-05-04 | 河南平高电气股份有限公司 | 一种Modbus串口数据处理方法 |
CN108038072A (zh) * | 2017-12-28 | 2018-05-15 | 深圳Tcl数字技术有限公司 | 串口设备的接入方法、终端设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113127286A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11055085B2 (en) | Method, apparatus, and system for hot-deploying application | |
US9652314B2 (en) | Dynamic application programming interface publication for providing web services | |
CN112118286B (zh) | 基于mdc多线程链路追踪方法、装置及计算机可读存储介质 | |
CN110971591B (zh) | 一种多进程访问可信应用的方法和系统 | |
US7385927B2 (en) | Methods and structure for improved testing of embedded systems | |
CN113127286B (zh) | 多串口通信的数据获取方法、装置、智能终端及存储介质 | |
CN112313587B (zh) | 数控系统的数据处理方法、计算机设备和存储介质 | |
CN111913822A (zh) | 一种基于amp架构的核间通信方式 | |
US20130019032A1 (en) | Apparatus and method for generating interrupt signal that supports multi-processor | |
US7418714B2 (en) | Employing three parameter buffer access in connection with SMBus notifications | |
CN114153783A (zh) | 多核通信机制的实现方法、系统、计算机设备及存储介质 | |
CN105824622B (zh) | 数据处理方法及电子设备 | |
US11861214B2 (en) | Memory device forensics and preparation | |
WO2018023966A1 (zh) | 一种缓存策略的确定方法及装置 | |
CN109426517B (zh) | 微控制单元及其控制方法和控制装置 | |
CN114416317B (zh) | 核间中断执行方法、处理方法及装置、设备和存储介质 | |
US20140053162A1 (en) | Thread processing method and thread processing system | |
US9858085B2 (en) | Information processing including BIOS apparatus, information processing method thereof, and storage medium | |
CN100492299C (zh) | 一种嵌入式软件开发的方法及系统 | |
TWI444824B (zh) | 虛擬機器記憶體的鑑識方法與電腦系統 | |
CN109669886B (zh) | 基于嵌入式系统的外设控制系统 | |
US20230325512A1 (en) | Graphics processing unit invoking method, central processing unit and apparatus | |
CN110134453B (zh) | 服务器配置重载方法及服务器 | |
CN109901935B (zh) | 一种与USB Key进行通信的方法及设备 | |
Korpelin | Boot loader and firmware update protocol for embedded devices |
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 |