CN113489639A - 一种网关多接口的数据通信方法和系统 - Google Patents

一种网关多接口的数据通信方法和系统 Download PDF

Info

Publication number
CN113489639A
CN113489639A CN202110666214.2A CN202110666214A CN113489639A CN 113489639 A CN113489639 A CN 113489639A CN 202110666214 A CN202110666214 A CN 202110666214A CN 113489639 A CN113489639 A CN 113489639A
Authority
CN
China
Prior art keywords
data
shell program
preset
program
equipment
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
Application number
CN202110666214.2A
Other languages
English (en)
Other versions
CN113489639B (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.)
Hangzhou Shendu Technology Co ltd
Original Assignee
Hangzhou Shendu 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 Hangzhou Shendu Technology Co ltd filed Critical Hangzhou Shendu Technology Co ltd
Priority to CN202110666214.2A priority Critical patent/CN113489639B/zh
Publication of CN113489639A publication Critical patent/CN113489639A/zh
Application granted granted Critical
Publication of CN113489639B publication Critical patent/CN113489639B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Abstract

本申请涉及一种网关多接口的数据通信方法和系统,其中,该方法包括:通过壳程序加载逻辑处理动态库,通过tcp连接壳程序与集中控制程序,其中,壳程序加载集中控制程序中的配置文件,接收预设设备与接入设备的连接请求,通过壳程序调用配置文件判断预设设备的类型和设置预设通信协议,基于判断得到的预设设备的类型和预设通信协议,进行预设设备与接入设备的数据传输,通过壳程序调用逻辑处理动态库对接收到的数据进行逻辑处理。通过本申请,解决了数据收发和逻辑处理不规范,以及编码程序通用性低的问题,实现了通过逻辑处理动态库的方式分离数据交互和数据逻辑,数据交互一次编码,多次使用,数据逻辑针对不同类型的设备做接入。

Description

