一种协议通讯方法和系统的制作方法

文档序号:7973370阅读:155来源:国知局
专利名称:一种协议通讯方法和系统的制作方法
技术领域
本发明涉及通讯传输领域,尤其涉及一种协议通讯方法和系统。
背景技术
随着传感器等终端技术的快速发展,监控系统和/或控制系统已经越来越多与上位机(例如PC、手机等等)进行交互,这就必然涉及到协议的传输及解析等内容。目前,采用的协议帧的格式包括起始码、终端编码、命令字、数据长度、数据域、校验码以及结束码。如表1所示。表 1
起始码I终端编码I命令字I数据长度I数据域I校验码I结束IT 下面具体介绍各个部分的作用 起始码,用于界定每一帧的开始位置; 终端编码对所操作终端设备的唯一编码; 命令字用于区分所进行的操作类型; 数据长度用于表示数据域的长度; 数据域业务需要的真实数据; 校验码用于校验该协议帧的正确性; 结束码用于界定每一帧的结束位置。在采用上述协议帧时,其只根据终端编码和命令字作为一次请求的判定标准,即每一次交互都是由终端编码和命令字作为命令是否发送成功与重发的依据;如果对同一个终端设备发送多个相同的命令,且这时程序采用的是多线程处理(即会出现先处理后接收到的命令,而不是按先接收先处理机制),再加上网络等原因,主站将出现先请求的操作超时,而后请求的操作很快得到回复,接着还是接收到后请求的操作的回复,此时,用户一般将这个回复进行过滤,因为两个请求中,第一个已经超时,而第二个已经回复。下面举一个简单的例子说明上述问题,例如现在有用户A、用户B、用户C三人分别通过主站向终端设备发送终端编码为“HT0001”,命令字为“10H”的请求,假定按用户A、用户B、用户C的顺序,实施现有技术的方案就有可能出现以下情况
1)接收到第一条命令回复,并回复给了用户C;
2)接收到第二条命令回复,并回复给了用户B;
3)此时,用户A因请求超时,被提示“请求超时”;
4)接着,接收到第三条命令回复,因此时已没有未处理的请求,因此将此回复抛弃。

发明内容
本发明要解决的技术问题在于,针对现有技术用户请求与协议帧收发错乱的缺陷,提供一种解决用户请求与协议帧收发错乱问题的协议通讯方法和系统。本发明解决其技术问题所采用的技术方案是构造一种协议通讯方法,所述方法包括以下步骤
A.接收用户调用业务类型向终端设备发送请求操作命令,以生成携带唯一命令号的协议帧,其中,所述业务类型包括校时命令;
B.将所生成的协议帧添加至发送队列,以向终端设备发送协议帧;
C.接收线程接收所发送的协议帧,并将其添加至接收队列;
D.对接收后的协议帧进行解析;
E.根据解析后的协议帧判断终端设备是否校验成功,若是,则执行步骤F1,若否,则执行步骤F2;
Fl.将解析后的协议帧添加至接收链表,转至步骤G ; F2.生成第一回复数据,返回步骤A ;
G.在该接收链表中查找具有相同的终端编码和命令号的第二回复数据,以将所述第二回复数据返回至用户。在本发明所述的协议通讯方法中,所述步骤B还包括以下步骤
Bi.判断发送队列是否为空,若是,则执行步骤B21,若否,则执行步骤B22 ; B21.发送队列处于等待状态,并唤醒发送线程,返回步骤Bl ; B22.从该发送队列中获取协议帧,并发送该协议帧。在本发明所述的协议通讯方法中,所述步骤G具体包括以下步骤
Gl.判断是否查找到所述第二回复数据,若是,则执行步骤G21,若否,则执行步骤G22;
G21.将所述第二回复数据返回至用户,步骤结束;
G22.判断协议帧是否超时,若是,则执行步骤G3,若否,则返回步骤Gl ;
G3.返回超时提示命令,返回步骤Fl。在本发明所述的协议通讯方法中,在所述步骤E中终端设备校验的方式包括 方式一通过命令号校验;
方式二 通过终端编码与命令字组合校验; 方式三通过方式一和方式二结合校验。在本发明所述的协议通讯方法中,所述协议帧的格式包括起始码、命令号、终端编码、命令字、数据长度、数据域、校验码以及结束码。本发明还构造一种协议通讯系统,所述系统包括依次连接的生成模块、发送模块、 接收模块、解析模块、判断模块、与所述判断模块连接的添加模块、分别与所述判断模块和所述生成模块连接的回复模块以及与所述添加模块连接的返回模块,其中,
生成模块,用于接收用户调用业务类型向终端设备发送请求操作命令,以生成携带唯一命令号的协议帧,其中,所述业务类型包括校时命令;
发送模块,用于将所生成的协议帧添加至发送队列,以向终端设备发送协议帧;
接收模块,用于接收线程接收所发送的协议帧,并将其添加至接收队列;
解析模块,用于对接收后的协议帧进行解析;
判断模块,用于根据解析后的协议帧判断终端设备是否校验成功;
添加模块,用于在所述判断模块的结果为是时将解析后的协议帧添加至接收链表;
回复模块,用于在所述判断模块的结果为否时生成第一回复数据;
返回模块,用于在该接收链表中查找具有相同的终端编码和命令号的第二回复数据,以将所述第二回复数据返回至用户。在本发明所述的协议通讯系统中,所述发送模块包括依次连接的第一判断单元、 等待单元以及获取单元,其中,
第一判断单元,用于判断发送队列是否为空;
等待单元,用于在所述第一判断单元的结果为是时设置发送队列处于等待状态,并唤醒发送线程;
获取单元,用于在所述第一判断单元的结果为否时从该发送队列中获取协议帧,并发送该协议帧。在本发明所述的协议通讯系统中,所述返回模块包括第二判断单元、分别与所述第二判断单元连接的回复单元和第三判断单元以及与所述第三判断单元连接的超时单元, 其中,
第二判断单元,用于判断是否查找到所述第二回复数据;
回复单元,用于在所述第二判断单元的结果为是时将所述第二回复数据返回至用户; 第三判断单元,用于在所述第二判断单元的结果为否时判断协议帧是否超时; 超时单元,用于在所述第三判断单元的结果为是时返回超时提示命令。在本发明所述的协议通讯系统中,在所述判断模块中终端设备校验的方式包括 方式一通过命令号校验;
方式二 通过终端编码与命令字组合校验; 方式三通过方式一和方式二结合校验。在本发明所述的协议通讯系统中,所述协议帧的格式包括起始码、命令号、终端编码、命令字、数据长度、数据域、校验码以及结束码。实施本发明的技术方案,具有以下有益效果通过对协议帧增加一个唯一的命令号实现对终端设备的校验,从而解决用户请求与协议帧收发错乱的问题,实施本发明的技术方案,不仅用户的请求跟踪更容易,而且协议解析更简单。


