智能电表的GPRS多通道通信的软件设计方法
技术领域
本发明涉及智能电表的软件设计方法,尤其是涉及智能电表的GPRS通信的软件设计方法。
背景技术
随着智能电网的发展,对智能电表的功能的多样性也提出了更高的要求,其中远程通信是智能电表发展的重要体现。目前,在电网的远程通信中,GPRS(General PacketRadio Service,通用分组无线服务)的通信方式由于稳定性好并且易维护性,在智能电网中得到广泛应用。然而,随着业务逻辑的日益复杂,GPRS的单通道通信方式难以满足新的需求。为此,多数智能电表会选择多通道的通信方式,即单个智能电表基于同一GPRS模块,建立多个TCP(Transmission Control Protocol,传输控制协议)远程连接,来同时连接到多个远程的服务器。这就使得智能电表必须要能够建立多个TCP连接,但是由于智能电表的嵌入式软件多采用C语言编写,由于C语言是一种面对过程设计的语言,因此多通道连接的应用场景,必然会导致代码的复杂度加大、灵活性降低以及缺陷率高等不足。可见,实有必要对智能电表的GPRS通信的软件设计方法进行改进。
发明内容
本发明所要解决的技术问题在于克服上述现有技术所存在的不足,而提出一种智能电表的GPRS多通道通信的软件设计方法,能够改善软件的移植性,降低二次开发的工作量,以及降低软件缺陷的风险。
本发明针对上述技术问题提出一种智能电表的GPRS多通道通信的软件设计方法,包括:
将智能电表的GPRS通信所涉及的业务流程,进行划分归类,得到多个独立的步骤,每个步骤的软件实现功能独立、接口独立;
将智能电表的GPRS连接通道所涉及的参数及方法,进行归类识别,得到一个独立的数据结构;以及
在需要建立一个远程的TCP连接时,用上述的数据结构实例化一个对象,并调用上述的各个软件接口。
在一些实施例中,将智能电表GPRS通信所涉及的业务流程划分为:(1)、GPRS参数初始化;(2)、PPP连接通道激活;(3)、TCP远程连接建立;(4)、数据收发处理;以及(5)、超时和异常处理共五类。
在一些实施例中,将智能电表的GPRS连接通道所涉及的参数及方法归类识别为:(1)、GPRS 通道标示符;(2)、远程会话通道编号;(3)、会话心跳超时计数器;(4)、GPRS通道状态;(5)、数据收发缓存寄存器;以及(6)、超时和异常处理操作共六类。
在一些实施例中,所述的在需要建立一个远程的TCP连接时,用上述的数据结构实例化一个对象,并调用上述的各个软件接口,具体包括以下步骤:
GPRS通道参数的初始化;
PPP连接上下文激活;
建立与远程服务器的TCP连接;
查询每一个TCP连接是否有消息到来,如有消息到来,处理TCP连接的数据请求;以及
查询每一个TCP连接的状态是否异常,如有异常,重新建立TCP连接。
在一些实施例中,所述的查询每一个TCP连接是否有消息到来,具体包括:如无消息到来,则查询是否发送心跳请求。
在一些实施例中,所述的查询是否发送心跳请求,具体包括:查询会话心跳超时计数器是否到达,如果到达计数器的时间门限,发送会话心跳消息,维持现有会话的连接。
在一些实施例中,所述的PPP连接上下文激活,具体包括:GPRS 模块进行PPP拨号,获得IP地址,使得PPP连接通道激活。
在一些实施例中,所述的建立与远程服务器的TCP连接,具体包括:如果有多个TCP连接,依次进行连接。
在一些实施例中,所述的查询每一个TCP连接是否有消息到来,是采用轮询的方式进行。
在一些实施例中,所述的查询每一个TCP连接的状态是否异常,是通过处理函数来查询每一个TCP连接的状态。
与现有技术相比,本发明的智能电表的GPRS多通道通信的软件设计方法,通过将智能电表的GPRS通信业务流程抽象为若干个独立的步骤;再用软件算法实现各个步骤的具体功能逻辑,并且每个部分的软件的接口独立;再将每个连接通道所涉及的参数及所用方法抽象成独立的数据结构,如需要增加一个GPRS逻辑连接的通道,则只需用抽象出来的数据结构实例化出一个具体的变量,再通过调用各个独立的软件接口函数,将变量作为实参传入接口函数,函数根据其各自的功能以及实际应用逻辑,操作数据结构的变量或者调用变量里面的方法,最终实现多通道远程通信,能够改善软件的移植性,降低二次开发的工作量,以及降低软件缺陷的风险。
附图说明
图1是本发明的软件设计方法的流程示意。
图2是本发明的软件设计方法中建立一个远程的TCP连接步骤的具体流程示意。
具体实施方式
以下结合本说明书的附图,对本发明的较佳实施例予以进一步地详尽阐述。
参见图1,图1是本发明的软件设计方法的流程示意。本发明提出一种智能电表的GPRS多通道通信的软件设计方法,其大致包括以下步骤:
S101、将智能电表的GPRS通信所涉及的业务流程,进行划分归类,得到多个独立的步骤,每个步骤的软件实现功能独立、接口独立。
S103、将智能电表的GPRS连接通道所涉及的参数及方法,进行归类识别,得到一个独立的数据结构。以及
S105、在需要建立一个远程的TCP连接时,用上述的数据结构实例化一个对象,并调用上述的各个软件接口。
本发明的软件设计方法,在解决GPRS通信兼容单通道连接的同时,能够实现多通道连接的功能,并且在连接通道数量增加的情况下,软件的修改量最小,能够有效地降低软件缺陷率。
在上述步骤S101中,将智能电表GPRS通信所涉及的业务流程划分为:(1)、GPRS参数初始化;(2)、PPP (Point to Point Protocol, 点对点协议)连接通道激活;(3)、TCP远程连接建立;(4)、数据收发处理;以及(5)、超时和异常处理共五类。每一类对应一个独立的步骤。
在上述步骤S103中,将智能电表的GPRS连接通道所涉及的参数及方法归类识别为:(1)、GPRS 通道标示符;(2)、远程会话通道编号;(3)、会话心跳超时计数器;(4)、GPRS通道状态;(5)、数据收发缓存寄存器;以及(6)、超时和异常处理操作共六类。通过对这些的参数和方法的建模,可以抽象出一个独立的数据结构。
结合参见图2,图2是本发明的软件设计方法中建立一个远程的TCP连接步骤的具体流程示意。上述步骤S103的具体流程包括以下细节性的步骤:
S201、GPRS通道参数的初始化。具体包括:串口波特率的设置和网络环境参数的设置。
S203、PPP连接上下文激活。具体包括: GPRS 模块进行PPP拨号,获得IP地址,使得PPP连接通道激活。
S205、建立与远程服务器的TCP连接。此时如果有多个TCP连接,则依次进行连接,即:通过步骤S205-1建立TCP-1连接,通过步骤S205-2建立TCP-2连接…… 通过步骤S205-n建立TCP-n连接。
S207、查询每一个TCP连接是否有消息到来,如有消息到来,转步骤S209,否则转步骤S213。具体地,软件是采用轮询的方式进行每一个TCP连接的查询。
S209、处理TCP连接的数据请求。
S211、查询每一个TCP连接的状态是否异常,如有异常,转步骤S205,否则转步骤S207。具体地,是通过处理函数来查询每一个TCP连接的状态,有异常的话,重新建立TCP连接,没异常的话,维持TCP连接。
S213、查询是否发送心跳请求,即查询会话心跳超时计数器是否到达,如果到达计数器的时间门限,转步骤S215,否则转步骤S207。
S215、发送会话心跳消息,维持现有会话的连接,转步骤S211。
采用本发明的智能电表的GPRS多通道通信的软件设计方法的有益效果包括:兼容性好,适用单通道和多通道应用场景;能够增强软件健壮性好,降低缺陷率;能够缩短软件设计周期,减少开发成本。
上述内容仅为本发明的较佳实施例,并非用于限制本发明的实施方案,本领域普通技术人员根据本发明的主要构思和精神,可以十分方便地进行相应的变通或修改,故本发明的保护范围应以权利要求书所要求的保护范围为准。