一种网关多接口的数据通信方法和系统
技术领域
本申请涉及通信处理领域,特别是涉及一种网关多接口的数据通信方法和系统。
背景技术
物联网中需要接入的设备类型各异,接入的方式也五花八门,有tcp接入的,有udp接入的,有串口接入的,还有modbus协议接入,有的作为server使用,有的需要作为客户端,接入后,需要接收设备的数据,并针对接收的数据做业务逻辑处理,同时需要发送数据给设备,来实现对设备的控制。但是每种设备都需要实现一遍数据的接收和发送逻辑,编码复杂,代码利用率很低,同时每次编写都要重新调试,浪费时间。
目前针对相关技术中数据收发和逻辑处理不规范,以及编码程序通用性低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种网关多接口的数据通信方法和系统,以至少解决相关技术中数据收发的逻辑处理不规范,以及编码程序通用性低的问题。
第一方面,本申请实施例提供了一种网关多接口的数据通信方法,所述方法包括:
通过壳程序加载逻辑处理动态库,其中,所述壳程序运行在接入设备中,通过epoll实现壳程序内部连接的统一管理;
通过tcp连接所述壳程序与集中控制程序,其中,所述壳程序加载所述集中控制程序中的配置文件,实现查询数据交互的设备类型;
接收预设设备与所述接入设备的连接请求,通过所述壳程序调用所述配置文件判断所述预设设备的类型和设置预设通信协议;
基于判断得到的所述预设设备的类型和所述预设通信协议,进行所述预设设备与所述接入设备的数据传输;
通过所述壳程序调用所述逻辑处理动态库对接收到的所述数据进行逻辑处理。
在其中一些实施例中,在通过所述壳程序调用所述配置文件判断所述预设设备的类型和设置预设通信协议之后,所述方法包括:
在判断所述预设设备为客户机类型的情况下,通过所述壳程序连接所述预设设备和所述接入设备;
在判断所述预设设备为服务器类型的情况下,通过所述壳程序创建监听端口,等待设备的连接;
在判断所述预设设备为串口类型的情况下,通过所述壳程序打开串口句柄。
在其中一些实施例中,在判断所述预设设备为客户机类型的情况下,通过所述壳程序连接所述预设设备和所述接入设备还包括:
在判断所述预设设备为客户机类型的情况下,通过所述壳程序中的epoll实时监测所述预设设备的连接,在发生句柄关闭的情况下,通过所述壳程序执行重新创建连接,实现所述预设设备和所述接入设备连接断开后的重连。
在其中一些实施例中,在判断所述预设设备为服务器类型的情况下,通过所述壳程序创建监听端口,等待设备的连接还包括:
在判断所述预设设备为服务器类型的情况下,通过所述壳程序中的epoll实时监测所述预设设备的连接,在所述预设设备连入失败的情况下,通过所述壳程序直接关闭连接,等待所述预设设备重新发起连接。
在其中一些实施例中,通过所述壳程序调用所述逻辑处理动态库对接收到的所述数据进行逻辑处理包括:
对于udp/mudp/udp-client类型,通过所述壳程序增加单独线程接收udp的socket数据;对于通过udp-client接收到的数据,调用所述逻辑处理动态库中的所述数据处理函数进行数据处理。
在其中一些实施例中,通过所述壳程序调用所述逻辑处理动态库对接收到的所述数据进行逻辑处理包括:
对于udp/mudp类型,通过所述壳程序创建监听端口,实时监测所述预设设备的连接,将数据封装成udp结构的对象,将所述对象的指针作为句柄来调用所述逻辑处理动态库中的所述数据处理函数进行数据处理,其中,在所述数据处理中所述对象的指针会转为udp对象再处理。
在其中一些实施例中,通过所述壳程序调用所述逻辑处理动态库对接收到的所述数据进行逻辑处理包括:
对于tcp/port类型,通过所述壳程序中的epoll实时监测所述预设设备的连接,在监测接收到数据的情况下,通过所述壳程序将串口句柄传递给所述逻辑处理动态库中的所述数据处理函数,通过所述数据处理函数进行数据处理,其中,所述壳程序提供了带超时的数据接收函数供逻辑处理动态库使用。
在其中一些实施例中,通过所述壳程序加载逻辑处理动态库包括:
在通过所述壳程序加载逻辑处理动态库时,调用所述逻辑处理动态库的全局初始化接口。
在其中一些实施例中,所述方法还包括:
在通过所述壳程序处理所述集中控制程序的数据时,调用所述逻辑处理动态库的集中控制程序数据处理接口进行数据处理;
在通过所述壳程序处理所述预设设备的数据时,调用所述逻辑处理动态库的设备数据处理接口进行数据处理。
第二方面,本申请实施例提供了一种网关多接口的数据通信系统,所述系统包括壳程序、逻辑处理动态库和集中控制程序;
壳程序加载逻辑处理动态库,其中,所述壳程序运行在接入设备中,通过epoll实现壳程序内部连接的统一管理;
所述壳程序通过tcp连接集中控制程序,其中,所述壳程序加载所述集中控制程序中的配置文件,实现查询数据交互的设备类型;
接收预设设备与所述接入设备的连接请求,所述壳程序调用所述配置文件判断所述预设设备的类型;
基于判断得到的所述预设设备的类型,进行所述预设设备与所述接入设备的数据传输;
通过所述壳程序调用所述逻辑处理动态库对接收到的所述数据进行逻辑处理。
相比于相关技术,本申请实施例提供的一种网关多接口的数据通信方法和系统,通过壳程序加载逻辑处理动态库,通过tcp连接壳程序与集中控制程序,其中,壳程序加载集中控制程序中的配置文件,接收预设设备与接入设备的连接请求,通过壳程序调用配置文件判断预设设备的类型和设置预设通信协议,基于判断得到的预设设备的类型和预设通信协议,进行预设设备与接入设备的数据传输,通过壳程序调用逻辑处理动态库对接收到的数据进行逻辑处理,解决了数据收发和逻辑处理不规范,以及编码程序通用性低的问题,实现了通过逻辑处理动态库的方式分离数据交互和数据逻辑,数据交互一次编码,多次使用,数据逻辑针对不同类型的设备做接入,壳程序采用epoll对多个句柄进行统一维护;规范了数据收发和逻辑处理,提高了编码程序通用性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的网关多接口的数据通信系统的结构框图;
图2是根据本申请实施例的网关多接口的数据通信方法的步骤流程图;
图3是根据本申请具体实施例的网关多接口的数据通信方法的步骤流程图;
图4是根据本申请具体实施例的网关多接口的数据通信方法的流程示意图;
图5是根据本申请实施例的电子设备的内部结构示意图。
附图说明:11、壳程序;12、逻辑处理动态库;13、集中控制程序。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请实施例提供了一种网关多接口的数据通信系统,图1是根据本申请实施例的网关多接口的数据通信系统的结构框图,如图1所示,该系统包括壳程序11、逻辑处理动态库12和集中控制程序13;
壳程序11加载逻辑处理动态库12,其中,壳程序11运行在接入设备中,通过epoll实现壳程序11内部连接的统一管理;
壳程序11通过tcp连接集中控制程序13,其中,壳程序11加载集中控制程序13中的配置文件,实现查询数据交互的设备类型;
接收预设设备与接入设备的连接请求,壳程序11调用配置文件判断预设设备的类型;
基于判断得到的预设设备的类型,进行预设设备与接入设备的数据传输;
通过壳程序11调用逻辑处理动态库12对接收到的数据进行逻辑处理。
相比于相关技术,本申请实施例提供的一种网关多接口的数据通信方法和系统,通过壳程序加载逻辑处理动态库,通过tcp连接壳程序与集中控制程序,其中,壳程序加载集中控制程序中的配置文件,接收预设设备与接入设备的连接请求,通过壳程序调用配置文件判断预设设备的类型和设置预设通信协议,基于判断得到的预设设备的类型和预设通信协议,进行预设设备与接入设备的数据传输,通过壳程序调用逻辑处理动态库对接收到的数据进行逻辑处理,解决了数据收发和逻辑处理不规范,以及编码程序通用性低的问题,实现了通过逻辑处理动态库的方式分离数据交互和数据逻辑,数据交互一次编码,多次使用,数据逻辑针对不同类型的设备做接入,壳程序采用epoll对多个句柄进行统一维护;规范了数据收发和逻辑处理,提高了编码程序通用性。
本申请实施例提供了一种网关多接口的数据通信方法,图2是根据本申请实施例的网关多接口的数据通信方法的步骤流程图,如图2所示,该方法包括以下步骤:
S202,通过壳程序加载逻辑处理动态库,其中,壳程序运行在接入设备中,通过epoll实现壳程序内部连接的统一管理;
S204,通过tcp连接壳程序与集中控制程序,其中,壳程序加载集中控制程序中的配置文件,实现查询数据交互的设备类型;
S206,接收预设设备与接入设备的连接请求,通过壳程序调用配置文件判断预设设备的类型和设置预设通信协议;
S208,基于判断得到的预设设备的类型和预设通信协议,进行预设设备与接入设备的数据传输;
S210,通过壳程序调用逻辑处理动态库对接收到的数据进行逻辑处理。
通过本申请实施例中的步骤S202至S210,解决了数据收发和逻辑处理不规范,以及编码程序通用性低的问题,实现了通过逻辑处理动态库的方式分离数据交互和数据逻辑,数据交互一次编码,多次使用,数据逻辑针对不同类型的设备做接入,壳程序采用epoll对多个句柄进行统一维护;规范了数据收发和逻辑处理,提高了编码程序通用性。
在其中一些实施例中,在通过壳程序调用配置文件判断预设设备的类型和设置预设通信协议之后;
在判断预设设备为客户机类型的情况下,通过壳程序连接预设设备和接入设备,其中,客户机(client)类型的有tcp-client/udp-client;
在判断预设设备为服务器类型的情况下,通过壳程序创建监听端口,等待设备的连接,其中,服务器(server)类型有tcp(连接数最大2)/tcp-server(连接数最大50)/udp/mudp(组播);
在判断预设设备为串口类型的情况下,通过壳程序打开串口句柄。
此外,预设设备还存在着不区分的类型,具体有port/modbus-tcp/modbus-rtu,无外部接口类型none(没有任何外部连接,单纯的逻辑处理),此两种设备类型的判断同样适用于本实施例的技术方案中。
通过本申请实施例,实现了网关多接口的数据通信中数据交互一次编码,多次使用,规范了数据收发和逻辑处理,提高了编码程序通用性。
在其中一些实施例中,在判断预设设备为客户机类型的情况下,通过壳程序连接预设设备和接入设备还包括:
在判断预设设备为客户机类型的情况下,通过壳程序中的epoll实时监测预设设备的连接,在发生句柄关闭的情况下,通过壳程序执行重新创建连接,实现预设设备和接入设备连接断开后的重连,即针对客户机(client)类型,在创建后会加到epoll中,如果遇到句柄关闭的情况,会重新执行创建流程,实现和设备连接断开后的重连。
在其中一些实施例中,在判断预设设备为服务器类型的情况下,通过壳程序创建监听端口,等待设备的连接还包括:
在判断预设设备为服务器类型的情况下,通过壳程序中的epoll实时监测预设设备的连接,在预设设备连入失败的情况下,通过壳程序直接关闭连接,等待预设设备重新发起连接,即对于服务器(server)类型,在收到新的连接后会将收到的连接加入到epoll中,如果遇到连接失败的情况,则直接关闭连接,等待设备重新发起连接。
在其中一些实施例中,通过壳程序调用逻辑处理动态库对接收到的数据进行逻辑处理包括:
对于udp/mudp/udp-client类型,通过壳程序增加单独线程接收udp的socket数据;对于通过udp-client接收到的数据,调用逻辑处理动态库中的数据处理函数进行数据处理,即udp的通信方式需要增加单独的线程接收udp的socket的数据,udp-client的通信方式接收到的数据会直接调用动态库的数据处理函数,直接发送即可。
在其中一些实施例中,通过壳程序调用逻辑处理动态库对接收到的数据进行逻辑处理包括:
对于udp/mudp类型,通过壳程序创建监听端口,实时监测预设设备的连接,将数据封装成udp结构的对象,将对象的指针作为句柄来调用逻辑处理动态库中的数据处理函数进行数据处理,其中,在数据处理中对象的指针会转为udp对象再处理,即对于udp/mudp类型在监测线程中会获取到新的连接,监测线程中会将数据封装成udp结构的对象,将对象的指针作为handle调用动态库的数据处理函数,在数据处理中会转为udp对象再处理。
在其中一些实施例中,通过壳程序调用逻辑处理动态库对接收到的数据进行逻辑处理包括:
对于tcp/port类型,通过壳程序中的epoll实时监测预设设备的连接,在监测接收到数据的情况下,通过壳程序将串口句柄传递给逻辑处理动态库中的数据处理函数,通过数据处理函数进行数据处理,其中,壳程序提供了带超时的数据接收函数供逻辑处理动态库使用;
具体来说,对于tcp/port类型的连接方式,由于不知道数据的格式,所以在epoll监测到有数据受到的时候,会将句柄传递给动态库的数据处理函数,由数据处理函数去具体的接收数据解析数据,壳程序提供了带超时的数据接收函数供动态库使用。
在其中一些实施例中,在通过壳程序加载逻辑处理动态库时,调用逻辑处理动态库的全局初始化接口,其中,具体的全局初始化接口的函数名代码如下:
boolglobal_init(intread_timeout,intwrite_timeout,void*arg);
此外,在通过壳程序连接接入设备与预设设备之后,调用逻辑处理动态库的设备初始化接口,其中,具体的设备初始化接口的函数名代码如下:
booldevice_init(int handle,intread_timeout,intwrite_timeout);
在其中一些实施例中,在通过壳程序处理集中控制程序的数据时,调用逻辑处理动态库的集中控制程序数据处理接口进行数据处理,其中,具体的集中控制程序数据处理接口的函数名代码如下:
inthandle_server_data(int handle,intdevice_handle,uint64_t client_id,uint64_tserver_id,intread_timeout,intwrite_timeout,intdevice_read_timeout,intdevice_write_timeout);
在通过壳程序处理预设设备的数据时,调用逻辑处理动态库的设备数据处理接口进行数据处理,其中,具体的设备数据处理接口的函数名代码如下:
inthandle_device_data(inthandle,intserver_handle,intread_timeout,intwrite_timeout,intserver_read_timeout,intserver_write_timeout);
通过本实施例,壳程序在接收到数据的时候会调用逻辑处理动态库对外的两个数据处理接口,实现两部分的关联。这样壳程序可以重复利用,每次接入新设备只需要关心接入设备的数据处理逻辑就可以,省掉了数据收发部分的编写和调试,极大的提高了设备接入的效率。
本申请具体实施例提供了一种网关多接口的数据通信方法,图3是根据本申请具体实施例的网关多接口的数据通信方法的步骤流程图,如图3所示,该方法包括以下步骤:
S302,通过壳程序加载逻辑处理动态库,其中,壳程序运行在接入设备中,通过epoll实现壳程序内部连接的统一管理;
S304,通过tcp连接壳程序与集中控制程序,其中,壳程序加载集中控制程序中的配置文件,实现查询数据交互的设备类型;
S306,接收预设设备与接入设备的连接请求,通过壳程序调用配置文件判断预设设备的类型和设置预设通信协议;
S308,在判断预设设备为客户机类型的情况下,通过壳程序连接预设设备和接入设备;
S310,在判断预设设备为服务器类型的情况下,通过壳程序创建监听端口,等待设备的连接;
S312,在判断预设设备为串口类型的情况下,通过壳程序打开串口句柄;
S314,基于判断得到的预设设备的类型,进行预设设备与接入设备的数据传输;
S316,通过壳程序调用逻辑处理动态库对接收到的数据进行逻辑处理,对于udp/mudp/udp-client类型,通过壳程序增加单独线程接收udp的socket数据;对于通过udp-client接收到的数据,调用逻辑处理动态库中的数据处理函数进行数据处理;
S318,通过壳程序调用逻辑处理动态库对接收到的数据进行逻辑处理,对于udp/mudp类型,通过壳程序创建监听端口,实时监测预设设备的连接,将数据封装成udp结构的对象,将对象的指针作为句柄来调用逻辑处理动态库中的数据处理函数进行数据处理,其中,在数据处理中对象的指针会转为udp对象再处理;
S320,通过壳程序调用逻辑处理动态库对接收到的数据进行逻辑处理,对于tcp/port类型,通过壳程序中的epoll实时监测预设设备的连接,在监测接收到数据的情况下,通过壳程序将串口句柄传递给逻辑处理动态库中的数据处理函数,通过数据处理函数进行数据处理,其中,壳程序提供了带超时的数据接收函数供逻辑处理动态库使用。
通过本申请实施例中的步骤S302至S320,将设备接入的设备数据收发和数据逻辑处理分开,数据收发部分做成可执行程序,可以通过配置实现不同的接入类型,逻辑处理部分通过逻辑处理动态库实现,解决了数据收发和逻辑处理不规范,以及编码程序通用性低的问题,实现了通过逻辑处理动态库的方式分离数据交互和数据逻辑,数据交互一次编码,多次使用,数据逻辑针对不同类型的设备做接入,壳程序采用epoll对多个句柄进行统一维护;规范了数据收发和逻辑处理,提高了编码程序通用性。
本申请具体实施例提供了一种网关多接口的数据通信方法,图4是根据本申请具体实施例的网关多接口的数据通信方法的流程示意图,如图4所示,
client(壳程序)在启动的时候会去连接集中控制器,因而需要创建一个tcp连接,然后client加载配置文件,查看和设备的交互类型,
对于客户机(client)类型的会去连接设备,
对于服务器(sever)类型会创建监听端口,等待新的设备连接进来,
对于串口,会打开串口句柄。
由此可见,client内部需要维护多个连接,为了整个程序实现单线程操作,需要统计管理多个连接,因而采用epoll实现client内部连接的统一管理。
针对client类型,在创建后会加到epoll中,如果遇到句柄关闭的情况,会重新执行创建流程,实现和设备连接断开后的重连。
对于server类型,在收到新的连接后会将收到的连接加入到epoll中,如果遇到连接失败的情况,则直接关闭连接,等待设备重新发起连接。
对于udp/mudp/udp-client类型需要特殊处理:
udp的通信方式需要增加单独的线程接收udp的socket的数据,对于udp-client接收到的数据会直接调用动态库的数据处理函数,发送则直接发送即可。
对于udp/mudp类型在监测线程中会获取到新的连接,监测线程中会将数据封装成udp结构的对象,将对象的指针作为handle调用动态库的数据处理函数,在数据处理中会转为udp对象再处理。
对于tcp/port类型的连接方式,由于不知道数据的格式,
因而在epoll监测到有数据受到的时候,会将句柄传递给动态库的数据处理函数,由数据处理函数去具体的接收数据解析数据,壳程序提供了带超时的数据接收函数供动态库使用。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种网关多接口的数据通信方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图5是根据本申请实施例的电子设备的内部结构示意图,如图5所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图5所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种网关多接口的数据通信方法,数据库用于存储数据。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (10)

