一种基于以太网的VxWorks操作系统日志收集方法与流程

文档序号:17130474发布日期:2019-03-16 01:08阅读:1175来源:国知局
一种基于以太网的VxWorks操作系统日志收集方法与流程

本发明属于嵌入式软件开发领域,涉及vxworks操作系统软件开发方法。



背景技术:

在基于vxworks操作系统的嵌入式软件开发中,反复开关目标机来进行软件的调试是常用的开发方法。其中,软件运行过程所产生的字符串日志是调试的重要参考数据。把目标机启动到关闭作为一次运行,将每次运行所产生的日志按照时间顺序,分次的存储下来,可以极大的方便软件的调试,提高软件开发的效率。

由于嵌入式软件开发的硬件局限性,目标机不一定能够独立完成日志信息的分次存储。

因为目标机在实际工况运行中是独立于上位机的,如果在目标机软件中直接将日志信息通过以太网发送给上位机,必然会造成目标机软件的修改,不利于软件的调试状态与实际运行状态的一致。



技术实现要素:

本发明解决的技术问题是提供一种基于以太网的vxworks操作系统日志收集方法,以实现不修改目标机软件就能将日志信息重定向到上位机的功能,并完成日志信息的分次存储。

本发明的技术方案是:基于以太网的vxworks操作系统日志收集方法,其特征在于,该方法包括下述内容:

步骤1:利用上位机开发环境workbench软件的targetserver功能侦测目标机vxworks操作系统的启动;

步骤2:查询targetserver的状态,是连接完成状态时,将目标机上的日志信息重定向到上位机上;

步骤3:上位机动态地检测日志信息,基于上位机的时间为每一行日志信息添加时间信息;

步骤4:将添加过时间信息的日志信息,写入上位机的本地存储中;

步骤5:查询targetserver的状态,是连接断开状态时,判定目标机关闭,关闭当前的日志信息的存储文件,完成一次目标机的日志收集。

基于以太网的vxworks操作系统日志收集方法,其特征在于,该方法包括下述内容:

步骤1:在上位机上建立targetserver运行环境

vxworks操作系统开发环境workbench包含了targetserver功能,用于与目标机进行网络连接;将目标机的ip地址、cpu类型信息配置到targetserver中,上位机实现自动与目标机的vxworks操作系统建立网络数据连接;

步骤2:监测目标机vxworks操作系统的启动来开始日志的收集

targetserver的运行环境的wtxeventpointlistget函数的返回值来作为监测目标机vxworks操作系统启动的判据;若目标机的vxworks操作系统启动,则在wtxeventpointlistget函数调用后返回一个非空的数据,若目标机的vxworks操作系统没有正常启动,则该函数返回空的数据;

步骤3:将目标机的日志信息重定向到上位机中

上位机运行targetserver的运行环境的wtxconsole.exe的可执行程序建立与目标机的连接,将目标机上的日志信息输出到上位机的wtxconsole.exe的可执行程序运行时产生的命令行控制台中;

步骤4:向日志信息中添加时间信息并存储到上位机的本地存储中

通过配置process类的processstartinfo类成员信息,将redirectstandardoutput布尔值类型参数设置为真,即启动命令行控制台的输出重定向功能;然后通过自定义process类outputdatareceived函数的实现,完成添加时间信息与存储到上位机本地存储;

outputdatareceived函数是在命令行控制台每输出一行字符串的时候调用的,该函数的第二个参数包含每一行的字符串数据;通过将该字符串数据前面添加上位机当前时间信息的字符串,然后将拼接后的字符串输出到上位机的本地存储的文件中,完成日志信息的存储;

步骤5:监测目标机vxworks操作系统的关闭来结束日志的收集

连续调用wtxeventpointlistget函数,若连续调用该函数返回空值,则判定目标机vxworks操作系统已关闭;然后结束步骤4中的文件写入,完成一次目标机vxworks操作系统由启动到关闭的日志信息收集。

进一步地,步骤2中,以200毫秒为一个周期反复调用wtxeventpointlistget函数,通过判断函数的返回值连续4次不为空时,判定目标机的vxworks操作系统正常启动。

进一步地,在步骤5中,以200毫秒为一个周期反复调用wtxeventpointlistget函数,若连续6次调用该函数返回空值,则判定目标机vxworks操作系统已关闭。

本发明上位机通过targetserver与目标机建立连接;将目标机的日志信息通过以太网重定向到上位机;上位机以行为粒度添加时间信息存储到上位机的本地存储中。本发明提供的运行在上位机上的基于以太网的vxworks操作系统日志收集软件,通过targetserver侦测目标机vxworks操作系统的启动并与之连接,利用以太网将目标机上主程序的日志信息重定向到上位机;然后将日志信息的每一行添加时间信息,以vxworks操作系统的一次启动为一个日志文件将日志信息存储到上位机的本地存储中。这样的方法提高了在vxworks操作系统下开发嵌入式程序的效率,节省了软件的调试时间与人力。

本发明的技术效果是:

由于嵌入式软件开发的硬件局限性,目标机不一定能够独立完成日志信息的分次存储,而上位机在开发中是一定存在的,且以太网是目标机很常见的硬件资源,因此基于以太网在上位机上实现日志信息分次存储的可行性很强。

利用vxworks操作系统内建的targetserver功能,本发明能够实现不修改目标机软件就能将日志信息重定向到上位机的功能,并完成日志信息的分次存储。

附图说明

图1为本发明的方法运行外部环境的结构示意图;

图2为本发明的基于以太网的vxworks操作系统日志收集方法的流程示意图。

具体实施方式

为使本发明的技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的基于以太网的vxworks操作系统日志收集方法,包括下述内容:

(1)利用上位机开发环境workbench软件的targetserver功能侦测目标机vxworks操作系统的启动;

(2)查询targetserver的状态,是连接完成状态时,将目标机上的日志信息重定向到上位机上;

(3)上位机动态地检测日志信息,基于上位机的时间为每一行日志信息添加时间信息;

(4)将添加过时间信息的日志信息,写入上位机的本地存储中;

(5)查询targetserver的状态,是连接断开状态时,判定目标机关闭,关闭当前的日志信息的存储文件,完成一次目标机的日志收集。

本发明的方法可以运行在上位机上的软件进行实施,监测并控制目标机。本发明的方法的实施软件运行外部环境。

如图1所示。在本发明的方法实施的软件,运行windows操作系统的上位机与运行vxworks操作系统的目标机,通过以太网相互连接。上位机安装有vxworks操作系统的专用开发环境workbench。

本发明的方法行共分为5个步骤,分别为在上位机上建立targetserver运行环境,监测目标机vxworks操作系统的启动来开始日志的收集,将目标机的日志信息重定向到上位机中,向日志信息中添加时间信息并存储到上位机的本地存储中,监测目标机vxworks操作系统的关闭来结束日志的收集。步骤的流程图如图2所示

步骤1:在上位机上建立targetserver运行环境

vxworks操作系统专用开发环境workbench包含了叫做targetserver功能,作用是与目标机进行网络连接,并完成各类调试功能的实现。通过将目标机的ip地址、cpu类型等信息配置到targetserver中,上位机可以实现自动与目标机的vxworks操作系统建立网络数据连接,为本发明实施例的软件提供了运行环境。

步骤2:监测目标机vxworks操作系统的启动来开始日志的收集

启动了targetserver的运行环境提供了一组库函数,使得外部软件可以通过调用这些函数,实现与目标机系统的交互。在这些函数中,本发明实施例选择了wtxeventpointlistget函数的返回值来作为监测目标机vxworks操作系统启动的判据。

wtxeventpointlistget函数的功能是向目标机上vxworks操作系统请求获得事件点列表的数据。在试验中可以发现,只有已经正常启动的vxworks操作系统才能在wtxeventpointlistget函数调用后返回一个非空的数据。若目标机的vxworks操作系统没有正常启动,则该函数会返回空的数据。因此该函数的返回值可以作为监测目标机vxworks操作系统启动的判据。

本发明实施例在步骤2中以200毫秒为一个周期反复调用wtxeventpointlistget函数,通过判断函数的返回值连续4次不为空时,判定目标机的vxworks操作系统正常启动。

步骤3:将目标机的日志信息重定向到上位机中

启动了targetserver的运行环境包含一个叫做wtxconsole.exe的可执行程序,通过正确的参数调用,上位机可以运行该可执行程序建立与目标机的连接,将目标机上的日志信息输出到上位机该可执行程序运行时产生的命令行控制台中。

在本发明实施例中,上位机配置的ip地址为192.168.202.10,目标机配置的ip地址为192.168.202.20。因此本发明实施例以“-io-s-n-w-vio1vxworks6x_192.168.202.20@y2-zjw”(不包含引号)为参数,在步骤2中判定目标机的vxworks操作系统正常启动后,调用可执行程序wtxconsole.exe,实现将目标机的日志信息重定向到上位机可执行程序wtxconsole.exe运行时产生的命令行控制台中。

步骤4:向日志信息中添加时间信息并存储到上位机的本地存储中

本发明实例的可执行程序wtxconsole.exe的调用,是采用由c#程序编写的软件的实现的。在c#程序中,通过配置process类的processstartinfo类成员信息,将redirectstandardoutput布尔值类型参数设置为真,即启动命令行控制台的输出重定向功能。然后通过自定义process类outputdatareceived函数的实现,完成添加时间信息与存储到上位机本地存储的功能。

outputdatareceived函数是在命令行控制台每输出一行字符串的时候调用的,该函数的第二个参数包含每一行的字符串数据。通过将该字符串数据前面添加上位机当前时间信息的字符串,然后将拼接后的字符串输出到上位机的本地存储的文件中,完成日志信息的存储。

步骤5:监测目标机vxworks操作系统的关闭来结束日志的收集

与步骤2中的方法一样,本发明实施例在步骤5中以200毫秒为一个周期反复调用wtxeventpointlistget函数,若连续6次调用该函数返回空值,则判定目标机vxworks操作系统已关闭。然后结束步骤4中的文件写入,完成一次目标机vxworks操作系统由启动到关闭的日志信息收集。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1