著录项信息
专利名称 | 一种车载GPS设备协议转换软网关 |
申请号 | CN201210174853.8 | 申请日期 | 2012-05-28 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2012-10-10 | 公开/公告号 | CN102724183A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6;;;H;0;4;W;8;0;/;1;0;;;H;0;4;W;8;8;/;1;6查看分类表>
|
申请人 | 浙江工业大学;杭州普诺科技有限公司 | 申请人地址 | 浙江省杭州市下城区潮王路18号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 浙江工业大学,杭州普诺科技有限公司 | 当前权利人 | 浙江工业大学,杭州普诺科技有限公司 |
发明人 | 徐志江;孟利民;彭宏;王胜 |
代理机构 | 杭州天正专利事务所有限公司 | 代理人 | 王兵;王利强 |
摘要
一种车载GPS设备协议转换软网关,包括:Dev2GateFactory对象单元,用以负责Dev2GateProtocol对象的管理,模拟设备的本地UDP端口查找;Dev2GateProtocol对象单元,用以负责软网关与GPS设备TCP连接超时管理,数据报文解析校验,GPS设备数据库读取写入,启动/停止模拟设备,私有协议与SIP协议转换,转发设备请求/响应等网络处理的方法实现;Simu_dev对象单元,用以负责实例化软网关中对应注册车载GPS设备的模拟设备,通过该模拟设备,实现设备与服务器之间会话的具体方法。本发明对接入设备与通信会话进行统一有效的管理,加强通信会话的统一性,有效性,可扩展性。
1.一种车载GPS设备协议转换软网关,其特征在于:所述车载GPS设备协议转换软网关为设备私有协议与SIP协议转换软网关,所述软网关包括:
Dev2GateFactory对象单元,用以负责Dev2GateProtocol对象的管理,模拟设备的本地UDP端口查找,以及会话管理的方法实现,所述会话管理包括数据库读写接口;
Dev2GateProtocol对象单元,用以负责软网关与GPS设备TCP连接超时管理,数据报文解析校验,GPS设备数据库读取写入,启动/停止模拟设备,私有协议与SIP协议转换,转发设备请求/响应网络处理的方法实现;
Simu_dev对象单元,用以负责实例化软网关中对应车载GPS设备的模拟设备,通过该模拟设备,实现设备与服务器之间会话的具体方法;
所述软网关接收到GPS设备私有数据报文后,触发dataReceived()事件,实现所述数据报文解析校验方法:首先调用QCpredev2ser()函数进行预解析处理,对报文进行校验,并解析出设备SN序列号与去除GPRS头的数据报data;所述设备SN序列号由厂家自由定义,并事先注册到软网关设备数据库中;
软网关读取软网关设备数据库,检索该设备SN序列号是否合法,并登记接入GPS设备网络信息;所述Dev2GateProtocol对象单元中,在所述dataReceived()事件里,实现私有协议与SIP协议报文转换:经预解析和数据库查询之后的合法GPS设备,软网关会将其需要上发至服务器的的TCP报文数据,保存到列表缓存dbuff中;调用函数deferToThread()进入延迟对象Deferred子线程中,按照设定的时间间隔,从列表中读取保存的私有协议数据,经函数QCdev2ser()转换为SIP协议报文之后发送至服务器;
所述Dev2GateProtocol对象单元中,TCP保活机制是:每次收到GPS设备发送的TCP数据报文则更新报文时间,定时启动TCP超时处理程序,检查当前时间与最新报文时间间隔是否超时,若超时则软网关主动断开与设备的TCP连接。
2.如权利要求1所述的车载GPS设备协议转换软网关,其特征在于:所述
Dev2GateProtocol对象单元中,在每个设备第一次接入时,注册启动模拟设备simu_dev()对象实例;每个GPS设备对应一个模拟设备实例,通过该实例经过UDP链路向SIP服务器发送请求或响应,同时也可以根据需要将服务器的请求与响应转发给GPS设备;所述模拟设备实例中,实例化sip.Base类对象rvsip_endpoint,模拟设备端点,用于上发服务器设备请求,或者服务器下发指令;实例化sip.Request类对象rvsip_request,用于组成上发服务器的相应SIP协议请求报文,模拟设备还通过开启心跳包,定时向SIP服务器发送从心跳报文,保持模拟设备与SIP服务器之间的UDP链路通信会话的有效性,模拟设备在接收到服务器下发GPS设备指令时,将调用Qcser2dev()函数,将SIP协议报文解析为设备可识别的私有协议报文,并下发。
3.如权利要求1所述的车载GPS设备协议转换软网关,其特征在于:所述协议转换软网关还包括TCP超时处理子单元,如出现TCP连接超时,接入设备未注册,数据报文非法或会话无响应,则软网关将触发connectionLost()事件,执行关闭TCP连接,删除模拟设备,清空缓存操作。
4.如权利要求1所述的车载GPS设备协议转换软网关,其特征在于:所述私有协议数据报文预处理函数QCpredev2ser(),私有协议数据报文转换XML格式SIP协议数据报文函数QCdev2ser(),SIP协议报文转换成私有协议报文函数Qcser2dev()均为C语言扩展模块protoTrans中的子函数。
一种车载GPS设备协议转换软网关\n技术领域\n[0001] 本发明涉及车载GPS设备与服务器通信过程中私有协议与SIP协议转换技术,是一种GPS设备接入软网关。\n背景技术\n[0002] 近年来,伴随着GPS技术的成熟,为了通过GPS系统对车辆,人员进行更有效的管理,GPS设备与管理服务器之间的通信技术也便发展起来。目前不少设备厂商对GPS设备进行了一定深度的开发,对GPS功能进行了扩展。因此其在处理GPS数据时,不再是发送简单的定位数据报,而是对其进行了私有协议下的数据封装,然后通过TCP协议上传服务器。\n[0003] 但是由于不同厂家私有协议的之间的兼容性差,难以在车载定位,录像采集,车辆管理等大应用背景中进行数据整合,使得设备在与服务器通信过程中,需要解析处理不同协议报文,对管理造成困难。而且由于现有多媒体应用中,如音视频会话,常使用RTP,RTCP等自有通信协议。因此,在车载GPS设备与服务器会话过程中,通过某种会话管理协议,对不同类型协议类型数据进行统一管理显得十分重要。\n[0004] SIP是由IETF制定的一个应用层的控制协议,可以用来建立、修改、和终止多媒体会话。通过与RTP/RTCP、SDP、RTSP等协议及DNS配合,SIP支持语音、视频、数据等,并已经取得了广泛的应用。因此加入SIP协议管理很好的满足了车载GPS设备与服务器通信的需求。但如果要在GPS车载设备中直接加入SIP协议封装模块,必须对不同厂商的设备进行软硬件的重新设计,成本大,也难以对现有产品进行兼容。因此本方案,采用架设协议转换软网关的方式,对设备与服务器通信过程中的会话进行设备私有协议与SIP协议的转换,既保证了设备平台的兼容性,又保证了服务器会话管理的统一性,扩展性。\n发明内容\n[0005] 为了克服已有车载GPS设备与服务器通信过程中私有协议的通用性不强,兼容性差,会话管理能力弱,扩展能力有限等不足,本发明提供一种设备私有协议与SIP协议转换软网关,对接入设备与通信会话进行统一有效的管理,加强通信会话的统一性,有效性,可扩展性。\n[0006] 本发明解决其技术问题所采用的技术方案是:\n[0007] 一种车载GPS设备协议转换软网关,所述软网关的技术的主体构架为Python语言,通过Twisted非堵塞网络框架实现具体功能。所述Python语言为一种高阶动态编程语言。所述Twisted是一种基于事件的开源网络框架;\n[0008] 所述车载GPS设备协议转换软网关为设备私有协议与SIP协议转换软网关,所述软网关包括:Dev2GateFactory对象单元,Dev2GateProtoco对象单元和Simu_dev对象单元;\n[0009] 所述Dev2GateFactory对象单元,用以负责Dev2GateProtocol对象的管理,模拟设备的本地UDP端口查找,数据库读写接口等会话管理的方法实现。\n[0010] 所述Dev2GateProtocol对象单元,用以负责软网关与GPS设备TCP连接超时管理,数据报文解析校验,GPS设备数据库读取写入,启动/停止模拟设备,私有协议与SIP协议转换,转发设备请求/响应等网络处理的方法实现。\n[0011] 所述Simu_dev对象单元,用以负责实例化软网关中对应注册车载GPS设备的模拟设备,通过该模拟设备,实现设备与服务器之间会话的具体方法。\n[0012] 进一步,所述的车载GPS设备协议转换软网关Dev2GateProtocol对象中,本软网关接收到GPS设备私有数据报文后,触发dataReceived()事件,实现所述数据报文解析校验方法:首先调用函数QCpredev2ser()进行预解析处理,对报文进行校验,并解析出设备SN序列号与去除GPRS头的数据报data。所述设备SN序列号由厂家自由定义,并事先注册到软网关设备数据库中。软网关读取数据库,检索该设备SN序列号是否合法,并登记接入GPS设备网络信息;所述Dev2GateProtocol对象单元中,依然在所述dataReceived()事件里,实现私有协议与SIP协议报文转换:经预解析和数据库查询之后的合法GPS设备,软网关会将其需要上发至服务器的TCP报文数据,保存到列表缓存dbuff中。然后函数deferToThread()进入延迟对象Deferred子线程中,调用函数send2Server(),按照设定的时间间隔,从列表中读取保存的私有协议数据,经函数QCdev2ser()转换为SIP协议报文之后发送至服务器,以防止GPS设备大量发送私有协议数据导致服务器负载过重。由于send2Server函数返回Deferred对象,该函数中的阻塞行为不会阻塞系统,可以达到快速退出dataReceived()事件的目的;所述Dev2GateProtocol对象单元中,TCP保活机制是:\n每次收到GPS设备发送的TCP数据报文便更新报文时间。定时启动TCP超时处理程序,检查当前时间与最新报文时间间隔是否超时,若超时则软网关主动断开与设备的TCP连接。\n[0013] 再进一步,所述Dev2GateProtocol对象单元中,为了实现设备与服务器之间的会话,必须在每个设备第一次接入时,注册启动模拟设备simu_dev()对象实例。每个GPS设备对应一个模拟设备实例,通过该实例经过UDP链路向SIP服务器发送请求或响应。同时也可以根据需要将服务器的请求与响应转发给GPS设备,以达到建立并完成会话目的。所述模拟设备实例中,实例化sip.Base类对象rvsip_endpoint,模拟设备端点,用于上发服务器设备请求,或者服务器下发指令;实例化sip.Request类对象rvsip_request,用于组成上发服务器的相应SIP协议请求报文。此外,模拟设备还实现了启动心跳包保活,向设备转发服务器请求或响应等功能的方法,从而对GPS设备与服务器之间的会话过程进行有效处理。模拟设备在接收到服务器下发GPS设备指令时,将调用Qcser2dev()函数,将SIP协议报文解析为设备可识别的私有协议报文,并下发。\n[0014] 所述模拟设备simu_dev()实例心跳包服务,可以控制刷新TCP报文时间,维持GPS设备与软网关的TCP连接,同时通过发送心跳报文刷新模拟设备实例与SIP服务器的会话注册登陆状态,从而起到保持车载GPS设备,软网关系统,SIP服务器之间的通信连接的安全稳定的作用。\n[0015] 所述协议转换软网关中,一旦出现如TCP连接超时,接入设备未注册,数据报文非法,会话无响应等事件,则系统将触发connectionLost()事件,执行关闭TCP连接,删除模拟设备,清空缓存等操作,保证网关网络资源的有效性。\n[0016] 所述私有协议数据报文预处理函数QCpredev2ser(),私有协议数据报文转换XML格式SIP协议数据报文函数QCdev2ser(),SIP协议报文转换成私有协议报文函数Qcser2dev()均为C语言扩展模块protoTrans中的子函数。由于设备私有协议往往是16进制的,每一个Byte,甚至一个Byte中的每一个bit都可能有不同的含义,采用C语言处理具备更多的处理优势,在加快处理速度的同时,C语言编译后的二进制代码,也克服了python作为解释性语言,源码可见,对私有协议等敏感内容保密不利的缺点。\n[0017] 本发明的技术构思为:针对车载GPS协议软转换网关需要在运行时能够同时处理多个连接,而数据的收发并不一定是连续的,因此该软网关必须采用非堵塞设计。本软网关采用了Python语言下的Twisted网络编程框架,其为基于异步I/O的事件驱动跨平台网络框架。本方案同时避免了分叉(forking)方案消耗内存大,局限于UNIX/LINUX平台的缺点。\n也克服了纯粹的线程(threading)方案,不同连接之间共享内存,易造成内存变量读写冲突的不足,保证了该软网关的可靠性与有效性。\n[0018] 当车载GPS设备接入软网关时,对私有协议数据报进行预解析,校验数据报,去除数据报GPRS并保存至缓存。加入数据库管理,通过读取数据库比对SN序列号,查询该车载GPS设备是否为合法设备,并对设备进行统一编号,网络地址IP与接口Port登记,保证对设备的统一有效管理。\n[0019] 由于每个接入的车载GPS车载设备实例化对应的模拟设备simu_dev()对象,因而可以保证多个接入设备相互独立,不受干扰。该实例实现了模拟设备与服务器之间请求或响应的组包,SIP报文上发下行等方法。软网关调用上述方法,使模拟设备通过UDP链路通信,注册登陆到SIP服务器。之后通过向SIP服务器上发设备请求/响应报文,或者向设备下发SIP服务器请求/响应报文,达到完成会话的目的。\n[0020] 以设备上发数据至SIP服务器为例:在数据接收处理事件dataReceived()退出前,该事件调用函数deferToThread()进入延迟对象Deferred子线程中,利用函数send2Server(),按照设定的时间间隔,定时处理私有协议报文,经函数QCdev2ser()转换为XML格式SIP协议报文之后发送至服务器。由于send2Server函数返回Deferred对象,并通过函数Deferred.callback()回调,该函数中的阻塞行为不会阻塞dataReceived()事件的快速退出。\n[0021] 通过设置TCP超时处理机制,开启心跳服务包服务,加强通信链路保活能力,维持活动车载GPS,软网关,SIP服务器之间的有效通信。同时能够及时断开超时TCP连接,无响应连接等无效通信链路,保证通信链路的有效性与可靠性。\n[0022] 软件实现步骤为:车载GPS设备接入协议转换软网关,软网关接受私有协议数据报,经过校验,数据库查询;启动模拟设备,注册登陆到SIP服务器,建立会话;进入延迟对象子线程定时对私有协议数据报文与SIP协议报文进行相互转换,调用模拟设备方法上发服务器或下发设备;通过模拟设备,根据会话要求要求具体实现各类请求或响应报文中转后上发或下发,并作相应处理的方法;会话结束,断开通信连接,注销模拟设备,清空缓存。\n[0023] 本发明的有益效果主要体现在:\n[0024] (1)通过转换协议,实现车载GPS设备与服务器之间应用层通信过程由SIP协议进行统一的会话管理。减轻了服务器解析多种私有协议的负担,增强了设备与服务器之间通信质量的稳定性与可靠性。\n[0025] (2)通过软网关进行协议转换,避免了对原有GPS设备的软硬件的重新设计,将上发服务器的连接,更改为上发软网关即可。\n[0026] (3)通过加设车载GPS设备数据库,对接入GPS设备进行查验,登记,统一编号,有效管理GPS设备合法接入。\n[0027] (4)采用异步I/O的事件驱动型网络编程框架Twisted搭建系统,保证了软网关的非阻塞性与跨平台性。\n[0028] (5)该软网关在设计过程中,既实现了车载GPS设备定位私有协议数据通过转换成SIP协议报文上传服务器的基本功能要求,也为服务器与设备之间的多媒体会话扩展预留了设计空间。\n附图说明\n[0029] 图1是车载GPS协议转换软网关网络框架。\n[0030] 图2是车载GPS设备实现与服务器通过SIP协议会话总流程图。\n[0031] 图3是TCP连接超时处理流程图。\n[0032] 图4是软网关接收GPS设备数据报后处理流程图。\n[0033] 图5是软网关通过模拟设备与SIP服务器建立会话流程图。\n具体实施方式\n[0034] 下面结合附图对本发明做进一步描述。\n[0035] 参照图1~图5,一种车载GPS设备协议转换软网关,其特征在于:所述车载GPS设备协议转换软网关为设备私有协议与SIP协议转换软网关,所述软网关包括:\n[0036] Dev2GateFactory对象单元,用以负责Dev2GateProtocol对象的管理,模拟设备的本地UDP端口查找,以及会话管理的方法实现,所述会话管理包括数据库读写接口;\n[0037] Dev2GateProtocol对象单元,用以负责软网关与GPS设备TCP连接超时管理,数据报文解析校验,GPS设备数据库读取写入,启动/停止模拟设备,私有协议与SIP协议转换,转发设备请求/响应等网络处理的方法实现;\n[0038] Simu_dev对象单元,用以负责实例化软网关中对应车载GPS设备的模拟设备,通过该模拟设备,实现设备与服务器之间会话的具体方法。\n[0039] 本实施例的车载GPS设备协议转换软网关,通过将GPS设备私有协议数据报文与服务器XML格式SIP协议报文之间的相互转换,并转发,从而实现建立,完成会话的目的。\n[0040] (1)图1为所述协议转换软网关与车载GPS,SIP服务器之间通信的网络结构。软网关与车载GPS设备之间通信采用TCP链路通信,保证链路质量可靠性,数据报文格式为车载GPS设备私有协议格式;软网关与服务器之间由于在应用层上采用SIP协议通信,具有握手机制来保证对链路质量的控制,所以在传输层上采用UDP链路进行通信,该过程数据报文为SIP协议报文。在此网络结构基础上,软网关通过转发经过转换协议的报文,达到建立,完成车载GPS设备与SIP服务器之间会话的目的。\n[0041] (2)所述车载GPS设备通过本发明协议转换软网关与SIP服务器建立,完成会话。\n本次流程首次连接请求由车载GPS设备发起,如图2总流程图所示其步骤为:\n[0042] 2.1)所述基于Twsited网络框架的软网关启动后,调用reactor.listenTCP()函数,实例化ServerFactory类对象Dev2GateFactory初始化软网关资源,监听TCP端口,调用reactor.run(),准备网络事件处理。\n[0043] 2.2)当有车载GPS设备通过TCP接入时,软网关实例化Protocol类对象Dev2GateProtocol,对网络连接进行处理启动网络事件处理。\n[0044] 2.3)建立TCP连接后,触发connectionMade()事件,查找空闲UDP端口,保存TCP报文时间,启动TCP超时处理函数handle_Tcptimer()\n[0045] 2.4)软网关接收到GPS设备数据报文,触发dataReceived()事件,开始对报文进行数据库注册校验,解析该私有协议,启动并进入Deferred子线程,定时私对有协议报文进行SIP协议转换。\n[0046] 2.5)判断该GPS设备是否为首次接入软网关,若是,则实例化模拟设备simu_dev()对象,启动模拟设备服务,调用相应方法,注册登陆SIP服务器,建立会话。若否,则跳过启动注册步骤。\n[0047] 2.6)模拟设备启动注册之后,Deferred子线程利用对应的模拟设备simu_dev()实例中的具体方法,上发已转换的SIP报文,处理设备对服务器的响应与请求。\n[0048] 2.7)软网关接收SIP服务器下发响应/请求数据报文,并处理。判断是否需要将服务器下发报文转发至设备。若是,则通过模拟设备对应实例调用转换模块中的Qcser2dev()函数将SIP报文转换为私有协议报文,并下发。若否,则等待dataReceived()事件触发,处理后续数据报文。\n[0049] 2.8)服务器报文已经转换,下发后,判断会话是否结束。若是,则启动connectionLost()事件断开相应连接,清理缓存。若否,则等待下次dataReceived()事件触发,处理后续数据报文。\n[0050] (3)图3为TCP超时处理函数handle_Tcptimer()流程图,其用于,定时判断TCP连接是否超时,并处理。其在TCP连接保活机制,模拟设备心跳包机制中都有应用。具体描述为,每次接收到TCP报文或系统特定时间时,系统均会将当前时间保存当TCP报文更新时间。然后以timeout为时间间隔,定时循环启动handle_Tcptimer()超时处理函数,所述timeout为预定义TCP连接超时的时间间隔。每次校验过程为:\n[0051] 3.1)获取当前系统时间now。\n[0052] 3.2)now减去最新TCP报文时间比较是否小于时间间隔timeout。若否,则判断TCP连接超时,启动connectionLost()事件断开链接。\n[0053] 3.3)若是则不做任何处理,退出处理程序。系统等待timeout大小时间间隔后,将再次调用handle_Tcptimer()进行超时判断处理。\n[0054] (4)当存在车载GPS设备接入软网关后,系统实例化Dev2GateProtocol对象,启动网络事件处理。其中重要流程为当接收到GPS数据报后,触发系统dataReceived()事件,开始对报文进行处理的过程。所述步骤如图4所示:\n[0055] 4.1)刷新当前系统时间为TCP连接活动标记,保存最新TCP报文时间,对本次连接进行保活处理。\n[0056] 4.2)调用函数QCpredev2ser()对GPS私有协议数据报文进行预处理,返回设备序列号sn与经过预处理的私有协议数据报文data。所述序列号sn为厂商自行定义编号。\n所述QCpredev2ser()为扩展模块protoTrans中的子函数,利用C语言编写,快速对GPS报文进行了类型判断,格式处理,格式转换,报文XOR,CRC检验,去除GPRS头等处理。\n[0057] 4.3)软网关系统判断sn序列号是否已经经过设备数据库校验。如果是,则该设备合法,且并非首次接入,直接将预处理后数据报文data保存到dBuff缓存中。\n[0058] 4.4)如果否,则该sn序列号设备首次接入软网关系统,必须进行数据库查询比对,判断是否合法。如果该sn序列号未在设备数据库中找到,则判断本次GPS设备接入非法,系统将断开连接,并清空对应缓存数据。\n[0059] 4.5)如果该sn序列号在数据库中找到,则其为在设备数据库中注册备案过的合法设备编号。软网关会将本次设备接入的网络IP与端口Port进行登记,写入数据库,并读取其注册的统一编号,作为系统内部识别编号。然后将预处理后的数据报文data保存到dBuff缓存中。\n[0060] 4.6)通过回调函数Deferred.callback(),在deferToThread线程中,调用函数send2Server()对缓存中的数据报文进行非阻塞定时处理,并尝试调用对应的模拟设备方法,上发报文。若此时对应模拟设备未启动,则函数返回,并在设定时间内再次尝试调用。\n[0061] 完成以4.1)~4.6)流程后,系统完成完成对私有车载GPS设备协议数据接收处理,但仍然需要通过启动对应的模拟设备实例,调用其中的具体方法来实现会话注册,报文的转发等具体功能。\n[0062] (5)在完成(4)中的流程处理后,GPS设备私有协议数据处理结束,需要开始建立与SIP服务器会话,完成通信会话任务。由于目前大多数GPS设备与SIP服务器通信目的主要在在上传私有协议封装的定位数据。因此图5所示流程,通过实现该基本功能,从而演示本发明在该环节的工作机制:\n[0063] 5.1)系统判断该车载GPS设备是否为首次进行报文协议转换发送。如果否,说明之前已经注册启动相应的模拟设备simu_dev()类对象实例,则跳过注册启动与SIP服务器会话的流程。如果是,则必须重新实例化对应的模拟设备simu_dev()类对象,注册并启动服务simudev.start(),通过该模拟设备实例模拟GPS设备与SIP服务器完成会话通信任务。\n[0064] 5.2)实例化模拟端点对象rvsip_endpoint,用于上发服务器设备请求,或者服务器下发指令。\n[0065] 5.3)模拟设备服务启动后,将调用reactor.listenUDP()方法,监听的图2所示,\n2.3)步骤中查找到的UDP端口,以便接收或上发服务器报文。\n[0066] 5.4)实例化会话注册请求rvsip_request("REGISTER"...),通过调用该实例中的req.login()方法,将相应验证密文,模拟设备网络IP,UDP端口等信息打包为XML格式SIP协议注册请求报文。然后通过rvsip_endpoint实例中的deliverRequest()方法向指定SIP服务器发送该报文。\n[0067] 5.5)模拟设备发送注册报文后,等待SIP服务器响应。如果未在规定时间内收到注册成功服务器响应,则继续重发注册报文,直到重发次数超过3次,停止重发,启动connectionLost()事件断开连接,关闭本次会话;如果在规定时间内收到注册成功服务器响应200(OK),则会话注册成功。模拟设备与SIP服务器建立会话,开启心跳包,维持GPS,软网关,服务器三者之间通信。\n[0068] 5.6)模拟设备与SIP服务器会话注册成功后,数据接收处理流程4.6)中的deferToThread线程中的send2Server()函数,利用sleep()函数,定时调用QCdev2ser()子函数将预处理数据缓存dBuff中最旧的请求/响应数据报data转换成XML格式的SIP报文,起到控制数据报文处理、上发频率,预防接收数据过快导致报文丢失的作用。\n[0069] 5.6)完成协议转换后,在send2Server()函数中可以成功调用已经启动注册的模拟设备实例中的方法send()向服务器发送经过转换的SIP报文。\n[0070] 5.7)发送数据报文后,相应模拟设备实例等待SIP服务器响应。如果未在规定时间内收到服务器响应,则重新调用send()方法重发SIP数据报文,若重发次数超过3次,则停止重发,启动connectionLost()事件断开连接,关闭本次会话;如果在规定时间内收到服务器响应200(OK),则表明SIP数据报文发送成功,本次会话的协议转换任务完成。\n[0071] 为了能够实现更丰富的会话控制功能,本发明还预留了针对SIP服务器与GPS设备之间其他响应或者请求会话处理的设计空间。只需要在模拟设备simu_dev()类对象实例中加入相应响应或请求的处理方法并调用即可,从而保证了系统的扩展性。
法律信息
- 2018-06-12
未缴年费专利权终止
IPC(主分类): H04L 29/06
专利号: ZL 201210174853.8
申请日: 2012.05.28
授权公告日: 2015.01.28
- 2015-01-28
- 2012-12-05
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201210174853.8
申请日: 2012.05.28
- 2012-10-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-12-21
|
2010-06-21
| | |
2
| |
2011-10-19
|
2011-04-08
| | |
3
| |
2009-05-20
|
2007-11-16
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |