一种基于智能多通路网关的多路通信监控方法技术

技术编号:24764009 阅读:44 留言:0更新日期:2020-07-04 11:06
本发明专利技术公开了一种基于智能多通路网关的多路通信监控方法,初始化智能多通路网关的每一路通信,保存每一路通道的描述符;新建一个描述符集;新建一个线程,并初始化该线程;初始化描述符集;将每一路通道的描述符添加到描述符集中;阻塞性监控描述符;测试每一路通信是否可读;读取数据并处理。本发明专利技术提供的一种基于智能多通路网关的多路通信监控方法,简化了接收外部接口数据的流程,减少了系统资源的开销;提高了系统与外面接口的交互效率,有效的解决了智能网关不能及时接收和处理外部接口数据的问题。

Multi channel communication monitoring method based on Intelligent Multi-channel gateway

【技术实现步骤摘要】
一种基于智能多通路网关的多路通信监控方法
本专利技术涉及物联网
,尤其涉及一种基于智能多通路网关的多路通信监控方法。
技术介绍
智能网关是近年来物联网兴起后产生的新网络设备。不同于互联网时代的路由器网关,除联通互联网络以外,还需要兼容各种物联网协议,组建一个设备互联的网络。但是有别于传统路由器类网关,它还面临更多协议的转换,并且不能完全依赖于互联网(云端)去实现各种场景功能,因为物联网是需要驱动很多本地设备,对网络的延迟要求更加严格。智能网关具有多路RS232串口,RS485串口,RS422串口,CAN口,DI/DO口,网口,AI口和IO口等外部接口。在读取外部接口数据时传统方法是为每一路外部接口开一路线程,进行阻塞性读取数据,流程如图1所示,系统采用轮询的方式在每个线程之间进行切换,增加了CPU的时间开销,造成了智能网关不能及时接收和处理外部接口数据,是当下智能网关需要解决的一个重要问题。
技术实现思路
为解决现有技术的缺点和不足,提供一种基于智能多通路网关的多路通信监控方法,从而提高了系统与外面接口的交互效率,有效的解决了智能网关不能及时接收和处理外部接口数据的问题。为实现本专利技术目的而提供的一种基于智能多通路网关的多路通信监控方法,包括有如下步骤:步骤1.初始化智能多通路网关的每一路通信,若初始化成功,则保存智能多通路网关的每一路通道的描述符,并进入步骤2,否则进入步骤10;步骤2.新建一个描述符集,并初始化所述描述符集;若描述符集新建并初始化成功进入步骤3,否则进入步骤10;步骤3.新建一个线程,并初始化;若所述线程新建并初始化成功则进入步骤4,否则进入步骤10;步骤4.初始化步骤2中所述描述符集,并进入步骤5;步骤5.依次将初始化的智能多通路网关的每一路通道的描述符加入到描述符集中,并进入步骤6;步骤6.阻塞性监控每一路通道的描述符,若有正常数据返回则进入步骤7,否则重复执行步骤10;步骤7.依次测试每一路通道是否可读,若有通道的数据可读则进入步骤8,否则进入步骤9;步骤8.读取步骤7中数据可读的通道的数据,并调用对用的数据处理函数进行处理,处理完毕后进入步骤9;步骤9.判断当前所有通道是否都完成了数据的读取并处理,若读取并处理完毕则进入步骤4,否则进入步骤7;步骤10.结束软件流程,并上报软件运行异常。本专利技术的有益效果是:与现有技术相比,本专利技术提供的一种基于智能多通路网关的多路通信监控方法,简化了接收外部接口数据的流程,减少了系统资源的开销;提高了系统与外面接口的交互效率,有效的解决了智能网关不能及时接收和处理外部接口数据的问题。附图说明以下结合附图对本专利技术的具体实施方式作进一步的详细说明,其中:图1为传统多路通信监控软件流程图;图2为本专利技术的软件流程图。具体实施方式如图1、图2所示,本专利技术提供了一种基于智能多通路网关的多路通信监控方法,具体实施步骤为:步骤1.调用系统接口open()打开智能多通路网关的每一路RS232和RS422串口,调用tcsetattr()函数设置每一路串口的波特率、数据位、校验位和停止位等参数;调用系统接口open()函数打开每一路CAN口,设置每一路CAN口的工作模式、帧数据类型、波特率、屏蔽码和校验码;调用系统接口初始化每一路网口;设置每一路网络通信的端口号;初始化每一路DI/DO口,AI口和IO口;若全部外部接口初始化成功则保存每一路外部接口的描述符,并进入步骤2,否则进入步骤10;步骤2.调用系统接口函数fd_set()新建一个描述符集,并调用函数FD_ZERO()初始化该描述符集;若描述符集新建并初始化成功进入步骤3,否则进入步骤10;步骤3.调用函数pthread_create()新建一个线程,并初始化;若线程新建并初始化成功进入步骤4,否则进入步骤10;步骤4.调用函数FD_ZERO()初始化描述符集,并进入步骤5;步骤5.调用函数FD_SET()依次将初始化的每一路通道的描述符加入到描述符集中,并进入步骤6;步骤6.调用阻塞性函数select()监控描述符集中每一路通道的通信,若任何一路通道有数据则进入步骤7,否则重复执行步骤10;步骤7.调用函数FD_ISSET()依次测试每一路通道是否有数据可读,若有数据可读则进入步骤8,否则进入步骤9;步骤8.调用函数read()读取该通道的数据,并调用对用的数据处理函数进行处理,处理完毕后进入步骤9;步骤9.判断当前所有通道是否都完成了数据的读取并处理,若读取并处理完毕则进入步骤4,否则进入步骤7;步骤10.结束软件流程,并上报软件运行异常。以上实施例不局限于该实施例自身的技术方案,实施例之间可以相互结合成新的实施例。以上实施例仅用以说明本专利技术的技术方案而并非对其进行限制,凡未脱离本专利技术精神和范围的任何修改或者等同替换,其均应涵盖在本专利技术技术方案的范围内。本文档来自技高网...

