CN114257561A - 一种串口网口的数据透传方法及装置、设备、存储介质 - Google Patents
一种串口网口的数据透传方法及装置、设备、存储介质 Download PDFInfo
- Publication number
- CN114257561A CN114257561A CN202111562082.5A CN202111562082A CN114257561A CN 114257561 A CN114257561 A CN 114257561A CN 202111562082 A CN202111562082 A CN 202111562082A CN 114257561 A CN114257561 A CN 114257561A
- Authority
- CN
- China
- Prior art keywords
- request command
- serial port
- port
- data
- network
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供了一种串口网口的数据透传方法及装置、设备、存储介质,所述方法包括:在串口和多个网口之间构建网口数据队列,将各个网口的请求命令依次存储到所述网口数据队列中;在所述网口数据队列中按顺序每次取出一个所述请求命令向串口发送;所述串口在指定时间内处理所述请求命令并回复发送该请求命令的网口,若在指定时间内未处理,则在之后采用惩罚机制对所述未处理的请求命令进行再次处理。本申请通过采用队列式阻塞处理机制,通过同一线程对不同网口的请求命令进行顺序循环处理,从而提高串口网口双向主从协议数据透传的准确性和数据处理效率,同时采用单线程也减少了系统资源的占用。
Description
技术领域
本申请涉及工业网关技术领域,特别涉及一种串口网口的数据透传方法及装置、设备、存储介质。
背景技术
在串口网口的数据透传过程中,可以采用串口数据向网口广播的机制进行数据透传。具体的,串口向多网口转发数据,不涉及协议报文转换时,直接进行串口数据复制,并转发至每一个网口,涉及协议报文转换时,将串口数据存入网口数据缓冲区,完成校验后转成协议TCP报文后向网口发出。
在不涉及协议报文转换时,这种数据广播机制是最高效的透传方式,但如果涉及协议报文转换,就容易面临报文回复错误问题。以Modbus通信为例,Modbus从站在向主站回复数据时只区分节点ID和功能码,这样就会导致两个或者几个主站分别向同一个从站发送采集命令,以采集不同起始地址、相同数据长度的数据时,该从站可能会将该不同起始地址、相同数据长度的数据同时反馈给上述两个或者几个主站,导致每个主站收到的数据不停跳变。举例说明,假如主站A、B同时向从站发送采集命令,主站A想要地址0-10的数据,主站B想要地址20-30的数据,但是从站在回复他们的时候报文的身份信息都是一样的,只有数据不一样,如果两个主站都收到了地址0-10和地址20-30的数据,就都会解析出来,从而导致主站A或B收到的数据都会不停跳变。另外由于串口的数据接收能力有限,较长的报文会分包,极大的增加了数据处理的复杂度,导致数据丢包严重。
除此之外,串口网口的数据透传过程还可以采用独立线程队列调度机制,具体的,可以采用独立线程对网口请求任务排序,每次从任务序列中取出网口请求做处理,从而保证了数据处理的准确性。但是,此种机制需要根据网口请求任务对应创建多个线程,并且多个线程间会复用数据,会增加数据异常的风险,同时多线程也会造成系统处理负担,增加对系统的资源占用。
发明内容
有鉴于此,本申请提出一种串口网口的数据透传方法及装置、设备、存储介质,通过采用队列式阻塞处理机制,通过同一线程对不同网口的请求命令进行顺序循环处理,从而提高串口网口双向主从协议数据透传的准确性和数据处理效率,同时采用单线程也减少了系统资源的占用。
第一方面,本申请提供了一种串口网口的数据透传方法,所述方法包括:
在串口和多个网口之间构建网口数据队列,将各个网口的请求命令依次存储到所述网口数据队列中;
在所述网口数据队列中按顺序每次取出一个所述请求命令向串口发送;
所述串口在指定时间内处理所述请求命令并回复发送该请求命令的网口,若在指定时间内未处理,则在之后采用惩罚机制对所述未处理的请求命令进行再次处理。
由上,本申请通过在串口和多个网口之间构建网口数据队列,用于按顺序存储网口发送的请求命令,并通过每次取出一个请求命令发送给串口,当串口在指定时间内处理完成该请求命令并回复给对应的网口后,再取出下一个请求命令发送给串口。当串口在指定时间内未处理该请求命令时,则针对该请求命令,在之后的处理过程中采用惩罚机制进行再次处理,提高了串口的容错率,并且防止串口因对某个请求命令未及时处理而长时间等待,导致的对其他请求命令的延迟处理,提高了串口网口的数据透传的整体效率。本申请采用队列式阻塞机制,每次只处理一个请求,并发送一个请求对应的数据,由此可有效解决现有数据广播机制容易产生的报文回复错误问题,同时由于本申请采用单线程的处理方式,也减少了对系统资源的占用。
可选的,所述在之后采用惩罚机制对所述未处理的请求命令进行再次处理包括:
当所述串口第一次超出指定时间未处理所述请求命令时,该串口采用间隔一次的方式,在第三次接收到该请求命令时再次处理;并在每次未处理之后增加一次间隔次数,直至完成对该请求命令的再次处理。
由上,由于未处理的请求命令,会由对应网口再次发送,并重新存储到网口数据队列的末尾,本申请可采用间隔处理的惩罚机制对未处理的请求命令进行再次处理,当串口第一次超出指定时间未处理该请求命令时,则根据该惩罚机制,该串口在下次接收该请求命令时,直接忽略,在第三次接收该请求命令时才再次尝试处理,若第三次仍未在指定时间完成处理,则增加一次间隔次数,将第四次和第五次接收的该请求命令进行忽略,第六次接收到该请求命令时,再次尝试处理,直至完成对该请求命令的处理。采用间隔次数的惩罚机制对未处理的请求命令进行再次处理,即可提高串口对全部请求命令的处理效率,还可给串口留出时间,对该请求命令进行多次处理,以提高串口的容错率。
可选的,所述在之后采用惩罚机制对所述未处理的请求命令进行再次处理包括:
当所述串口超出指定时间未处理所述请求命令时,则设置一段延时时间,在该延时时间内,忽略所述未处理的请求命令,直至该延时时间结束后,所述串口对再次接收到的所述未处理的请求命令进行再次处理;并在每次未处理之后延长一次所述延时时间,直至完成对所述请求命令的再次处理。
由上,本申请还可以采用延时处理的惩罚机制对未处理的请求命令进行再次处理,通过设置延时时间的方式,当串口第一次超出指定时间未处理该请求命令时,则根据该惩罚机制,该串口在该延时时间内,每次都忽略该请求命令,不再处理,直至该延时时间结束后,再次接收该请求命令时,进行再次处理,若仍未在指定时间内处理完成,则延长设置的延时时间,直至完成对该请求命令的再次处理,该延时处理的惩罚机制也可提高串口对全部请求命令的处理效率,还可给串口留出时间,对该请求命令进行多次处理,以提高串口的容错率。
可选的,所述请求命令的取出和向串口发送是通过串口处理函数完成的,该串口处理函数还用于串口数据的收发。
由上,通过采用一串口处理函数,对网口数据队列中的请求命令进行取出,并发送给串口,同时在串口完成对该请求命令的处理后,将串口的回复数据发送给对应的网口。
可选的,所述网口数据队列采用队列阻塞机制存储所述各个网口的请求命令。
由上,通过采用队列阻塞机制,将各个网口的请求命令按照时间顺序存储在网口数据队列中,并通过串口处理函数按照存储的先后顺序,依次取出并发送至串口,等待串口对每个请求命令的处理及回复。队列式阻塞机制由于只需要一个线程,可降低对系统资源的占用,同时还能保证对请求命令进行处理时的容错率,不会遗漏。
可选的,所述网口的请求命令包括网口的数据采集命令或网口的数据传输命令。
由上,网口的请求命令可以是网口向串口的数据采集命令,还可以是网口向串口的数据传输命令,通过本申请,可实现串口与多个网口之间的双向数据透传。
可选的,所述网口的请求命令中存储一个Socket指针,所述串口采用Socket接口处理所述网口的请求命令,通过将所述请求命令的Socket指针赋值给所述Socket接口,实现串口与网口的通信连接及数据收发。
由上,Socket接口是调用接口的一种,通过在每个请求命令中存储一个Socket指针,串口采用Socket接口对请求命令进行处理时,通过将Socket指针赋值给Socket接口,由此可建立串口与该网口的通信连接,并实现数据的收发。
第二方面,本申请提供了一种串口网口的数据透传装置,包括:
存储模块,用于在串口和多个网口之间构建网口数据队列,将各个网口的请求命令依次存储到所述网口数据队列中;
串口处理模块,用于在所述网口数据队列中按顺序每次取出一个所述请求命令向串口发送;所述串口在指定时间内处理所述请求命令并回复发送该请求命令的网口,若在指定时间内未处理,则在之后采用惩罚机制对所述未处理的请求命令进行再次处理。
第三方面,本申请提供了一种计算设备,所述计算设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的串口网口的数据透传方法。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述的串口网口的数据透传方法。
本申请的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的一种串口网口的数据透传方法的流程图;
图2为本申请实施例提供的一种串口网口的数据透传装置的结构图;
图3为本申请实施例提供的一种计算设备的结构图。
应理解,上述结构示意图中,各框图的尺寸和形态仅供参考,不应构成对本申请实施例的排他性的解读。结构示意图所呈现的各框图间的相对位置和包含关系,仅为示意性地表示各框图间的结构关联,而非限制本申请实施例的物理连接方式。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
如图1所示,本申请实施例提供了一种串口网口的数据透传方法,该方法通过采用单线程的队列阻塞机制,对串口和多个网口之间的请求命令进行顺序循环处理,从而实现串口网口的双向数据透传。如图1所示,该串口网口的数据透传方法包括:
S10:在串口和多个网口之间构建网口数据队列,将各个网口的请求命令依次存储到所述网口数据队列中;
本实施例中,通过在串口和多个网口之间构建网口数据队列,并按照单线程的队列阻塞机制,将各个网口的请求命令按顺序依次存储在该网口数据队列中,具体的,可以按照各个网口发送请求命令的先后时间顺序进行存储,当网口数据队列中无法继续存储网口的请求命令时,此时根据阻塞机制,暂停对网口的请求命令的采集和存储,直至网口数据队列中存储的请求命令被取出,则继续存储,由此可保证后续串口能够按照该网口数据队列依次对网口的请求命令进行处理,保证处理容错率,避免遗漏。
其中,网口的请求命令具体可以是网口的数据采集命令或者网口的数据传输命令,串口在执行对该请求命令的处理时,可根据请求命令的类型,进行数据采集并回复给对应的网口,或者将该网口的数据传输至其他设备,并将传输完成的信息回复给该网口。
S20:在所述网口数据队列中按顺序每次取出一个所述请求命令向串口发送;
根据上述构建的网口数据队列,可以按照存储的先后顺序,在该网口数据队列中,每次取出一个请求命令向串口发送,等待串口处理完成或者在指定时间内未处理时,再取出下一个请求命令向串口发送。由此可保证,串口每次只处理一个请求命令,并且按照网口数据队列的先后顺序对所有请求命令进行依次处理,保证了处理效率,同时减少对系统资源的占用。
其中,可以通过一串口处理函数执行所述请求命令的取出及向串口发送,并将串口的回复数据发送到对应的网口,该串口处理函数通常存在于串口处理模块或串口处理层中,用于实现串口数据的收发。本实施例中,该串口处理函数通过在网口数据队列中依次取出网口的请求命令,并以每次只发送一个请求命令的方式发送给串口,等待串口处理完成后,通过该串口处理函数将串口的回复数据发送给对应的网口。
S30:所述串口在指定时间内处理所述请求命令并回复发送该请求命令的网口;
当串口接收到上述网口的请求命令时,开始执行对该请求命令的处理,假设请求命令为数据采集命令时,则该串口根据该数据采集命令采集对应的数据,并通过上述串口处理函数回复给对应的网口,假设请求命令为数据传输命令时,则该串口根据该数据传输命令将数据传输给对应的设备,并通过上述串口处理函数将传输完成的信息回复给对应的网口。本实施例通过设定一指定时间,当串口在指定时间内完成该请求命令的处理,并回复给对应网口时,则由串口处理函数在网口数据队列中取出下一个请求命令,发送给串口,由串口进行处理,从而实现对网口数据队列中的所有请求命令的顺序处理。
S40:若在指定时间内未处理,则在之后采用惩罚机制对所述未处理的请求命令进行再次处理。
当串口在指定时间内,未处理完成接收到的请求命令时,此时标记该请求命令,由串口处理函数取出下一个请求命令发送至串口进行处理,而之前未处理的请求命令,网口由于未收到回复,会再次发送该请求命令,并存储在网口数据队列的末尾,串口可以在之后采用惩罚机制对该未处理的请求命令进行再次处理。
其中,本实施例可以采用间隔处理的惩罚机制对未处理的请求命令进行再次处理,具体的,当所述串口第一次超出指定时间未处理所述请求命令时,该串口采用间隔一次的方式,该串口在第二次接收该请求命令时,直接忽略,在第三次接收到该请求命令时再次处理;若第三次仍未在指定时间完成处理,则增加一次间隔次数,将第四次和第五次接收的该请求命令进行忽略,第六次接收到该请求命令时,再次尝试处理,以此进行间隔次数的叠加,直至完成对该请求命令的处理。
在一些实施例中,还可以采用延时处理的惩罚机制对未处理的请求命令进行再次处理,通过设置延时时间的方式,当串口第一次超出指定时间未处理该请求命令时,则根据该惩罚机制,该串口在该延时时间内,每次都忽略该请求命令,不再处理,直至该延时时间结束后,再次接收该请求命令时,进行再次处理,若仍未在指定时间内处理完成,则延长设置的延时时间,直至完成对该请求命令的再次处理。
本申请通过采用惩罚机制对未处理的请求命令进行再次尝试处理,即可保证串口不会因某个未处理的请求命令而耽误对其他请求命令的处理,保证了串口的数据处理效率,同时还能通过对请求命令进行多次尝试处理,提高串口的处理容错率。
在一些实施例中,可以通过在上述网口的请求命令中存储一个Socket指针,所述串口采用Socket接口处理所述网口的请求命令,通过将所述请求命令的Socket指针赋值给所述Socket接口,实现串口与网口的通信连接及数据收发。
综上,本申请实施例通过采用单线程的队列式阻塞处理机制,通过同一线程对不同网口的请求命令进行顺序循环处理,从而提高串口网口双向主从协议数据透传的准确性和数据处理效率。本申请采用队列式阻塞机制,每次只处理一个请求,并发送一个请求对应的数据,不会出现“两个或者几个主站分别向同一个从站发送采集命令,以采集不同起始地址、相同数据长度的数据时,该从站不会将该不同起始地址、相同数据长度的数据同时反馈给上述两个或者几个主站的情况,由此可有效解决现有数据广播机制容易产生的报文回复错误问题,同时采用单线程也减少了系统资源的占用。
如图2所示,本申请实施例还提供了一种串口网口的数据透传装置,该装置可用于实现上述的串口网口的数据透传方法的任一步骤及其可选的实施例。如图2所示,该装置包括存储模块210和串口处理模块220;
存储模块210用于执行上述串口网口的数据透传方法的S10步骤,用于在串口和多个网口之间构建网口数据队列,将各个网口的请求命令依次存储到所述网口数据队列中;串口处理模块220用于执行上述串口网口的数据透传方法的S20-S40步骤,用于在所述网口数据队列中按顺序每次取出一个所述请求命令向串口发送;所述串口在指定时间内处理所述请求命令并回复发送该请求命令的网口,若在指定时间内未处理,则在之后采用惩罚机制对所述未处理的请求命令进行再次处理。
应理解的是,本申请实施例中的装置可以由软件实现,例如可以由具有上述功能的计算机程序或指令来实现,相应计算机程序或指令可以存储在终端内部的存储器中,通过处理器读取该存储器内部的相应计算机程序或指令来实现上述功能。或者,本申请实施例的装置还可以由硬件来实现。又或者,本申请实施例中的装置还可以由处理器和软件模块的结合实现。
应理解,本申请实施例中的装置或模块的处理细节可以参考图1所示的实施例及相关扩展实施例的相关表述,本申请实施例将不再重复赘述。
图3是本申请实施例提供的一种计算设备1000的结构性示意性图。该计算设备1000包括:处理器1010、存储器1020、通信接口1030、总线1040。
应理解,图3所示的计算设备1000中的通信接口1030可以用于与其他设备之间进行通信。
其中,该处理器1010可以与存储器1020连接。该存储器1020可以用于存储该程序代码和数据。因此,该存储器1020可以是处理器1010内部的存储单元,也可以是与处理器1010独立的外部存储单元,还可以是包括处理器1010内部的存储单元和与处理器1010独立的外部存储单元的部件。
可选的,计算设备1000还可以包括总线1040。其中,存储器1020、通信接口1030可以通过总线1040与处理器1010连接。总线1040可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线1040可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本申请实施例中,该处理器1010可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器1010采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器1020可以包括只读存储器和随机存取存储器,并向处理器1010提供指令和数据。处理器1010的一部分还可以包括非易失性随机存取存储器。例如,处理器1010还可以存储设备类型的信息。
在计算设备1000运行时,所述处理器1010执行所述存储器1020中的计算机执行指令执行上述方法的操作步骤。
应理解,根据本申请实施例的计算设备1000可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备1000中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行上述串口网口的数据透传方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是,本申请所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,上述对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
说明书和权利要求书中的词语“第一、第二、第三等”或模块210、模块220等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在上述的描述中,所涉及的表示步骤的标号,并不表示一定会按此步骤执行,还可以包括中间的步骤或者由其他的步骤代替,在允许的情况下可以互换前后步骤的顺序,或同时执行。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
注意,上述仅为本申请的较佳实施例及所运用的技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明的构思的情况下,还可以包括更多其他等效实施例,均属于本发明的保护范畴。
Claims (10)
1.一种串口网口的数据透传方法,其特征在于,所述方法包括:
在串口和多个网口之间构建网口数据队列,将各个网口的请求命令依次存储到所述网口数据队列中;
在所述网口数据队列中按顺序每次取出一个所述请求命令向串口发送;
所述串口在指定时间内处理所述请求命令并回复发送该请求命令的网口,若在指定时间内未处理,则在之后采用惩罚机制对所述未处理的请求命令进行再次处理。
2.根据权利要求1所述的方法,其特征在于,所述在之后采用惩罚机制对所述未处理的请求命令进行再次处理包括:
当所述串口第一次超出指定时间未处理所述请求命令时,该串口采用间隔一次的方式,在第三次接收到该请求命令时再次处理;并在每次未处理之后增加一次间隔次数,直至完成对该请求命令的再次处理。
3.根据权利要求1所述的方法,其特征在于,所述在之后采用惩罚机制对所述未处理的请求命令进行再次处理包括:
当所述串口超出指定时间未处理所述请求命令时,则设置一段延时时间,在该延时时间内,忽略所述未处理的请求命令,直至该延时时间结束后,所述串口对再次接收到的所述未处理的请求命令进行再次处理;并在每次未处理之后延长一次所述延时时间,直至完成对所述请求命令的再次处理。
4.根据权利要求1所述的方法,其特征在于,所述请求命令的取出和向串口发送是通过串口处理函数完成的,该串口处理函数还用于串口数据的收发。
5.根据权利要求1所述的方法,其特征在于,所述网口数据队列采用队列阻塞机制存储所述各个网口的请求命令。
6.根据权利要求1所述的方法,其特征在于,所述网口的请求命令包括网口的数据采集命令或网口的数据传输命令。
7.根据权利要求1所述的方法,其特征在于,所述网口的请求命令中存储一个Socket指针,所述串口采用Socket接口处理所述网口的请求命令,通过将所述请求命令的Socket指针赋值给所述Socket接口,实现串口与网口的通信连接及数据收发。
8.一种串口网口的数据透传装置,其特征在于,包括:
存储模块,用于在串口和多个网口之间构建网口数据队列,将各个网口的请求命令依次存储到所述网口数据队列中;
串口处理模块,用于在所述网口数据队列中按顺序每次取出一个所述请求命令向串口发送;所述串口在指定时间内处理所述请求命令并回复发送该请求命令的网口,若在指定时间内未处理,则在之后采用惩罚机制对所述未处理的请求命令进行再次处理。
9.一种计算设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现权利要求1至7任意一项所述的串口网口的数据透传方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被计算机执行时实现如权利要求1至7任意一项所述的串口网口的数据透传方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111562082.5A CN114257561B (zh) | 2021-12-17 | 2021-12-17 | 一种串口网口的数据透传方法及装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111562082.5A CN114257561B (zh) | 2021-12-17 | 2021-12-17 | 一种串口网口的数据透传方法及装置、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114257561A true CN114257561A (zh) | 2022-03-29 |
CN114257561B CN114257561B (zh) | 2023-02-07 |
Family
ID=80795928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111562082.5A Active CN114257561B (zh) | 2021-12-17 | 2021-12-17 | 一种串口网口的数据透传方法及装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114257561B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1972314A (zh) * | 2006-09-30 | 2007-05-30 | 杭州华为三康技术有限公司 | 以太网接口上模拟串行接口的方法以及应用该方法的部件 |
US20100057932A1 (en) * | 2006-07-10 | 2010-03-04 | Solarflare Communications Incorporated | Onload network protocol stacks |
CN103166971A (zh) * | 2013-03-15 | 2013-06-19 | 广东盈嘉科技工程发展股份有限公司 | 一种多路复用串口协议转换器 |
CN205377930U (zh) * | 2015-12-14 | 2016-07-06 | 南京大全自动化科技有限公司 | 一种将modbus规约从tcp/ip链路转换到串行链路的设备 |
US20160306680A1 (en) * | 2013-12-26 | 2016-10-20 | Huawei Technologies Co., Ltd. | Thread creation method, service request processing method, and related device |
CN108599904A (zh) * | 2018-03-21 | 2018-09-28 | 中兴通讯股份有限公司 | 一种数据传输方法及装置 |
CN110620713A (zh) * | 2019-09-11 | 2019-12-27 | 北京演能科技有限公司 | Modbus协议共享通讯的方法和装置 |
CN110955626A (zh) * | 2019-11-26 | 2020-04-03 | 山东有人信息技术有限公司 | 一种在串行链路上实现Modbus通信的方法与系统 |
CN111464372A (zh) * | 2019-01-18 | 2020-07-28 | 广东天创同工大数据应用有限公司 | 一种提高通讯刷新速度的方法 |
CN111669308A (zh) * | 2020-06-15 | 2020-09-15 | 上海豫源电力科技有限公司 | 基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质 |
CN112380153A (zh) * | 2021-01-13 | 2021-02-19 | 杭州华塑科技股份有限公司 | 一种数据访问方法、系统、装置、设备及存储介质 |
CN112671898A (zh) * | 2020-12-23 | 2021-04-16 | 浙江工业大学 | 一种基于嵌入式设备的远程通信控制系统 |
CN113259268A (zh) * | 2021-07-02 | 2021-08-13 | 北京城建智控科技有限公司 | 一种支持冗余架构的网口与串口数据转发网关及方法 |
US20210373829A1 (en) * | 2020-05-31 | 2021-12-02 | Kyocera Document Solutions Inc. | Job handling with timing out |
-
2021
- 2021-12-17 CN CN202111562082.5A patent/CN114257561B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100057932A1 (en) * | 2006-07-10 | 2010-03-04 | Solarflare Communications Incorporated | Onload network protocol stacks |
CN1972314A (zh) * | 2006-09-30 | 2007-05-30 | 杭州华为三康技术有限公司 | 以太网接口上模拟串行接口的方法以及应用该方法的部件 |
CN103166971A (zh) * | 2013-03-15 | 2013-06-19 | 广东盈嘉科技工程发展股份有限公司 | 一种多路复用串口协议转换器 |
US20160306680A1 (en) * | 2013-12-26 | 2016-10-20 | Huawei Technologies Co., Ltd. | Thread creation method, service request processing method, and related device |
CN205377930U (zh) * | 2015-12-14 | 2016-07-06 | 南京大全自动化科技有限公司 | 一种将modbus规约从tcp/ip链路转换到串行链路的设备 |
CN108599904A (zh) * | 2018-03-21 | 2018-09-28 | 中兴通讯股份有限公司 | 一种数据传输方法及装置 |
CN111464372A (zh) * | 2019-01-18 | 2020-07-28 | 广东天创同工大数据应用有限公司 | 一种提高通讯刷新速度的方法 |
CN110620713A (zh) * | 2019-09-11 | 2019-12-27 | 北京演能科技有限公司 | Modbus协议共享通讯的方法和装置 |
CN110955626A (zh) * | 2019-11-26 | 2020-04-03 | 山东有人信息技术有限公司 | 一种在串行链路上实现Modbus通信的方法与系统 |
US20210373829A1 (en) * | 2020-05-31 | 2021-12-02 | Kyocera Document Solutions Inc. | Job handling with timing out |
CN111669308A (zh) * | 2020-06-15 | 2020-09-15 | 上海豫源电力科技有限公司 | 基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质 |
CN112671898A (zh) * | 2020-12-23 | 2021-04-16 | 浙江工业大学 | 一种基于嵌入式设备的远程通信控制系统 |
CN112380153A (zh) * | 2021-01-13 | 2021-02-19 | 杭州华塑科技股份有限公司 | 一种数据访问方法、系统、装置、设备及存储介质 |
CN113259268A (zh) * | 2021-07-02 | 2021-08-13 | 北京城建智控科技有限公司 | 一种支持冗余架构的网口与串口数据转发网关及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114257561B (zh) | 2023-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10891177B2 (en) | Message management method and device, and storage medium | |
CN109688058B (zh) | 报文处理方法、装置及网络设备 | |
CN105511954A (zh) | 一种报文处理方法及装置 | |
US9250987B2 (en) | Administering incomplete data communications messages in a parallel computer | |
EP0078377B1 (en) | Resource access control in multiprocessors | |
CN103532876A (zh) | 数据流的处理方法与系统 | |
US8959172B2 (en) | Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer | |
CN111147403B (zh) | 报文的处理方法及装置、存储介质和电子装置 | |
CN107992370A (zh) | VxWorks平台多任务软件框架实现方法 | |
CN107766127B (zh) | 事务消息处理方法、装置、设备及系统 | |
CN115168066A (zh) | 一种消息队列的处理方法、装置、设备及存储介质 | |
CN114257561B (zh) | 一种串口网口的数据透传方法及装置、设备、存储介质 | |
CN114268595A (zh) | 一种采用双cpu架构的交换机及报文处理方法 | |
CN117118828B (zh) | 一种协议转换器、电子设备及一种配置方法 | |
CN116996112B (zh) | 一种遥感卫星数据实时预处理方法 | |
CN117931478A (zh) | 进程间通信方法、装置及存储介质 | |
CN106815128A (zh) | 日志输出方法及装置、电子设备 | |
CN111447273A (zh) | 云处理系统及基于云处理系统的数据处理方法 | |
CN112306703A (zh) | 一种numa系统中的临界区执行方法及装置 | |
CN116009995A (zh) | 异步协程实现方法、装置和电子设备 | |
CN115622954A (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN113961489A (zh) | 数据访问的方法、装置、设备及存储介质 | |
WO2024145862A1 (zh) | 一种数据传输方法及相关装置 | |
CN113608859B (zh) | 节点任务的执行方法、装置及存储介质 | |
CN115004643B (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 |