1.一种网关多接口的数据通信方法,其特征在于,所述方法包括:
通过壳程序加载逻辑处理动态库,其中,所述壳程序运行在接入设备中,通过epoll实现壳程序内部连接的统一管理;
通过tcp连接所述壳程序与集中控制程序,其中,所述壳程序加载所述集中控制程序中的配置文件,实现查询数据交互的设备类型;
接收预设设备与所述接入设备的连接请求,通过所述壳程序调用所述配置文件判断所述预设设备的类型和设置预设通信协议;
基于判断得到的所述预设设备的类型和所述预设通信协议,进行所述预设设备与所述接入设备的数据传输;
通过所述壳程序调用所述逻辑处理动态库对接收到的所述数据进行逻辑处理。
2.根据权利要求1所述的方法,其特征在于,在通过所述壳程序调用所述配置文件判断所述预设设备的类型和设置预设通信协议之后,所述方法包括:
在判断所述预设设备为客户机类型的情况下,通过所述壳程序连接所述预设设备和所述接入设备;
在判断所述预设设备为服务器类型的情况下,通过所述壳程序创建监听端口,等待设备的连接;
在判断所述预设设备为串口类型的情况下,通过所述壳程序打开串口句柄。
3.根据权利要求2所述的方法,其特征在于,在判断所述预设设备为客户机类型的情况下,通过所述壳程序连接所述预设设备和所述接入设备还包括:
在判断所述预设设备为客户机类型的情况下,通过所述壳程序中的epoll实时监测所述预设设备的连接,在发生句柄关闭的情况下,通过所述壳程序执行重新创建连接,实现所述预设设备和所述接入设备连接断开后的重连。
4.根据权利要求2所述的方法,其特征在于,在判断所述预设设备为服务器类型的情况下,通过所述壳程序创建监听端口,等待设备的连接还包括:
在判断所述预设设备为服务器类型的情况下,通过所述壳程序中的epoll实时监测所述预设设备的连接,在所述预设设备连入失败的情况下,通过所述壳程序直接关闭连接,等待所述预设设备重新发起连接。
5.根据权利要求1所述的方法,其特征在于,通过所述壳程序调用所述逻辑处理动态库对接收到的所述数据进行逻辑处理包括:
对于udp/mudp/udp-client类型,通过所述壳程序增加单独线程接收udp的socket数据;对于通过udp-client接收到的数据,调用所述逻辑处理动态库中的所述数据处理函数进行数据处理。
6.根据权利要求1所述的方法,其特征在于,通过所述壳程序调用所述逻辑处理动态库对接收到的所述数据进行逻辑处理包括:
对于udp/mudp类型,通过所述壳程序创建监听端口,实时监测所述预设设备的连接,将数据封装成udp结构的对象,将所述对象的指针作为句柄来调用所述逻辑处理动态库中的所述数据处理函数进行数据处理,其中,在所述数据处理中所述对象的指针会转为udp对象再处理。
7.根据权利要求1所述的方法,其特征在于,通过所述壳程序调用所述逻辑处理动态库对接收到的所述数据进行逻辑处理包括:
对于tcp/port类型,通过所述壳程序中的epoll实时监测所述预设设备的连接,在监测接收到数据的情况下,通过所述壳程序将串口句柄传递给所述逻辑处理动态库中的所述数据处理函数,通过所述数据处理函数进行数据处理,其中,所述壳程序提供了带超时的数据接收函数供逻辑处理动态库使用。
8.根据权利要求1所述的方法,其特征在于,通过所述壳程序加载逻辑处理动态库包括:
在通过所述壳程序加载逻辑处理动态库时,调用所述逻辑处理动态库的全局初始化接口。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在通过所述壳程序处理所述集中控制程序的数据时,调用所述逻辑处理动态库的集中控制程序数据处理接口进行数据处理;
在通过所述壳程序处理所述预设设备的数据时,调用所述逻辑处理动态库的设备数据处理接口进行数据处理。
10.一种网关多接口的数据通信系统,其特征在于,所述系统包括壳程序、逻辑处理动态库和集中控制程序;
壳程序加载逻辑处理动态库,其中,所述壳程序运行在接入设备中,通过epoll实现壳程序内部连接的统一管理;
所述壳程序通过tcp连接集中控制程序,其中,所述壳程序加载所述集中控制程序中的配置文件,实现查询数据交互的设备类型;
接收预设设备与所述接入设备的连接请求,所述壳程序调用所述配置文件判断所述预设设备的类型;
基于判断得到的所述预设设备的类型,进行所述预设设备与所述接入设备的数据传输;
通过所述壳程序调用所述逻辑处理动态库对接收到的所述数据进行逻辑处理。
CN202110666214.2A 2021-06-16 2021-06-16 一种网关多接口的数据通信方法和系统 Active CN113489639B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110666214.2A CN113489639B (zh) 2021-06-16 2021-06-16 一种网关多接口的数据通信方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110666214.2A CN113489639B (zh) 2021-06-16 2021-06-16 一种网关多接口的数据通信方法和系统