【技术保护点】
1.一种基于智能多通路网关的多路通信监控方法,其特征在于:包括有如下步骤:/n步骤1.初始化智能多通路网关的每一路通信,若初始化成功,则保存智能多通路网关的每一路通道的描述符,并进入步骤2,否则进入步骤10;/n步骤2.新建一个描述符集,并初始化所述描述符集;若描述符集新建并初始化成功进入步骤3,否则进入步骤10;/n步骤3.新建一个线程,并初始化;若所述线程新建并初始化成功则进入步骤4,否则进入步骤10;/n步骤4.初始化步骤2中所述描述符集,并进入步骤5;/n步骤5.依次将初始化的智能多通路网关的每一路通道的描述符加入到描述符集中,并进入步骤6;/n步骤6.阻塞性监控每一路通道的描述符,若有正常数据返回则进入步骤7,否则重复执行步骤10;/n步骤7.依次测试每一路通道是否可读,若有通道的数据可读则进入步骤8,否则进入步骤9;/n步骤8.读取步骤7中数据可读的通道的数据,并调用对用的数据处理函数进行处理,处理完毕后进入步骤9;/n步骤9.判断当前所有通道是否都完成了数据的读取并处理,若读取并处理完毕则进入步骤4,否则进入步骤7;/n步骤10.结束软件流程,并上报软件运行异常。/n

【技术特征摘要】
1.一种基于智能多通路网关的多路通信监控方法,其特征在于:包括有如下步骤:
步骤1.初始化智能多通路网关的每一路通信,若初始化成功,则保存智能多通路网关的每一路通道的描述符,并进入步骤2,否则进入步骤10;
步骤2.新建一个描述符集,并初始化所述描述符集;若描述符集新建并初始化成功进入步骤3,否则进入步骤10;
步骤3.新建一个线程,并初始化;若所述线程新建并初始化成功则进入步骤4,否则进入步骤10;
步骤4.初始化步骤2中所述描述符集,并进入步骤5;
步骤5.依次将初始化的智能多...

【专利技术属性】
技术研发人员:李金鹏刘迪
申请(专利权)人:山西鲲博时代信息科技有限公司
类型:发明
国别省市:山西;14

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1