下面将结合附图及实施例对本发明作进一步说明,附图中 图1是本发明协议通讯方法的流程图2是本发明协议通讯方法步骤B的流程图; 图3是本发明协议通讯方法步骤G的流程图; 图4是本发明协议通讯系统的结构示意图; 图5是本发明协议通讯系统中发送模块的结构示意图; 图6是本发明协议通讯系统中返回模块的结构示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1是本发明协议通讯方法的流程图,如图1所示,所述方法包括以下步骤
在步骤A中,接收用户调用业务类型向终端设备发送请求操作命令,以生成携带唯一命令号的协议帧,其中,所述业务类型包括校时命令。优选地,所述协议帧的格式包括起始码、命令号、终端编码、命令字、数据长度、数据域、校验码以及结束码。应当说明的是,在本实施例中,该协议帧的格式如表2或者表3 所示,本领域的技术人员应当了解,该协议帧的格式中命令号和终端编码在内部的排列顺序可互换,在此不再赘述。表2
1 始码I命令号I终端编码I命令字I数据长度I数据域I校验码I结束码
表 3 ___
遍始码I终端编码I命令号I命令字I数据长度I数据域I校验码I结Wl 在步骤B中,将所生成的协议帧添加至发送队列,以向终端设备发送协议帧。在步骤C中,接收线程接收所发送的协议帧,并将其添加至接收队列。应当说明的是,在其他的实施例中,可先判断接收列表中是否包含该协议帧,若是,则执行步骤C,若否,则循环判断接收列表中是否包含该协议帧。在步骤D中,对接收后的协议帧进行解析。在步骤E中,根据解析后的协议帧判断终端设备是否校验成功,若是,则执行步骤 Fl,若否,则执行步骤F2。优选地,终端设备校验的方式包括 方式一通过命令号校验;
方式二 通过终端编码与命令字组合校验; 方式三通过方式一和方式二结合校验。应当说明的是,在本实施例中采用的是方式三,本领域的技术人员应当了解,在其他的实施例中,采用方式一和方式二也是可以实施的,在此不再赘述。在步骤Fl中,将解析后的协议帧添加至接收链表,转至步骤G。在步骤F2中,生成第一回复数据,返回步骤A。在步骤G中,在该接收链表中查找具有相同的终端编码和命令号的第二回复数据,以将所述第二回复数据返回至用户。请参阅图2,图2是本发明协议通讯方法步骤B的流程图,如图2所示,请结合参考图1,所述步骤B还包括以下步骤
在步骤Bl中,判断发送队列是否为空,若是,则执行步骤B21,若否,则执行步骤B22 ; 在步骤B21中,发送队列处于等待状态,并唤醒发送线程,返回步骤Bl ; 在步骤B22中,从该发送队列中获取协议帧,并发送该协议帧。请参阅图3,图3是本发明协议通讯方法步骤G的流程图,如图3所示,结合参考图 1和图2,所述步骤G具体包括以下步骤
在步骤Gl中,判断是否查找到所述第二回复数据,若是,则执行步骤G21,若否,则执行步骤G22 ;
在步骤G21中,将所述第二回复数据返回至用户,步骤结束; 在步骤G22中,判断协议帧是否超时,若是,则执行步骤G3,若否,则返回步骤Gl ;在步骤G3中,返回超时提示命令,返回步骤Fl。请参阅图4,图4是本发明协议通讯系统的结构示意图,如图4所示,所述系统包括依次连接的生成模块1、发送模块2、接收模块3、解析模块4、判断模块5、与所述判断模块5 连接的添加模块6、分别与所述判断模块5和所述生成模块1连接的回复模块7以及与所述添加模块6连接的返回模块8,下面具体介绍各个部分的作用
生成模块1,用于接收用户调用业务类型向终端设备发送请求操作命令,以生成携带唯一命令号的协议帧,其中,所述业务类型包括校时命令;
发送模块2,用于将所生成的协议帧添加至发送队列,以向终端设备发送协议帧; 接收模块3,用于接收线程接收所发送的协议帧,并将其添加至接收队列; 解析模块4,用于对接收后的协议帧进行解析; 判断模块5,用于根据解析后的协议帧判断终端设备是否校验成功; 添加模块6,用于在判断模块5的结果为是时将解析后的协议帧添加至接收链表; 回复模块7,用于在判断模块5的结果为否时生成第一回复数据; 返回模块8,用于在该接收链表中查找具有相同的终端编码和命令号的第二回复数据,以将所述第二回复数据返回至用户。请参阅图5,图5是本发明协议通讯系统中发送模块的结构示意图,如图5所示,所述发送模块2包括依次连接的第一判断单元21、等待单元22以及获取单元23,下面具体介绍各个部分的作用
第一判断单元,用于判断发送队列是否为空;
等待单元,用于在所述第一判断单元的结果为是时设置发送队列处于等待状态,并唤醒发送线程;
获取单元,用于在所述第一判断单元的结果为否时从该发送队列中获取协议帧,并发送该协议帧。请参阅图6,图6是本发明协议通讯系统中返回模块的结构示意图,如图6所示,所述返回模块8包括第二判断单元81、分别与所述第二判断单元81连接的回复单元82和第三判断单元83以及与所述第三判断单元83连接的超时单元84,下面具体介绍各个部分的作用
第二判断单元81,用于判断是否查找到所述第二回复数据;
回复单元82,用于在所述第二判断单元的结果为是时将所述第二回复数据返回至用
户;
第三判断单元83,用于在所述第二判断单元的结果为否时判断协议帧是否超时; 超时单元84,用于在所述第三判断单元的结果为是时返回超时提示命令。通过对协议帧增加一个唯一的命令号实现对终端设备的校验,从而解决用户请求与协议帧收发错乱的问题,实施本发明的技术方案,不仅用户的请求跟踪更容易,而且协议
解析更简单。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种协议通讯方法,其特征在于,所述方法包括以下步骤A.接收用户调用业务类型向终端设备发送请求操作命令,以生成携带唯一命令号的协议帧,其中,所述业务类型包括校时命令;B.将所生成的协议帧添加至发送队列,以向终端设备发送协议帧;C.接收线程接收所发送的协议帧,并将其添加至接收队列;D.对接收后的协议帧进行解析;E.根据解析后的协议帧判断终端设备是否校验成功,若是,则执行步骤F1,若否,则执行步骤F2;Fl.将解析后的协议帧添加至接收链表,转至步骤G ; F2.生成第一回复数据,返回步骤A ;G.在该接收链表中查找具有相同的终端编码和命令号的第二回复数据,以将所述第二回复数据返回至用户。
2.根据权利要求1所述的协议通讯方法,其特征在于,所述步骤B还包括以下步骤 Bi.判断发送队列是否为空,若是,则执行步骤B21,若否,则执行步骤B22 ;B21.发送队列处于等待状态,并唤醒发送线程,返回步骤Bl ; B22.从该发送队列中获取协议帧,并发送该协议帧。
3.根据权利要求2所述的协议通讯方法,其特征在于,所述步骤G具体包括以下步骤 Gl.判断是否查找到所述第二回复数据,若是,则执行步骤G21,若否,则执行步骤G22; G21.将所述第二回复数据返回至用户,步骤结束;G22.判断协议帧是否超时,若是,则执行步骤G3,若否,则返回步骤Gl ; G3.返回超时提示命令,返回步骤Fl。
4.根据权利要求3所述的协议通讯方法,其特征在于,在所述步骤E中终端设备校验的方式包括方式一通过命令号校验;方式二 通过终端编码与命令字组合校验;方式三通过方式一和方式二结合校验。
5.根据权利要求4所述的协议通讯方法,其特征在于,所述协议帧的格式包括起始码、 命令号、终端编码、命令字、数据长度、数据域、校验码以及结束码。
6.一种协议通讯系统,其特征在于,所述系统包括依次连接的生成模块、发送模块、接收模块、解析模块、判断模块、与所述判断模块连接的添加模块、分别与所述判断模块和所述生成模块连接的回复模块以及与所述添加模块连接的返回模块,其中,生成模块,用于接收用户调用业务类型向终端设备发送请求操作命令,以生成携带唯一命令号的协议帧,其中,所述业务类型包括校时命令;发送模块,用于将所生成的协议帧添加至发送队列,以向终端设备发送协议帧; 接收模块,用于接收线程接收所发送的协议帧,并将其添加至接收队列; 解析模块,用于对接收后的协议帧进行解析; 判断模块,用于根据解析后的协议帧判断终端设备是否校验成功; 添加模块,用于在所述判断模块的结果为是时将解析后的协议帧添加至接收链表; 回复模块,用于在所述判断模块的结果为否时生成第一回复数据;返回模块,用于在该接收链表中查找具有相同的终端编码和命令号的第二回复数据, 以将所述第二回复数据返回至用户。
7.根据权利要求6所述的协议通讯系统,其特征在于,所述发送模块包括依次连接的第一判断单元、等待单元以及获取单元,其中,第一判断单元,用于判断发送队列是否为空;等待单元,用于在所述第一判断单元的结果为是时设置发送队列处于等待状态,并唤醒发送线程;获取单元,用于在所述第一判断单元的结果为否时从该发送队列中获取协议帧,并发送该协议帧。
8.根据权利要求7所述的协议通讯系统,其特征在于,所述返回模块包括第二判断单元、分别与所述第二判断单元连接的回复单元和第三判断单元以及与所述第三判断单元连接的超时单元,其中,第二判断单元,用于判断是否查找到所述第二回复数据;回复单元,用于在所述第二判断单元的结果为是时将所述第二回复数据返回至用户;第三判断单元,用于在所述第二判断单元的结果为否时判断协议帧是否超时;超时单元,用于在所述第三判断单元的结果为是时返回超时提示命令。
9.根据权利要求8所述的协议通讯系统,其特征在于,在所述判断模块中终端设备校验的方式包括方式一通过命令号校验;方式二 通过终端编码与命令字组合校验;方式三通过方式一和方式二结合校验。
10.根据权利要求9所述的协议通讯系统,其特征在于,所述协议帧的格式包括起始码、命令号、终端编码、命令字、数据长度、数据域、校验码以及结束码。
全文摘要
本发明公开一种协议通讯方法和系统,该方法为A.接收用户调用业务类型向终端设备发送请求操作命令,以生成携带唯一命令号的协议帧;B.将协议帧添加至发送队列,以发送协议帧;C.接收线程接收协议帧,并将其添加至接收队列;D.对接收后的协议帧进行解析;E.根据解析后的协议帧判断终端设备是否校验成功,若是,则F1,若否,则F2;F1.将解析后的协议帧添加至接收链表,转G;F2.生成第一回复数据,返回A;G.查找具有相同的终端编码和命令号的第二回复数据,以将其返回至用户。通过对协议帧增加唯一的命令号实现对终端设备的校验,从而解决用户请求与协议帧收发错乱的问题,不仅使用户的请求跟踪更容易,且协议解析更简单。
文档编号H04L29/06GK102438012SQ20111036134
公开日2012年5月2日 申请日期2011年11月15日 优先权日2011年11月15日
发明者朱泽才 申请人:航天科工深圳(集团)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1