Publications (2)

Publication Number Publication Date
CN113489639A true CN113489639A (zh) 2021-10-08
CN113489639B CN113489639B (zh) 2022-12-02

Family

ID=77935119

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110666214.2A Active CN113489639B (zh) 2021-06-16 2021-06-16 一种网关多接口的数据通信方法和系统

Country Status (1)

Country Link
CN (1) CN113489639B (zh)

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199515A1 (en) * 2003-04-04 2004-10-07 Penny Brett A. Network-attached storage system, device, and method supporting multiple storage device types
US20080009273A1 (en) * 2002-03-26 2008-01-10 Timothy Jemison System and method for service invocation and response with a communication device
US20100145902A1 (en) * 2008-12-09 2010-06-10 Ita Software, Inc. Methods and systems to train models to extract and integrate information from data sources
US20100199188A1 (en) * 2008-12-05 2010-08-05 Suhayya Abu-Hakima Auto-discovery of diverse communications devices for alert broadcasting
CN102306109A (zh) * 2011-07-18 2012-01-04 深圳市康必达中创科技有限公司 一种实现通讯管理机内部逻辑可编程方法
CN102323885A (zh) * 2011-05-23 2012-01-18 中国科学院软件研究所 一种传感网节点操作系统的动态配置方法
CN106411852A (zh) * 2016-08-31 2017-02-15 浙江宇视科技有限公司 一种分布式终端准入控制方法和装置
WO2017185952A1 (zh) * 2016-04-28 2017-11-02 广州广电运通金融电子股份有限公司 一种硬件设备的访问管理方法及系统
CN107911372A (zh) * 2017-11-24 2018-04-13 杭州迪普科技股份有限公司 一种基于逻辑器件实现串口设备接入以太网的方法和装置
WO2018171703A1 (zh) * 2017-03-24 2018-09-27 华为技术有限公司 通信方法与设备
CN109525667A (zh) * 2018-11-18 2019-03-26 杭州智尔科技有限公司 一种电子设备的管理系统及方法
CN109743757A (zh) * 2018-12-29 2019-05-10 深圳和而泰数据资源与云技术有限公司 数据处理方法、装置、无线模组和物联网设备
CN110806963A (zh) * 2019-11-13 2020-02-18 浪潮云信息技术有限公司 一种基于浪潮云数据库的实例信息监控及可视化展示方法
CN110868343A (zh) * 2019-11-12 2020-03-06 杭州深渡科技有限公司 Knx节点自动发现方法和knx系统
CN112612214A (zh) * 2020-12-23 2021-04-06 青岛海尔科技有限公司 用于功能界面生成的方法、系统和电子设备
CN112612475A (zh) * 2020-12-25 2021-04-06 四川长虹电器股份有限公司 一种实现物联设备仿真的方法

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080009273A1 (en) * 2002-03-26 2008-01-10 Timothy Jemison System and method for service invocation and response with a communication device
US20040199515A1 (en) * 2003-04-04 2004-10-07 Penny Brett A. Network-attached storage system, device, and method supporting multiple storage device types
US20100199188A1 (en) * 2008-12-05 2010-08-05 Suhayya Abu-Hakima Auto-discovery of diverse communications devices for alert broadcasting
US20100145902A1 (en) * 2008-12-09 2010-06-10 Ita Software, Inc. Methods and systems to train models to extract and integrate information from data sources
CN102323885A (zh) * 2011-05-23 2012-01-18 中国科学院软件研究所 一种传感网节点操作系统的动态配置方法
CN102306109A (zh) * 2011-07-18 2012-01-04 深圳市康必达中创科技有限公司 一种实现通讯管理机内部逻辑可编程方法
WO2017185952A1 (zh) * 2016-04-28 2017-11-02 广州广电运通金融电子股份有限公司 一种硬件设备的访问管理方法及系统
CN106411852A (zh) * 2016-08-31 2017-02-15 浙江宇视科技有限公司 一种分布式终端准入控制方法和装置
WO2018171703A1 (zh) * 2017-03-24 2018-09-27 华为技术有限公司 通信方法与设备
CN107911372A (zh) * 2017-11-24 2018-04-13 杭州迪普科技股份有限公司 一种基于逻辑器件实现串口设备接入以太网的方法和装置
CN109525667A (zh) * 2018-11-18 2019-03-26 杭州智尔科技有限公司 一种电子设备的管理系统及方法
CN109743757A (zh) * 2018-12-29 2019-05-10 深圳和而泰数据资源与云技术有限公司 数据处理方法、装置、无线模组和物联网设备
CN110868343A (zh) * 2019-11-12 2020-03-06 杭州深渡科技有限公司 Knx节点自动发现方法和knx系统
CN110806963A (zh) * 2019-11-13 2020-02-18 浪潮云信息技术有限公司 一种基于浪潮云数据库的实例信息监控及可视化展示方法
CN112612214A (zh) * 2020-12-23 2021-04-06 青岛海尔科技有限公司 用于功能界面生成的方法、系统和电子设备
CN112612475A (zh) * 2020-12-25 2021-04-06 四川长虹电器股份有限公司 一种实现物联设备仿真的方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
刘永庆等: "利用动态库技术进行通信协议模块化设计", 《电脑知识与技术》 *
犹锋等: "多源异构电网运行时标量测数据接入方案设计", 《计算机测量与控制》 *
王刚: "用黑板式结构统一封装多种计算机通信接口", 《舰船电子工程》 *
石为人等: "基于XML的可配置数据采集网关", 《微计算机信息》 *

