设备命令行的实现方法、系统与装置的制造方法

文档序号:8922439阅读:166来源:国知局
设备命令行的实现方法、系统与装置的制造方法【
技术领域
】[0001]本发明涉及计算机
技术领域
,特别是涉及设备命令行的实现方法、系统与装置。【
背景技术
】[0002]无论嵌入式设备还是通用设备,在开发、调试、测试及正常运行等各个阶段,都存在与设备上运行的各个程序交互的需求。不但需要了解程序及系统的状态,也需要对各个流程进行控制,而命令行接口对于各种设备来说都是一种方便和功能强大的交互方式。[0003]一般命令行通过串口应用程序或者Telnet程序,利用键盘输入命令与设备进行交互,虽然也可以通过Web或者其它图形界面与设备进行交互,但通常命令行方式比这些图形界面能提供更完备的交互功能。特别是在设备出现故障,例如网口异常情况下,仍然可以通过串口使用命令行的方式与设备交互,解决设备问题。[0004]针对与设备中的每一个程序,如果要与其交互,都要重新开发相应的交互命令。即使程序中已经有现成的控制函数,也需要开发客户端和服务器,分别与用户交互及执行控制函数,并需要对控制函数和命令名字进行注册绑定。如果一个执行程序已经具备完成控制需求的函数,需要新增一个命令,采样上述处理方式会非常复杂,有大量数据需要处理。【
发明内容】[0005]基于此,有必要针对一般设备命令行的实现方式处理过程中数据处理过大的问题,提供一种数据处理量小、便捷的设备命令行的实现方法、系统与装置。[0006]一种设备命令行的实现方法,包括步骤:[0007]获取用户指定的执行文件、执行文件路径以及通信参数;[0008]根据所述执行文件、所述执行文件路径以及所述通信参数,分别获得全局变量符号和全局函数符号与地址的对应关系,生成符号与地址的映射表;[0009]接收用户输入命令,并采用C语言解析用户输入命令的含义;[0010]根据所述符号与地址的映射表以及用户输入命令的含义,构造命令消息,发送所述命令消息至服务器;[0011]接收服务器处理所述命令消息生成的结果消息。[0012]一种设备命令行的实现系统,包括:[0013]获取模块,用于获取用户指定的执行文件、执行文件路径以及通信参数;[0014]映射表模块,用于根据所述执行文件、所述执行文件路径以及所述通信参数,分别获得全局变量符号和全局函数符号与地址的对应关系,生成符号与地址的映射表;[0015]输入模块,用于接收用户输入命令,并采用C语言解析用户输入命令的含义;[0016]发送模块,用于根据所述符号与地址的映射表以及用户输入命令的含义,构造命令消息,发送所述命令消息至服务器;[0017]接收模块,用于接收服务器处理所述命令消息生成的结果消息。[0018]一种设备命令行的实现装置,包括客户端与服务器,所述客户端与所述服务器连接;[0019]所述客户端获取用户指定的执行文件、执行文件路径以及通信参数,根据所述执行文件、所述执行文件路径以及所述通信参数,分别获得全局变量符号和全局函数符号与地址的对应关系,生成符号与地址的映射表,接收用户输入命令,并采用C语言解析用户输入命令的含义,根据所述符号与地址的映射表以及用户输入命令的含义,构造命令消息,发送所述命令消息至服务器;[0020]所述服务器接收所述命令消息,并根据所述命令消息执行全局函数符号和/或全局变量符号的修改和查看,生成结果消息,发送所述结果消息至所述客户端。[0021]本发明设备命令行的实现方法、系统与装置,客户端获取用户指定的执行文件、执行文件路径以及通信参数,根据执行文件、执行文件路径以及通信参数,分别获得全局变量符号和全局函数符号与地址的对应关系,生成符号与地址的映射表,接收用户输入命令,并采用C语言解析用户输入命令的含义,根据符号与地址的映射表以及用户输入命令的含义,构造命令消息,发送命令消息至服务器,接收服务器处理命令消息生成的结果消息。整个过程中,全局变量及全局函数符号信息与地址的自动绑定,用户命令遵循C语言语法,避免了需要人工绑定命令及对应执行代码之间关系的工作,实现便捷操作,另外,增加和删除命令只需在用户的执行文件中增加删除相应的全局变量和全局函数,只需实现一遍,之后可以直接重复利用,很好地避免重复数据的处理,从而减少了数据处理量。【附图说明】[0022]图1为本发明设备命令行的实现方法第一个实施例的流程示意图;[0023]图2为本发明设备命令行的实现方法第二个实施例的流程示意图;[0024]图3为本发明设备命令行的实现系统第一个实施例的结构示意图;[0025]图4为本发明设备命令行的实现系统第一个实施例的结构示意图。【具体实施方式】[0026]如图1所示,一种设备命令行的实现方法,包括步骤:[0027]SlOO:获取用户指定的执行文件、执行文件路径以及通信参数。[0028]执行文件路径为执行文件在客户端系统文件中的存储路径,通信参数为客户端与服务器之间通信方式的参数,例如所客户端与服务器之间采用网络通信就要输入IP和端口号,需要服务端与客户端匹配,以便建立通信连接。[0029]S200:根据所述执行文件、所述执行文件路径以及所述通信参数,分别获得全局变量符号和全局函数符号与地址的对应关系,生成符号与地址的映射表。[0030]客户端对执行文件进行解析,从中获取全局变量符号、全局函数符号与地址等信息的对应,自动生成符号与地址等信息的映射表,客户端进行解析的执行文件需要携带全局变量及全局函数符号信息,如果设备上的执行文件需要去除符号信息,可以在客户端使用尚未去除符号信息前的执行文件。[0031]S300:接收用户输入命令,并采用C语言解析用户输入命令的含义。[0032]客户端接收用户输入命令,对用户输入命令进行解析,具体来说是采用C语言对用户输入命令进行解析,获得用户输入命令的含义,这里说的C语言包括但不限于C/C++。非必要的,我们可以采用C语言解析器实现整个解析过程。非必要的,我们在接收用户输入命令之前,可以给予用户提示,告知用户遵循C语言语法输入命令,以便缩短命令解析、处理时间和处理量。[0033]S400:根据所述符号与地址的映射表以及用户输入命令的含义,构造命令消息,发送所述命令消息至服务器。[0034]客户端通过通信端口将命令消息发送至服务器。[0035]S500:接收服务器处理所述命令消息生成的结果消息。[0036]服务器接收命令消息,并根据命令消息执行全局函数符号和/或全局变量符号的修改和查看,生成结果消息,发送结果消息至客户端,客户端接收服务器发送过来的结果消息,并显示。服务器根据命令信息中的地址等执行命令,并返回结果消息。简单,高效,最大程度地减少芯片能力的依赖。把复杂及耗时的工作都交给客户端。使服务器能在性能较差的芯片中仍然能够部署。[0037]在客户端中,我们可以构造客户端程序,不依赖于具体的操作系统。通过编译使程序可以在Unix,Windows等操作系统中运行。因此也不受限制于运行在上位机还是设备,可以根据需要灵活部署。另外,客户端提供接收用户输入的界面。接收用户指定的执行文件、通信方式及命令,执行文件的格式为ELF格式,如果采用网络通信方式,要指定IP和端□号。[0038]本发明设备命令行的实现方法,客户端获取用户指定的执行文件、执行文件路径以及通信参数,根据执行文件、执行文件路径以及通信参数,分别获得全局变量符号和全局函数符号与地址的对应关系,生成符号与地址的映射表,接收用户输入命令,并采用C语言解析用户输入命令的含义,根据符号与地址的映射表以及用户输入命令的含义,构造命令消息,发送命令消息至服务器,接收服务器处理命令消息生成的结果消息。整个过程中,全局变量及全局函数符号信息与地址的自动绑定,用户命令遵循C语言语法,避免了需要人工绑定命令及对应执行代码之间关系的工作,实现便捷操作,另外,增加和删除命令只需在用户的执行文件中增加删除相应的全局变量和全局函数,只需实现一遍,之后可以直接重复利用,很好地避免重复数据的处理,从而减少了数据处理量。[0039]如图2所示,在其中一个实施例中,步骤SlOO具体包括步骤:[0040]S120:获取用户指定的执行文件;[0041]S140:将所述用户指定的执行文件转换为ELF(ExecutableandLinkableFormat,可执行的和可链接格式)文件,并记录ELF文件路径以及通信参数。[0042]用户指定的执行文件格式可能为多种,在本实施例中,我们在获取到用户指定的执行文件后,先将这些文件转换为ELF文件,之后再记录这些文件路径以及通信参数。将文件全部转换为ELF在后续的处理中有如下好处:直接对ELF文件进行解析,不依赖于操作系统提供的库,可在不同的操作系统中编译,使客户端可以灵活地部署。对于本发明设备命令行的实现方法整个方案来说,通过解析ELF格式的执行程序镜像,获取全局变量符号、全局函数符号与地址等信息的对应。因为用户命令遵循C/C++语法,使用全局变量和全局函数作为命令,所以可以自动完成命令与执行函数的绑定关系。服务器收到客户端解析后的地址,根据命令类型,转换成变量地址或者函数地址,就可以执行命令操作。[0043]在其中一个实施例中,所述接收用户输入命令,并采用C语言解析用户输入命令的含义具体包括步骤:[0044]设置C语言语法解析器;[0045]接收用户输入命令,通过所述C语言语法解析器解析用户输入命令的含义。[0046]C语言语法解析器能够便捷实现C语言的解析,使设备获知用户输入命令的含义。[0047]在其中一个实施例中,所述根据所述执行文件、所述执行文件路径以及所述通信参数,分别获得全局变量符号和全局函数符号与地址的对应关系,生成符号与地址的映射表之后还有步骤:[0048]当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1