一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

支持PPP拨号的方法、PPP拨号方法及终端设备与流程

2022-06-05 03:27:34 来源:中国专利 TAG:
支持ppp拨号的方法、ppp拨号方法及终端设备【
技术领域
:】1.本技术实施例涉及移动通信
技术领域
:,尤其涉及一种支持ppp拨号的方法、ppp拨号方法及终端设备。
背景技术
::2.虽然ppp拨号已经是一项比较成熟的技术了,但是工业、电力等传统行业依然在广泛的使用这种技术,所以目前的模组产品仍然需要支持ppp拨号方式连接网络。模组的上位机可能是windows,也可能是linux,ppp拨号灵活性强,虽有标准规范文档,但具体的行业方案仍没有形成统一的做法,而是各自基于系统实现ppp拨号方案。3.因此,提供一种不依赖于操作系统和特定软件的支持ppp拨号的软件方案是目前亟需解决的问题。技术实现要素:4.本技术实施例提供了一种支持ppp拨号的方法、ppp拨号方法及终端设备,以实现提供一种通用的支持ppp拨号的软件方案。5.第一方面,本技术实施例提供一种支持ppp拨号的方法,包括:第一组件负责与上位机交互点对点协议ppp拨号at命令、ppp拨号协议数据和网络数据,负责提供ppp拨号的命令通路和数据通路;其中,所述第一组件接收所述上位机发来的ppp拨号at命令后转给第二组件处理;第二组件负责管理ppp拨号的业务流程;其中,所述第二组件负责建立分组数据协议pdp,用所述pdp的信息拉起和配置业务流程;第三组件包括点对点协议守护进程pppd和内核ppp驱动程序,负责建立和维护与目标设备的ppp链接;其中,当ppp拨号at命令完成后,所述第一组件负责所述上位机与所述第三组件之间的ppp拨号协议数据交互。6.第一方面的有益效果,通过第一组件、第二组件和第三组件配合完成ppp拨号at命令交互和ppp拨号协议数据交互,实现了一种不依赖于操作系统和特定软件的支持ppp拨号的软件方案。7.在一种可能的实现方式中,所述第一组件负责提供ppp拨号的命令通路和数据通路,包括:所述第一组件的工作模式包括命令模式和数据模式,当所述第一组件工作在命令模式时,接收所述上位机发来的ppp拨号at命令后转给所述第二组件处理,当收到所述第二组件发回的ppp拨号at命令交互成功信息后,所述第一组件切换为数据模式,当所述第一组件工作在数据模式时,接收所述上位机发来的ppp协议数据包转给所述第三组件,或者接收所述第三组件发来的ppp协议数据包转给所述上位机,直到ppp协议数据包交互完成。8.在一种可能的实现方式中,所述第一组件的工作模式包括命令模式和数据模式,包括:所述第一组件提供的ppp通路包括建立状态、结束状态和停用状态,分别对应ppp拨号的建立状态、结束状态和停用状态,当ppp拨号进入以上任一种状态时,所述第一组件提供的ppp通路也进入对应的状态;当ppp通路进入建立状态时,所述第一组件切换为数据模式,当ppp通路进入停用状态时,所述第一组件切换为命令模式。9.在一种可能的实现方式中,所述第一组件初始化时创建伪终端pty通路,所述pty通路包括pty设备节点,所述第一组件负责所述上位机与所述第三组件之间的ppp拨号协议数据交互,包括:所述第一组件接收所述上位机发来的ppp协议数据包后通过所述pty设备节点发送给所述第三组件,所述第三组件从所述pty设备节点读取所述ppp协议数据包,或者,所述第三组件接收所述目标设备发来的ppp协议数据包后通过所述pty设备节点发送给所述第一组件,所述第一组件从所述pty设备节点读取所述ppp协议数据包。10.第二方面,本技术实施例提供一种基于所述的支持ppp拨号的方法的ppp拨号方法,包括:所述第一组件初始化pty通路,所述pty通路包括pty设备节点;所述第一组件工作在命令模式,所述第一组件接收所述上位机发来的配置接入点名称apnat命令后转给所述第二组件处理,所述第二组件调用其他组件和接口完成apn配置;所述第一组件接收所述上位机发来的ppp拨号连接at命令后,将所述ppp拨号连接at命令和所述pty设备节点的路径转给第二组件处理,所述第一组件收到所述第二组件发回的ppp拨号连接at命令交互成功信息后转给所述上位机;所述第一组件切换到数据模式,将ppp通路状态置为建立状态,设置ppp连接状态为已连接状态,之后将所述上位机发来的ppp协议数据包写到所述pty设备节点,将从所述pty设备节点读到的ppp协议数据包发给所述上位机;所述第一组件为所述上位机pppd和所述目标设备pppd进行参数配置提供数据通路,所述第二组件接收所述上位机pppd和所述目标设备pppd发来的配置信息并使用所述配置信息配置和建立pdp,第二组件使用建立所述pdp的网络参数配置ppp拨号的网络参数;所述第一组件为所述上位机pppd和所述目标设备pppd进行ppp协议数据交互提供数据通路,完成ppp拨号的连接过程。11.在一种可能的实现方式中,所述方法还包括:所述第一组件接收所述上位机pppd发来的ppp中止请求帧转给所述目标设备pppd;所述第一组件接收所述目标设备pppd发回的ppp终止确认帧,将ppp通路状态置为结束状态,然后将ppp终止确认帧发回所述上位机,所述上位机pppd收到ppp终止确认帧后走退出流程;所述第一组件收到所述上位机发来的第一数据后进行字符串匹配;当所述第一数据匹配到预设第一字符串后,将ppp通路状态置为停用状态,切换at通路为命令模式,然后将收到所述第一数据之前的数据发往目标设备pppd,将收到所述第一数据之后的数据放入at命令处理队列,所述第一组件收到所述上位机发来的第二数据后进行字符串匹配,当所述第二数据匹配到预设第二字符串后,将所述第二数据发往所述第二组件,所述第二组件收到所述第二数据后走pdp去激活流程;或者,当所述第一数据匹配到预设第二字符串后,将ppp通路状态置为停用状态,切换at通路为命令模式,然后将所述第一数据发往所述第二组件,所述第二组件收到所述第一数据后走pdp去激活流程。12.在一种可能的实现方式中,所述第一组件预设有待匹配的预设第一字符串和预设第二字符串、与所述预设第一字符串对应的操作、以及与所述预设第二字符串对应的操作,所述第一组件收到所述上位机发来的第一数据后进行字符串匹配,包括:依次将所述第一数据中的每一位与预设第一字符串、预设第二字符串中的每一位进行比较,如果所述第一数据与预设第一字符串完全匹配,那么就执行与预设第一字符串对应的操作,如果所述第一数据与预设第二字符串完全匹配,那么就执行与预设第二字符串对应的操作。13.在一种可能的实现方式中,所述方法还包括:当所述第二组件收到ppp拨号at命令后发现命令参数错误,或者目标设备没有驻网,或者拉起pppd失败,所述第二组件向所述第一组件发回无法建立连接信息,所述第一组件接收到所述无法建立连接信息后停止动作,并将所述无法建立连接信息发回所述上位机,等待所述上位机发来是否重新拨号信息;或者,当所述第二组件收到建pdp失败信息,向所述目标设备pppd转发所述建pdp失败信息,所述第二组件收到所述目标设备pppd发来的pppd退出信号向所述第一组件转发,所述第一组件收到所述pppd退出信号后将ppp通路置为结束状态。14.在一种可能的实现方式中,所述方法还包括:当所述第二组件收到pdp断开通知信息,所述第二组件走pdp去激活流程并通知所述目标设备pppd退出,第二组件收到所述目标设备pppd发来的pppd退出信号时向所述第一组件转发,所述第一组件收到所述pppd退出信号后将ppp通路置为结束状态;或者,当所述第二组件收到pppd退出信号向所述第一组件转发,所述第一组件收到pppd退出信号后将ppp通路置为结束状态。15.在一种可能的实现方式中,所述方法还包括:当所述第一组件收到usb断开uevernt事件,所述第一组件判断当前at端口是不是usb,若是,则判断当前ppp通路状态是不是建立状态,若是则将所述第一组件切换为命令模式,将ppp通路置为停用状态,再通知所述第二组件usb断开,所述第二组件通知所述目标设备pppd退出,所述第二组件走pdp去激活流程。16.第三方面,本技术实施例提供一种支持ppp拨号的装置,包括:第一组件,负责与上位机交互点对点协议ppp拨号at命令、ppp拨号协议数据和网络数据,负责提供ppp拨号的命令通路和数据通路;其中,所述第一组件接收所述上位机发来的ppp拨号at命令后转给第二组件处理;第二组件,负责管理ppp拨号的业务流程;其中,所述第二组件负责建立分组数据协议pdp,用所述pdp的信息拉起和配置业务流程;第三组件,包括点对点协议守护进程pppd和内核ppp驱动程序,负责建立和维护与目标设备的ppp链接;其中,当ppp拨号at命令完成后,所述第一组件负责所述上位机与所述第三组件之间的ppp拨号协议数据交互。17.第四方面,本技术实施例提供一种终端设备,包括:至少一个处理器,与所述处理器通信连接的至少一个通信模块,以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面和第二方面提供的方法。18.第五方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面和第二方面提供的方法。19.应当理解的是,本技术实施例的第三方面与本技术实施例的第一方面的技术方案一致、本技术实施例第四~五方面与本技术实施例第一方面、第二方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。【附图说明】20.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。21.图1为本技术实施例提供的一种支持ppp拨号的方法的流程示意图;22.图2为本技术实施例提供的一种支持ppp拨号的方法的软件架构示意图;23.图3为本技术实施例提供的一种at通路示意图;24.图4为本技术实施例提供的一种ppp拨号连接的方法的流程示意图;25.图5为本技术实施例提供的一种ppp拨号连接流程的示意图;26.图6为本技术实施例提供的一种ppp拨号挂断的方法的流程示意图;27.图7为本技术实施例提供的一种ppp拨号断开流程的示意图;28.图8为本技术实施例提供的一种ppp拨号失败流程的示意图;29.图9为本技术实施例提供的一种ppp拨号成功后异常退出流程的示意图;30.图10为本技术实施例提供的另一种ppp拨号成功后异常退出流程的示意图;31.图11为本技术实施例提供的一种ppp拨号成功后usb断开流程的示意图;32.图12为本技术实施例提供的一种支持ppp拨号的装置的结构示意图;33.图13为本技术实施例提供的一种终端设备的结构示意图。【具体实施方式】34.为了更好的理解本说明书的技术方案,下面结合附图对本技术实施例进行详细描述。35.应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。36.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。37.为便于本领域技术人员对本技术的技术方案的理解,下面对本技术所涉及的技术术语进行说明。38.(1)ppp:pointtopointprotocol,点对点协议。39.(2)connman:一种命令行网络管理器,旨在与嵌入式设备一起使用。40.(3)pppd:point-to-pointprotocoldaemon,点对点协议守护进程。41.(4)pdp:packetdataprotocol,分组数据协议,是外部pdn网与gprs接口所用的网络协议。42.(5)ofono:是由诺基亚与英特尔共同发起的计划,希望号召开发人员共同参与gsm/umts手机相关的开放原始码应用。ofono采用gplv2授权,在应用程序界面(api)使用d-bus界面,并整合第3方业者的电话软件堆叠、行动调制解调器与储存后端等。43.(6)yocto:是一个开源社区。它通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统,支持arm,ppc,mips,x86(32&64bit)硬件体系架构。44.(7)pdn网:publicdatanetwork,公用数据网。45.现有相关技术中,调制解调器(英语:modem,modulator-demodulator的英文缩写)是一个将数字信号调变到模拟信号上进行传输,并解调收到的模拟信号以得到数字信号的终端设备。它的目标是产生能够方便传输的模拟信号并且能够通过解码还原原来的数字信号。今天标准的调制解调器在1980年被命名为“智能调制解调器”。调制解调器实际上工作在2种“模式”:数据模式时通过电话线发送或者接受数据给计算机;命令模式时调制解调器监听从计算机发来的命令数据并提交上去。一个典型的会话开始于经过自动假定设置的上电(一般是内置类型),然后调制解调器开始拨出一个电话号码用来连接远程的另一个调制解调器。连接成功之后调制解调器自动进入数据模式,可以收发数据了。当用户使用完了,逸出序列,“ ”跟在大约1秒的暂停之后,调制解调器就转入命令模式,发送命令挂机。46.ppp拨号是一种在工业、电力等传统领域应用十分广泛的技术。ppp协议(point-to-pointprotocol)是一种网络中最为基础的数据链路层协议,它是为在同等单元之间传输数据包的简单链路而设计的。这种链路提供全双工操作,并按照顺序传递数据包。ppp协议为基于各种主机、网桥和路由器的简单连接提供一种共通的解决方案。模组产品是给上位机提供通信和网络功能的,如果需要提供移动网络支持,那么模组就需要向上位机提供调制解调器的功能。47.由于ppp拨号并没有行业标准的技术实现方案,都是各家自己根据对ppp协议的理解来实现ppp拨号功能,因此实现方案五花八门,没有统一的标准可供参考,为上位机兼容各厂家的ppp拨号功能带来了困难。48.基于以上问题,本技术实施例提供一种支持ppp拨号的方法,实现了不依赖操作系统和特定软件的支持ppp拨号的软件架构,能够兼容各种系统的上位机。49.图1为本技术实施例提供的一种支持ppp拨号的方法的流程示意图,如图1所示,上述支持ppp拨号的方法可以包括:50.步骤101:第一组件负责与上位机交互点对点协议ppp拨号at命令、ppp拨号协议数据和网络数据,负责提供ppp拨号的命令通路和数据通路;其中,所述第一组件接收所述上位机发来的ppp拨号at命令后转给第二组件处理。51.步骤102:第二组件负责管理ppp拨号的业务流程;其中,所述第二组件负责建立分组数据协议pdp,用所述pdp的信息拉起和配置业务流程。52.步骤103:第三组件包括点对点协议守护进程pppd和内核ppp驱动程序,负责建立和维护与目标设备的ppp链接;其中,当ppp拨号at命令完成后,所述第一组件负责所述上位机与所述第三组件之间的ppp拨号协议数据交互。53.需要说明的是,本技术实施例提供的支持ppp拨号的方法可以是基于yocto系统的支持ppp拨号的软件架构。54.图2为本技术实施例提供的一种支持ppp拨号的方法的软件架构示意图,如图2所示,支持ppp拨号的方法主要由三个组件一起完成:第一组件,也可以叫atrouter,是一个用来与上位机通信的程序,能够与上位机交互at命令和at数据。它负责提供ppp拨号的命令通路和数据通路;第二组件,也可以叫connman,是网络管理程序,负责建立pdp,用pdp信息配置pppd这些网络管理方面的业务。第三组件,包括pppd守护程序与内核ppp驱动程序,其中pppd是linux系统的ppp守护进程,ppp是用于通过拨号调制解调器,数字用户线路dsl连接和许多其他类型的点对点链接建立internet链接的协议。通过pppd守护程序与内核ppp驱动程序一起使用,以建立和维护与另一个系统(称为目标设备)的ppp链接,并为链接的每一端协商internet协议(ip)地址。pppd还可以对目标设备进行身份验证和/或向目标设备提供身份验证信息。另外,还可以包括第四组件,也可以叫电话telephony组件,telephony组件用于提供通信协议栈的模块。55.其中,atrouter收到上位机发来的拨号at命令后转发给connman处理,connman负责建立pdp,拉起和配置pppd等业务流程。ppp拨号完成后,atrouter可以将上位机发来的ppp数据发往pppd及ppp驱动,或接收它们发往上位机的ppp数据报文。56.进一步的,所述第一组件的工作模式包括命令模式和数据模式,包括:所述第一组件提供的ppp通路包括建立状态、结束状态和停用状态,分别对应ppp拨号的建立状态、结束状态和停用状态,当ppp拨号进入以上任一种状态时,所述第一组件提供的ppp通路也进入对应的状态;当ppp通路进入建立状态时,所述第一组件切换为数据模式,当ppp通路进入停用状态时,所述第一组件切换为命令模式。57.需要说明的是,第一组件能够提供两个或以上的at端口和at通路,一个at端口的at通路用于ppp拨号后,其它的at端口的at通路还能够正常收发at命令。58.本实施例中ppp通路设置了3种状态,对应ppp协议中的三种状态,实现了一个状态机,在三种状态之间切换,并在转换到各状态时触发不同的操作。atrouter提供的ppp通路有三种状态,分别是和ppp协议对应的建立状态establish、结束状态terminate和停用状态dead。当ppp拨号进入以上三种状态,atrouter提供的ppp通路也进入对应的状态。ppp通路进入establish状态时会将at通路切换成数据模式,进入dead状态会将at通路切换成命令模式。59.connman收到atrouter发来的拨号at命令后,进行激活pdp,查询pdp网络参数,设置用户名密码等操作后,使用查询到的pdp参数和用户名密码等参数拉起并配置pppd。pppd启动后会与上位机的pppd进行协议通信,协议通信成功后,ppp拨号建立完成,上位机就可以通过目标设备的at端口收发数据上网。telephony组件由ofono和rild组成,提供无线通信协议。60.进一步的,所述第一组件初始化时创建伪终端pty通路,所述pty通路包括pty设备节点,所述第一组件负责所述上位机与所述第三组件之间的ppp拨号协议数据交互,包括:所述第一组件接收所述上位机发来的ppp协议数据包后通过所述pty设备节点发送给所述第三组件,所述第三组件从所述pty设备节点读取所述ppp协议数据包,或者,所述第三组件接收所述目标设备发来的ppp协议数据包后通过所述pty设备节点发送给所述第一组件,所述第一组件从所述pty设备节点读取所述ppp协议数据包。61.需要说明的是,本实施例中使用atrouter实现命令通路和数据通路。atrouter分为命令模式和数据模式两种模式。命令模式下,atrouter与上位机或者目标设备上的控制程序交互at命令,将ppp拨号和挂断的at命令发往connman。当ppp拨号at命令交互成功返回at命令交互成功信息connect后,atrouter切换成数据模式,上位机pppd和目标设备侧的pppd通过atrouter交互ppp协议数据包,协议交互完成后,上位机和目标设备的网络协议栈开始收发网络数据包。62.图3为本技术实施例提供的一种at通路示意图,如图3所示,在at模式下,上位机通过at端口(通常是usb端口或者是串口)发送命令到atrouter。当ppp拨号后,at通路切换为数据模式。上位机发送ppp数据包到at端口,atrouter收到数据包后通过初始化时创建的pty主设备节点发送数据包,pppd及ppp驱动从pty从设备节点读取数据包,或者反向,pppd及pppd驱动通过pty从设备节点发送数据包,atrouter从pty主设备节点读取数据包。63.进一步的,在支持ppp拨号的方法提供的软件架构的基础上,本技术实施例还提供一种ppp拨号方法。其中ppp拨号方法包括ppp拨号连接的方法,用于建立上位机与目标设备的ppp拨号连接。64.图4为本技术实施例提供的一种ppp拨号连接的方法的流程示意图,如图4所示,所示方法包括:65.步骤201:所述第一组件初始化pty通路,所述pty通路包括pty设备节点;66.步骤202:所述第一组件工作在命令模式,所述第一组件接收所述上位机发来的配置接入点名称apnat命令后转给所述第二组件处理,所述第二组件调用其他组件和接口完成apn配置;67.步骤203:所述第一组件接收所述上位机发来的ppp拨号连接at命令后,将所述ppp拨号连接at命令和所述pty设备节点的路径转给第二组件处理,所述第一组件收到所述第二组件发回的ppp拨号连接at命令交互成功信息后转给所述上位机;68.步骤204:所述第一组件切换到数据模式,将ppp通路状态置为建立状态,设置ppp连接状态为已连接状态,之后将所述上位机发来的ppp协议数据包写到所述pty设备节点,将从所述pty设备节点读到的ppp协议数据包发给所述上位机;69.步骤205:所述第一组件为所述上位机pppd和所述目标设备pppd进行参数配置提供数据通路,所述第二组件接收所述上位机pppd和所述目标设备pppd发来的配置信息并使用所述配置信息配置和建立pdp,第二组件使用建立所述pdp的网络参数配置ppp拨号的网络参数;70.步骤206:所述第一组件为所述上位机pppd和所述目标设备pppd进行ppp协议数据交互提供数据通路,完成ppp拨号的连接过程。71.需要说明的是,本技术实施例基于支持ppp拨号的方法的软件架构实现了一种ppp拨号方法。72.图5为本技术实施例提供的一种ppp拨号连接流程的示意图,如图5所示,步骤可以包括:(1)atrouter初始化pty通路;(2)上位机控制程序下发at cgdcont命令配置apn,at命令通过atrouter透传到connman,connman通过调用telephony组件ofono的接口完成apn的配置;(3)上位机控制程序发送如atd*99***2#的拨号命令开始拨号,atrouter收到拨号命令后,将pty设备节点路径和拨号命令传给connman,connman返回connect,atrouter将connect返回给上位机;(4)atrouter切换到数据模式,并且设置ppp通路状态为establish,设置ppp连接状态为connected,之后会将上位机发来的数据直接写到pty设备节点,从pty设备节点读到的数据会直接发给上位机;(5)上位机pppd通过atrouter提供的数据通路,将用户名、密码、鉴权信息等配置数据发往目标设备侧pppd,目标设备侧pppd收到上位机pppd发来的信息后进行参数配置,并将配置信息发给connman,connman收到配置信息后,使用配置信息配置和建立pdp;(6)查询建立的pdp的网络参数(ip、dns等),使用查询到的网络参数配置ppp拨号的网络参数;(7)上位机pppd和目标设备侧pppd进行协议数据交互,完成ppp拨号的建立过程;ppp拨号建立完成后,上位机能够使用该ppp拨号连接因特网。73.进一步的,ppp拨号方法还包括ppp拨号断开的方法,用于断开上位机与目标设备的ppp拨号连接。74.图6为本技术实施例提供的一种ppp拨号挂断的方法的流程示意图,如图6所示,所示方法包括:75.步骤301:所述第一组件接收所述上位机pppd发来的ppp中止请求帧转给所述目标设备pppd;76.步骤302:所述第一组件接收所述目标设备pppd发回的ppp终止确认帧,将ppp通路状态置为结束状态,然后将ppp终止确认帧发回所述上位机,所述上位机pppd收到ppp终止确认帧后走退出流程;77.步骤303:所述第一组件收到所述上位机发来的第一数据后进行字符串匹配;78.步骤304:当所述第一数据匹配到预设第一字符串后,将ppp通路状态置为停用状态,切换at通路为命令模式,然后将收到所述第一数据之前的数据发往目标设备pppd,将收到所述第一数据之后的数据放入at命令处理队列,所述第一组件收到所述上位机发来的第二数据后进行字符串匹配,当所述第二数据匹配到预设第二字符串后,将所述第二数据发往所述第二组件,所述第二组件收到所述第二数据后走pdp去激活流程;或者,79.步骤305:当所述第一数据匹配到预设第二字符串后,将ppp通路状态置为停用状态,切换at通路为命令模式,然后将所述第一数据发往所述第二组件,所述第二组件收到所述第一数据后走pdp去激活流程。80.需要说明的是,上述ppp拨号挂断的方法能够同时支持windows和linux系统下的ppp拨号,windows系统和linux系统ppp拨号在挂断时存在差异,windows系统是直接断开ppp连接然后发送ath中断拨号,linux系统在中断连接后会先发送 切换通道为命令模式,然后发送ath挂断拨号。为此,本实施例提供的ppp拨号挂断的方法能够同时支持linux系统和windows系统的的ppp拨号方案。81.图7为本技术实施例提供的一种ppp拨号断开流程的示意图,如图7所示,步骤包括:(1)上位机的pppd退出,发送pppterminaterequest帧;(2)目标设备侧的pppd收到上位机发来的pppterminaterequest帧后,返回pppterminateack帧并走退出流程;(3)atrouter检测到发来数据中包含pppterminateack帧的帧头后,将ppp通路状态置为terminate,然后将该帧发往上位机,上位机pppd收到pppterminateack帧后走退出流程退出;(3)上位机pppd退出后,上位机控制程序分两种情况,情况1是linux下的挂断流程,情况2是windows下的挂断流程。linux系统会先发送 ,然后再发送“ath”。windows系统会直接发送“ath”进行挂断。atrouter预设有待匹配的预设第一字符串“ ”和预设第二字符串“ath”、与所述预设第一字符串对应的操作、以及与所述预设第二字符串对应的操作,情况1:(4)上位机控制程序发送“ ”,atrouter会对收到的数据进行匹配,匹配到“ ”后,ppp通路状态会置为dead,切换at通路为命令模式,然后将“ ”之前的数据发往目标设备侧pppd,将“ ”之后的数据放入at命令处理队列;(5)上位机下发“ath”,atrouter收到“ath”后发往connman,connman收到“ath”后执行去激活pdp的操作;或者,情况2:(1)上位机下发“ath”,atrouter收到后会去匹配是否包含“ath”,匹配到后会将ppp通路置为dead,将at通路切换为命令模式,然后将“ath”发往connman,connman去激活pdp。82.进一步的,所述第一组件预设有待匹配的预设第一字符串和预设第二字符串、与所述预设第一字符串对应的操作、以及与所述预设第二字符串对应的操作,所述第一组件收到所述上位机发来的第一数据后进行字符串匹配,包括:依次将所述第一数据中的每一位与预设第一字符串、预设第二字符串中的每一位进行比较,如果所述第一数据与预设第一字符串完全匹配,那么就执行与预设第一字符串对应的操作,如果所述第一数据与预设第二字符串完全匹配,那么就执行与预设第二字符串对应的操作。83.其中,查找特定字符串都用的同一种方法,就是依次将输入数据中的每一位与待匹配字符串中的每一位进行比较,如果和其中某个字符串完全匹配,那么就去执行预设的操作。输入是需要查找待匹配字符串的字节流,以及字节流的长度。每个待匹配字符串都放在一个结构体中,程序示例如下:[0084][0085][0086]其中cmp_sign表示待匹配字符串。cmp_offset是一个偏移值,表示已匹配字符个数。terminate_trigger表示匹配上待匹配字符串后需要触发的操作。字符串匹配方法如下:(1)比较第一个字符,输入字节流的当前位的值和待匹配字符串的第0位的值都相等,所以每个待匹配字符串记录的偏移值都是1。(2)接着比较第二个字符,待匹配字符串的偏移位,即第1位的字符,和输入字节流的下一个字符比较,相等,偏移值 1,不相等,偏移值置0。(3)有一个待匹配字符串一直匹配到了最后一位,那么就认为匹配上了这个待匹配字符串,然后去执行该待匹配字符串对应的要触发的操作。[0087]示例性的,具体匹配的详细流程:(1)循环遍历输入字节流的每一位;(2)遍历每一个待匹配字符串;(3)比较当前遍历到的输入字节流的位的值,和待匹配字符串中从0位开始加上偏移值的那一位的值。相等,当前待匹配字符串记录的偏移值 1。不相等,将当前待匹配字符串记录的偏移值置0。(4)如果在第三步中走的是相等这条路径,那么接下来判断当前待匹配字符串记录的偏移值是否等于待匹配字符串的长度。如果相等,说明匹配成功,接下来将所有待匹配字符串记录的偏移值置0,然后返回待匹配字符串对应的触发事件。如果不相等,说明还未完全匹配,进入接下来的循环匹配动作。(5)如果在第(3)步中走的是不相等这条路径,那么接下来判断当前遍历到的输入字节流的值是否与待匹配字符串的第0位相等。如果相等,当前待匹配字符串记录的偏移值 1。如果不相等,就继续执行接下来的遍历条件。之所以要做这个判断,是为了处理如输入字节流为“ababc”,而待匹配字符串为“abc”这种情况。匹配“ab”后又重新匹配到了“a”,所以要将偏移值 1,继续匹配。匹配到了字符串后,触发该字符串对应的操作。[0088]进一步的,本技术实施例还提供两种ppp拨号失败方法,能够处理常见的拨号异常情况。[0089]第一种ppp拨号失败的方法,步骤包括:当所述第二组件收到ppp拨号at命令后发现命令参数错误,或者目标设备没有驻网,或者拉起pppd失败,所述第二组件向所述第一组件发回无法建立连接信息,所述第一组件接收到所述无法建立连接信息后停止动作,并将所述无法建立连接信息发回所述上位机,等待所述上位机发来是否重新拨号信息。[0090]需要说明的是,atrouter从at端口读到拨号at命令后,发给connman。connman收到拨号命令后发现拨号命令参数错误,或者目标设备没有驻网,或者拉起pppd失败,那么就会返回nocarrier。atrouter收到后不会做切换数据模式和设置ppp通路状态为establish的动作。并将nocarrier返回给上位机,上位机收到后就知道拨号失败了。这时,上位机可以检查目标设备的各项信息,决定是否重新拨号。[0091]第二种ppp拨号失败的方法,步骤包括:当所述第二组件收到建pdp失败信息,向所述目标设备pppd转发所述建pdp失败信息,所述第二组件收到所述目标设备pppd发来的pppd退出信号向所述第一组件转发,所述第一组件收到所述pppd退出信号后将ppp通路置为结束状态。[0092]图8为本技术实施例提供的一种ppp拨号失败流程的示意图,如图8所示,atrouter从at端口读到拨号at命令后,发给connman。connman收到拨号命令后,返回connect。这时atrouter切换到数据模式,上位机的pppd和目标设备侧的pppd开始协议数据交互,上位机的pppd会将用户名、密码、鉴权信息等发给目标设备侧pppd,目标设备侧pppd收到后会将这些信息发给connman,connman拿到这些信息后,使用这些信息激活pdp。激活pdp失败后,connman会通知目标设备侧pppdpdp激活失败。然后,目标设备侧pppd和上位机的pppd交互拨号失败报文,互相发送退出的报文。目标设备侧pppd退出时,connman收到目标设备侧pppd发来的退出信号,然后,connman向atrouter发送pppdexit信号。atrouter收到信号后会将通路置为terminate状态。上位机和目标设备侧pppd交互完退出报文后,上位机pppd也退出了,然后linux发送 和ath,或者windows下直接发送ath进行断开ppp拨号。[0093]本技术实施例还提供一种ppp拨号成功后异常退出的方法,步骤包括:当所述第二组件收到pdp断开通知信息,所述第二组件走pdp去激活流程并通知所述目标设备pppd退出,第二组件收到所述目标设备pppd发来的pppd退出信号时向所述第一组件转发,所述第一组件收到所述pppd退出信号后将ppp通路置为结束状态。[0094]图9为本技术实施例提供的一种ppp拨号成功后异常退出流程的示意图,如图9所示,处理拨号上网过程中,移动网络断开的异常。这种异常情况下,telephony组件会通知connmanpdp异常断开。connman会走去激活pdp,并让pppd退出的流程。然后上位机和目标设备侧pppd交互退出报文,然后相继退出。目标设备侧pppd退出后,connman检测到它退出,然后通知atrouter,atrouter切换ppp通路状态为terminate。上位机pppd退出后,走拨号挂断流程,linux发送 和ath,或者windows下直接发送ath进行断开ppp拨号。然后atrouter的at通路会从数据模式切换到命令模式,切换完成后,会将modem发来的^cend上报给上位机,告知上位机pdp异常断开了。[0095]本技术实施例还提供一种ppp拨号成功后异常退出的方法,步骤包括:当所述第二组件收到pppd退出信号向所述第一组件转发,所述第一组件收到pppd退出信号后将ppp通路置为结束状态。[0096]图10为本技术实施例提供的另一种ppp拨号成功后异常退出流程的示意图,如图10所示,处理ppp拨号上网过程中pppd退出的异常方法,该异常处理方法用于针对pppd退出的情况,当目标设备侧pppd退出会通知connman,并和上位机pppd交互退出数据包。connman收到pppd退出信号后通知atrouter。atrouter收到pppdexit信号后,将ppp通路状态置为terminate状态。上位机和目标设备侧pppd交互完退出数据包后相继走退出流程。上位机pppd退出后,走拨号挂断流程,linux发送 和ath,或者windows下直接发送ath进行断开ppp拨号。[0097]本技术实施例还提供一种ppp拨号成功后usb断开的方法,步骤包括:当所述第一组件收到usb断开uevernt事件,所述第一组件判断当前at端口是不是usb,若是,则判断当前ppp通路状态是不是建立状态,若是则将所述第一组件切换为命令模式,将ppp通路置为停用状态,再通知所述第二组件usb断开,所述第二组件通知所述目标设备pppd退出,所述第二组件走pdp去激活流程。[0098]图11为本技术实施例提供的一种ppp拨号成功后usb断开流程的示意图,如图11所示,当usb断开时,上位机和目标设备侧的usb端口会收到消息,ppp拨号会断开,上位机的pppd会退出,所以目标设备侧也要断开ppp拨号。当atrouter收到usb断开的uevent事件,会判断当前的at端口是不是用的usb端口。如果是usb端口,会接着判断当前ppp通路状态是不是establish,如果是establish,会使at通路退出数据模式,恢复到at模式,并将ppp通路状态置为dead。然后通知connmanusb断开。connman会让pppd走退出流程,然后走pdp去激活流程。[0099]综上,本技术实施例提供的支持ppp拨号的方法,是严格依据ppp拨号协议实现的基于yocto系统的支持ppp拨号的ppp数据通路和拨号命令通路的完整软件方案,能够适用于各种上位机。本技术实施例提供的基于支持ppp拨号的方法的ppp拨号方法,能够兼容windows和linux系统下ppp拨号流程存在的差异,此外,本技术实施例还提供了常见ppp拨号异常情况的处理方法,形成了一整套完整的ppp拨号的软件实现方案。[0100]图12为本技术实施例提供的一种支持ppp拨号的装置的结构示意图,上述支持ppp拨号的装置设置在终端设备中,如图4所示,上述支持ppp拨号的装置可以包括:第一组件401、第二组件402和第三组件403;其中,[0101]所述第一组件401,负责与上位机交互点对点协议ppp拨号at命令、ppp拨号协议数据和网络数据,负责提供ppp拨号的命令通路和数据通路;其中,所述第一组件接收所述上位机发来的ppp拨号at命令后转给第二组件处理;[0102]所述第二组件402,负责管理ppp拨号的业务流程;其中,所述第二组件负责建立分组数据协议pdp,用所述pdp的信息拉起和配置业务流程;[0103]所述第三组件403,包括点对点协议守护进程pppd和内核ppp驱动程序,负责建立和维护与目标设备的ppp链接;其中,当ppp拨号at命令完成后,所述第一组件负责所述上位机与所述第三组件之间的ppp拨号协议数据交互。[0104]图12所示实施例提供的支持ppp拨号的装置可用于执行本说明书图1所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。[0105]可以理解的是,所述支持ppp拨号的方法可以通过以下装置来执行:芯片、或者芯片模组。关于上述实施例中描述的各个装置、产品包含的各个模块/子模块/单元,其可以是软件模块/子模块/单元,也可以是硬件模块/子模块/单元,或者也可以部分是软件模块/子模块/单元,部分是硬件模块/子模块/单元。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/子模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/子模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/子模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/子模块/单元可以都采用电路等硬件的方式实现,不同的模块/子模块/单元可以位于芯片模组的同一组件(例如芯片、电路模input/output,gpio)接口,用户标识模块(subscriberidentitymodule,sim)接口,和/或通用串行总线(universalserialbus,usb)接口等。[0114]usb接口130是符合usb标准规范的接口,具体可以是miniusb接口,microusb接口,usbtypec接口等。usb接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如ar设备等。[0115]可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本技术另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。[0116]终端设备100的通信功能可以通过通信模块140,调制解调处理器以及基带处理器等实现。[0117]通信模块140可以提供应用在终端设备100上的包括有线局域网,无线局域网(wirelesslocalareanetworks,wlan)(如无线保真(wirelessfidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(globalnavigationsatellitesystem,gnss),调频(frequencymodulation,fm),近距离无线通信技术(nearfieldcommunication,nfc),红外技术(infrared,ir)等无线通信的解决方案。通信模块140可以是集成至少一个通信处理模块的一个或多个器件。通信模块140接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。通信模块140还可以从处理器110接收待发送的信号,对其进行调频,放大转为电磁波辐射出去。[0118]终端设备100通过gpu,显示屏150,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏150和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。[0119]显示屏150用于显示图像,视频等。显示屏150包括显示面板。显示面板可以采用液晶显示屏(liquidcrystaldisplay,lcd),有机发光二极管(organiclight-emittingdiode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclightemittingdiode的,amoled),柔性发光二极管(flexlight-emittingdiode,fled),miniled,microled,micro-oled,量子点发光二极管(quantumdotlightemittingdiodes,qled)等。在一些实施例中,终端设备100可以包括1个或n个显示屏150,n为大于1的正整数。[0120]终端设备的显示屏150上可以显示一系列图形用户界面(graphicaluserinterface,gui),这些gui都是该终端设备的主屏幕。一般来说,终端设备的显示屏150的尺寸是固定的,只能在该终端设备的显示屏150中显示有限的控件。控件是一种gui元素,它是一种软件组件,包含在应用程序中,控制着该应用程序处理的所有数据以及关于这些数据的交互操作,用户可以通过直接操作(directmanipulation)来与控件交互,从而对应用程序的有关信息进行读取或者编辑。一般而言,控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、widget等可视的界面元素。例如,在本技术实施例中,显示屏150可以显示虚拟按键。[0121]外部存储器接口120可以用于连接外部存储卡,例如microsd卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。[0122]内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflashstorage,ufs)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备100的各种功能应用以及数据处理。[0123]其中,本技术实施例所涉及的终端设备,可安装有操作系统,在该操作系统上可以安装运行应用程序,本技术实施例对此不作限定。[0124]需要说明的,本技术实施例中提及的顶端、底端、左端、右端,以及上方、下方均是相对的,是具体实现方式中的示例性地描述,不应对本技术实施例构成限定。[0125]本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本说明书图1~图11所示实施例提供的支持ppp拨号的方法和ppp拨号的方法。[0126]上述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(readonlymemory,rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)或闪存、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。[0127]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。[0128]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。[0129]可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。[0130]上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。[0131]在本发明实施例的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。[0132]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。[0133]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的方法、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属
技术领域
:的技术人员所理解。[0134]取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。[0135]需要说明的是,本技术实施例中所涉及的终端可以包括但不限于个人计算机(personalcomputer,pc)、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)、手机、mp3播放器、mp4播放器等。[0136]在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0137]另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。[0138]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0139]以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献