Also Published As

Publication number Publication date
CN113489639B (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
CN109933443B (zh) 进程间通信方法、装置、计算机设备及可读存储介质
CN108011909B (zh) 通信方法和系统、电子设备和计算机集群
CN111343236A (zh) 服务端与客户端进行通讯的方法、装置、通讯系统
CN109246235B (zh) 监测数据的接收方法、装置和数据监测系统
CN111565154B (zh) 图像识别请求处理方法、装置、计算机设备和存储介质
CN112350861B (zh) 日志获取方法、装置、计算机设备和存储介质
CN114124929A (zh) 跨网络的数据处理方法和装置
CN109445845B (zh) 接口调用方法、装置、计算机设备和存储介质
CN107273226B (zh) 在安卓系统中集成组件及调用被集成组件的方法和装置
CN112422497A (zh) 消息传递方法、装置及计算机设备
CN113489639B (zh) 一种网关多接口的数据通信方法和系统
CN110750365A (zh) 一种远程过程调用方法、系统、终端及存储介质
CN114143386A (zh) 一种基于quic协议的通信方法、系统、设备及存储介质
WO2021238259A1 (zh) 一种数据传输方法、装置、设备及计算机可读存储介质
CN113660307A (zh) 一种算法综合集成服务系统
CN116501476B (zh) linux通用字符设备处理方法、装置、设备和介质
US20120291038A1 (en) Method for reducing inter-process communication latency
CN113992740B (zh) 一种基于自主可控的中间件及数据传输方法
CN114244758A (zh) 安卓平台的网络诊断方法、存储介质、电子设备及系统
CN109669793B (zh) 中间件进程内对象调用方法
CN103294527A (zh) 一种处理网络任务的方法、系统以及服务器
CN112153148A (zh) 基于消息接收端的消息堆积处理方法及装置
CN111078311A (zh) 中间件控制运行方法、系统
CN116975850B (zh) 合约运行方法、装置、电子设备及存储介质
CN111382116B (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