CN110213177A - 基于4g模块的分时发送方法 - Google Patents
基于4g模块的分时发送方法 Download PDFInfo
- Publication number
- CN110213177A CN110213177A CN201910489479.2A CN201910489479A CN110213177A CN 110213177 A CN110213177 A CN 110213177A CN 201910489479 A CN201910489479 A CN 201910489479A CN 110213177 A CN110213177 A CN 110213177A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- connectid
- reception
- sent
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5672—Multiplexing, e.g. coding, scrambling
- H04L2012/5675—Timeslot assignment, e.g. TDMA
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了基于4g模块的分时发送方法,包括数据发送,对所发送的数据进行接收,对所接收的数据进行状态查询,对异常的状态的处理并重新发送,本发明以数据发送操作和数据接收操作为基础设计了一个状态机。将生成的发往不同服务器地址的业务数据以循环队列入队的形式,存储在不同的发送数据循环队列中,在状态机发送任务中,依次从不同的循环队列中取出数据,通过AT指令发送给不同的connectid。在状态机接收任务中,通过AT指令查询不同的connectid查询到的接收内容,缓存到相应的接收数据循环队列中,在状态机外部的数据处理任务中,处理该接收数据。以此达到分时处理的目的。以一种轻松的方式实现了在实时系统上实现多socket收发通信。
Description
技术领域
本发明涉及数据发送领域,具体为一种监测项目实时操作系统中基于4g模块的分时发送方式。
背景技术
监测设备一般用于人烟稀少或不易维护的地方,如深山或大桥底部等地方。监测设备目前通常采用的数据传输方式是通过4g模块进行无线传输,将数据从终端传输到服务器。但大多数厂家仅传输采集到的传感器数据,对设备本身的情况关注甚少。导致设备出了故障,还要通过数据链中断这种方式才能做出判断。为了解决这一现象,我们的设备支持往两个IP地址发送数据,一路用于传输采集到的传感器数据,一路用于传输设备本身的状态,也便于修改和查询设备本身的配置。为了支持这一需求,我们设计出了在监测项目中基于4g模块的分时发送方式。
通用的4g模块使用有为实现多socket连接两种方式,一种是在linux系统中通过内置的协议栈进行拨号,再配合TCP等通信函数建立socket,这种方式实现较为简单。一种是在如freertos或ucos这种实时操作系统中,一般使用LWIP这种轻型协议栈,但这种协议栈使用不够灵活,使用难度较高,稳定性依赖于协议栈。还有一种方式是通过模块本身提供的AT指令发送和接收任务数据。即利用通信模块本身提供的接口进行数据收发。AT指令的建立socket的方式,有两种。一种是透明传输,这种方式的弊端是只能建立一个socket,不符合建立多个socket的使用场景;还有一种方式就是半透明传输,即将不同的目标地址绑定不同的connectid,根据不同的connectid绑定的不同的目标地址发送相应业务数据。通过AT指令查询不同的connectid去查询不同服务器发送的数据内容。
仅仅是这种方式还不足以形成一个稳定的收发系统,因为通信模块本身的AT指令,需要握手过程,且需要考虑发送握手时序和接收握手时序。因此不是简单的使用了上一段讲的两个指令就可以达到效果。
发明内容
本发明的目的在于提供基于4g模块的分时发送方法,本发明以数据发送操作和数据接收操作为基础设计了一个状态机。将生成的发往不同服务器地址的业务数据以循环队列入队的形式,存储在不同的发送数据循环队列中,在状态机发送任务中,依次从不同的循环队列中取出数据,通过AT指令发送给不同的connectid。在状态机接收任务中,通过AT指令查询不同的connectid查询到的接收内容,缓存到相应的接收数据循环队列中,在状态机外部的数据处理任务中,处理该接收数据。以此达到分时处理的目的。以一种轻松的方式实现了在实时系统上实现多socket收发通信。
为实现上述目的,本发明提供如下技术方案:基于4g模块的分时发送方法,包括数据发送,对所发送的数据进行接收,对所接收的数据进行状态查询,对异常的状态的处理并重新发送。
优选的,所述数据发送的核心在于将生成的待发送的业务数据存到循环队列中,再由业务跳转状态图对应的状态机在发送阶段统一发送。
优选的,所述数据发送具体过程为:业务数据的产生和数据的发送做成异步的操作,将业务任务~业务任务n,生成的业务数据,分别存入相应的发送循环队列中;当4g运行的任务执行到数据发送s1这个环节的时候,会从相应的发送循环队列0~n,中依次判断数据队列是否为空,不为空说明有待传输的业务数据,通过循环队列出队形式取出数据,判断取出数据长度是否超过合法长度,如果超出,则取最大合法长度的数据,超出的数据不取出,通过AT指令结合相应的connectid发送到相应服务器上。
优选的,数据的接收具体包括:初始化建立的n个socket对应的connectid,依次通过发送AT接收查询指令结合不同的connectid查询通信模块对connectid绑定的服务器的接收数据,将收取到的数据按应答格式解析出来,并通过入队的形式存入相应的接收循环队列。
优选的,所述状态查询具体为先判断是否需要重连,需要重连则先关闭被检测出错误的connectid,再根据被关闭的connectid之前的IP和端口和该connectid重新建立socket和绑定关系,不需要重连则进行状态查询,发送查询状态指令,在另外一个任务中查询通信模块串口接收队列是否有未处理的数据,有的话则提取解析模块状态,没有的话则跳转到数据发送s1环节。
优选的,异常的状态的处理包括模块断电,具体为根据通信模块的具体时序,通过操作GPIO的高低变化,对其做模块断电操作。
与现有技术相比,本发明的有益效果如下:本发明以数据发送操作和数据接收操作为基础设计了一个状态机。将生成的发往不同服务器地址的业务数据以循环队列入队的形式,存储在不同的发送数据循环队列中,在状态机发送任务中,依次从不同的循环队列中取出数据,通过AT指令发送给不同的connectid。在状态机接收任务中,通过AT指令查询不同的connectid查询到的接收内容,缓存到相应的接收数据循环队列中,在状态机外部的数据处理任务中,处理该接收数据。以此达到分时处理的目的。以一种轻松的方式实现了在实时系统上实现多socket收发通信。
附图说明
图1为本发明的业务跳转状态示意图。
图2为本发明的失败处理状态图。
图3为本发明的模块初始化s0具体流程。
图4为本发明的数据发送的示意图。
图5a、图5b为本发明的数据接收的示意图。
图6为本发明的状态查询示意图。
图7为本发明的其中一种应用实施例。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“上”、“下”、“内”、“外”“前端”、“后端”、“两端”、“一端”、“另一端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
请参阅图1-图7所示,本发明提供的一种实施例:基于4g模块的分时发送方法,本发明结合AT指令、状态机和循环队列,设计出了一种简单又稳定的通信方式。在本发明中以数据发送操作和数据接收操作为基础设计了一个状态机。将生成的发往不同服务器地址的业务数据以循环队列入队的形式,存储在不同的发送数据循环队列中,在状态机发送任务中,依次从不同的循环队列中取出数据,通过AT指令发送给不同的connectid。在状态机接收任务中,通过AT指令查询不同的connectid查询到的接收内容,缓存到相应的接收数据循环队列中,在状态机外部的数据处理任务中,处理该接收数据。以此达到分时处理的目的。以一种轻松的方式实现了在实时系统上实现多socket收发通信。
在本发明中,状态图共有5个状态,分别为模块初始化s0,数据发送s1,数据接收s2,状态查询s3,模块断电s4。
在本发明中,业务跳转状态图中具体为初始状态为s0,模块初始化s0初始化成功后,跳转到数据发送s1,s1发送成功后,跳转到数据接收s2,s2发送成功后跳转到状态查询s3,s3成功后,跳转到数据发送s1。这些过程中如有失败,就继续跳转到s0。为维持4g模块的正常发送,接收和状态查询任务。按照处理周期为T对整个业务做了模块化划分,并分配子模块任务占用时间。数据发送s1占t1,数据接收s2占t2,数据查询s3占t3。T=t1+t2+t3。在s1和s2阶段,通过不同的connectid先后往不同的IP地址和端口实现数据交互。即通过时间上的划分,实现分时业务。
在本发明中,失败处理状态图,失误处理逻辑是当连续失败次数小于n次,则继续对模块做初始化处理,如果连续失败次数大于等于n次,则对模块做断电处理s5,再跳转到模块初始化s0。开始进行业务跳转状态图。
在本发明中,模块初始化s0具体流程包括给模块上电;发送AT确定模块正常工作;配置模块APN;设置模块注册状态;根据业务需求,需要连接的服务器个数,通过AT指令建立socket,并绑定相应connectid。
在本发明中,数据发送s1具体包括:数据发送的核心在于将生成的待发送的业务数据存到循环队列中,再由业务跳转状态图对应的状态机在s1阶段统一发送。这样做的原因是,业务数据的产生和数据的发送做成异步的操作,将业务任务~业务任务n,生成的业务数据,分别存入相应的发送循环队列中。当4g运行的任务执行到数据发送s1这个环节的时候,会从相应的发送循环队列0~n,中依次判断数据队列是否为空,不为空说明有待传输的业务数据,通过循环队列出队形式取出数据,判断取出数据长度是否超过合法长度,如果超出,则取最大合法长度的数据,超出的数据不取出,通过AT指令结合相应的connectid发送到相应服务器上。
在本发明中,数据接收s2具体包括:在该环节,初始化建立的n个socket对应的connectid,依次通过发送AT接收查询指令结合不同的connectid查询通信模块对connectid绑定的服务器的接收数据,将收取到的数据按应答格式解析出来,并通过入队的形式存入相应的接收循环队列。目的是方便其他的业务处理任务,从接收循环队列通过出队的形式提取及解析收到的不同服务器传来的业务数据,进而进行业务处理。其中AT指令查询接收数据的流程如下,首先我们有一个概念,通信模块发送的数据通过串口中断给处理器,处理器可以在串口中断中以入队的形式将接收到的数据传给通信模块串口接收队列。发送查询指令前清空队列,是为了确保有效地接收到查询接收指令对应的内容。等待100ms,相当于和模块的握手,目的是确保数据完整地发送过来。第一步获取通信模块对connectid的接收数据大小len1,比较通信模块串口接收队列里未处理数据长度len2和len1的大小。如果len2<len1,则等待100ms,等到数据接收完毕再提取及处理。等待次数超过5次,则判断为异常,相应connectid的重连标志置位。如果len1等于len2,则进行通信模块串口接收队列出队处理,解析提取connectid对应的接收数据,并通过入队的形式存入相应的接收循环队列。这样来自不同服务器的通信数据从通信模块串口接收队列,有序地根据不同的connectid存入到相应的接收循环队列中。这个过程可以理解为接收的分时。
在本发明中,状态查询s3具体为,先判断是否需要重连,需要重连则先关闭被检测出错误的connectid,再根据被关闭的connectid之前的IP和端口和该connectid重新建立socket和绑定关系。不需要重连则进行状态查询。发送查询状态指令,在另外一个任务中查询通信模块串口接收队列是否有未处理的数据,有的话则提取解析模块状态,没有的话则跳转到数据发送s1环节。如此循环,构成状态机。
在本发明中,模块断电s4具体为:根据通信模块的具体时序,通过操作GPIO的高低变化,对其做模块断电操作。本发明在实时系统上灵活地实现了往多个socket传输数据,并能够查询模块本身的状态。在检测方案中提供了支持查询设备本身状态及通信模块本身状态的远程查询方案,及实现方式。便于集成到相应的系统中。减少人力物力的投入。本发明支持在实时系统上往多个服务器传输数据,也支持状态查询。方便用户知道当前的网络状态,信号强度,运营商,卡状态,注册情况,网络模式网络延迟等信息。LWIP支持往多个服务器传输数据,但是不支持模块状态查询。不能获取异地情况下的网络状态和模块状态。出现问题时,不利于有效的获取当地网络状态,对问题进行有效分析。
参照图7所示,设备上电后,搜星定位后播发差分数据,并将该数据通过通信模块传输给业务服务器。设备定时向管理服务器播发自检信息遇到情况时向参考站管理服务器播发报警信息。参考站管理服务器对设备有设置和整机的程序升级等功能。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (6)
1.基于4g模块的分时发送方法,其特征在于:包括数据发送,对所发送的数据进行接收,对所接收的数据进行状态查询,对异常的状态的处理并重新发送。
2.根据权利要求1所述的基于4g模块的分时发送方法,其特征在于,所述数据发送的核心在于将生成的待发送的业务数据存到循环队列中,再由业务跳转状态图对应的状态机在发送阶段统一发送。
3.根据权利要求1所述的基于4g模块的分时发送方法,其特征在于,所述数据发送具体过程为:业务数据的产生和数据的发送做成异步的操作,将业务任务~业务任务n,生成的业务数据,分别存入相应的发送循环队列中;当4g运行的任务执行到数据发送s1这个环节的时候,会从相应的发送循环队列0~n,中依次判断数据队列是否为空,不为空说明有待传输的业务数据,通过循环队列出队形式取出数据,判断取出数据长度是否超过合法长度,如果超出,则取最大合法长度的数据,超出的数据不取出,通过AT指令结合相应的connectid发送到相应服务器上。
4.根据权利要求2所述的基于4g模块的分时发送方法,其特征在于:数据的接收具体包括:初始化建立的n个socket对应的connectid,依次通过发送AT接收查询指令结合不同的connectid查询通信模块对connectid绑定的服务器的接收数据,将收取到的数据按应答格式解析出来,并通过入队的形式存入相应的接收循环队列。
5.根据权利要求2所述的基于4g模块的分时发送方法,其特征在于:所述状态查询具体为先判断是否需要重连,需要重连则先关闭被检测出错误的connectid,再根据被关闭的connectid之前的IP和端口和该connectid重新建立socket和绑定关系,不需要重连则进行状态查询,发送查询状态指令,在另外一个任务中查询通信模块串口接收队列是否有未处理的数据,有的话则提取解析模块状态,没有的话则跳转到数据发送s1环节。
6.根据权利要求2所述的基于4g模块的分时发送方法,其特征在于:异常的状态的处理包括模块断电,具体为根据通信模块的具体时序,通过操作GPIO的高低变化,对其做模块断电操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910489479.2A CN110213177B (zh) | 2019-06-06 | 2019-06-06 | 基于4g模块的分时发送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910489479.2A CN110213177B (zh) | 2019-06-06 | 2019-06-06 | 基于4g模块的分时发送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110213177A true CN110213177A (zh) | 2019-09-06 |
CN110213177B CN110213177B (zh) | 2022-12-20 |
Family
ID=67791212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910489479.2A Active CN110213177B (zh) | 2019-06-06 | 2019-06-06 | 基于4g模块的分时发送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110213177B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596867A (zh) * | 2021-06-17 | 2021-11-02 | 青岛中科英泰商用系统股份有限公司 | 一种基于FreeRTOS系统的4g模块控制方法与装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202704A (zh) * | 2007-09-07 | 2008-06-18 | 深圳市同洲电子股份有限公司 | 一种数据的传输方法及系统 |
US20130208592A1 (en) * | 2010-08-06 | 2013-08-15 | Bejing Qiantang Network Technology Company, Ltd. | Traffic-control-based data transmission method and communication system |
CN105515966A (zh) * | 2015-12-07 | 2016-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于d_id的fc网络发送通道控制方法 |
CN107302531A (zh) * | 2017-06-19 | 2017-10-27 | 青岛华潞佳电子科技有限公司 | 一种基于状态机和环形队列的串口命令解析方法 |
CN107612661A (zh) * | 2017-09-07 | 2018-01-19 | 四川九洲北斗导航与位置服务有限公司 | 数据通讯方法和装置 |
CN108198394A (zh) * | 2017-12-21 | 2018-06-22 | 河海大学 | 一种基于循环队列缓存的智能铁鞋数据传输处理方法及通信数据终端 |
CN108334384A (zh) * | 2018-02-10 | 2018-07-27 | 郑州天迈科技股份有限公司 | 基于状态机的4g模块管理方法 |
-
2019
- 2019-06-06 CN CN201910489479.2A patent/CN110213177B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202704A (zh) * | 2007-09-07 | 2008-06-18 | 深圳市同洲电子股份有限公司 | 一种数据的传输方法及系统 |
US20130208592A1 (en) * | 2010-08-06 | 2013-08-15 | Bejing Qiantang Network Technology Company, Ltd. | Traffic-control-based data transmission method and communication system |
CN105515966A (zh) * | 2015-12-07 | 2016-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于d_id的fc网络发送通道控制方法 |
CN107302531A (zh) * | 2017-06-19 | 2017-10-27 | 青岛华潞佳电子科技有限公司 | 一种基于状态机和环形队列的串口命令解析方法 |
CN107612661A (zh) * | 2017-09-07 | 2018-01-19 | 四川九洲北斗导航与位置服务有限公司 | 数据通讯方法和装置 |
CN108198394A (zh) * | 2017-12-21 | 2018-06-22 | 河海大学 | 一种基于循环队列缓存的智能铁鞋数据传输处理方法及通信数据终端 |
CN108334384A (zh) * | 2018-02-10 | 2018-07-27 | 郑州天迈科技股份有限公司 | 基于状态机的4g模块管理方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596867A (zh) * | 2021-06-17 | 2021-11-02 | 青岛中科英泰商用系统股份有限公司 | 一种基于FreeRTOS系统的4g模块控制方法与装置 |
CN113596867B (zh) * | 2021-06-17 | 2024-05-07 | 青岛中科英泰商用系统股份有限公司 | 一种基于FreeRTOS系统的4g模块控制方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110213177B (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105162883B (zh) | 网络负载均衡处理系统及其方法和装置 | |
US11388265B2 (en) | Machine-to-machine protocol indication and negotiation | |
CN103491172B (zh) | 云文件分享方法及系统 | |
CN106059650A (zh) | 基于sdn和nfv技术的天地一体化网络架构及数据传输方法 | |
CN108287723A (zh) | 一种应用交互方法、装置、物理机及系统 | |
CN103139157B (zh) | 一种基于socket的网络通信方法、装置及系统 | |
CN101986648A (zh) | 一种tcp选项的协商方法、装置及网络设备 | |
EP2475203B1 (en) | Wireless communication terminal, method for controlling same, and information storing medium | |
CN112584520A (zh) | 用于通过隧道组传输和接收数据的方法和系统 | |
CN206461640U (zh) | 一种兼容多接口的网关系统 | |
CN104486327B (zh) | 页面与长连接服务器间的通信方法及客户端 | |
CN103795632A (zh) | 一种数据报文传输方法及相关设备、系统 | |
WO2013116205A1 (en) | Wireless bridge device | |
KR20170124187A (ko) | 통신 프로토콜 자동 호환 기능을 갖는 IoT 플랫폼 | |
CN102412875B (zh) | 文件发送、接收方法及装置和文件传输方法及系统 | |
CN103368849A (zh) | Oam报文的处理方法和装置 | |
CN104954321B (zh) | 一种连接切换方法、装置及系统 | |
CN110213177A (zh) | 基于4g模块的分时发送方法 | |
CN104580346B (zh) | 数据传输方法及装置 | |
CN108566390A (zh) | 一种卫星应用层安全协议的实现方法及卫星消息监听与分发服务系统 | |
CN111385068B (zh) | 数据传输方法、装置、电子设备及通信系统 | |
CN109089299A (zh) | 一种基于SmartConfig模式让设备注册到云端的配网方法 | |
CN110381058A (zh) | 基于全双工通信协议WebSocket的请求传输方法及装置 | |
CN102215231A (zh) | 一种转发数据的方法及网关 | |
CN109246164A (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 |