本发明涉及嵌入式设备软件调试技术领域,具体涉及一种基于gtk的虚拟电表软件调试方法。
背景技术:
传统的智能电表软件调试需要依赖集成开发环境的ide,如iar,烧写到嵌入式设备中,通过打断点查看全局变量或寄存器值。传统的电表底层程序调试采用直接改变底层寄存器值的方式,当mcu芯片改变时,需要重新配置寄存器;当底层mcu功能没有实现时,无法进行应用层代码的调试,代码的通用性和可扩展性差。当调试电量或瞬时量等模块的代码时,需要依赖台体设备进行提供电压、电流或负载。整个软件调试的开发周期比较耗时,且必须依赖于真实的嵌入式设备。
技术实现要素:
本发明的目的是提供一种可兼容电表不同mcu功能、无需考虑底层移植、方便应用层模块的功能逻辑调试、具有较好的通用性和扩展性、极大提高软件调试效率的基于gtk的虚拟电表软件调试方法。
gtk(gimptoolkit)是一套源码以lgpl许可协议分发、跨平台的图形工具包。最初是为gimp写的,已成为一个功能强大、设计灵活的一个通用图形库,是gnu/linux下开发图形界面的应用程序的主流开发工具之一。
为了达到上述目的,本发明通过以下技术方案来实现:
一种基于gtk的虚拟电表软件调试方法,包括如下步骤:
s1)根据智能电表的具体需求,配置gtk虚拟开发环境,将对应的嵌入式代码配置到vs系统中;安装虚拟串口工具,配置不同的虚拟串口进行配对通信;
s2)下载gtk软件开发工具包;
根据智能电表对电压、电流等特定功能需求的触发条件及嵌入设备底层io口变化导致的触发事件,进行gtk软件编程;
s3)运行虚拟表,观察运行数据,分别对通信模块、电能及瞬时量模块、嵌入式底层io进行软件调试。
进一步地,步骤s2)中,gtk软件编程通过创建控件函数、调用回调函数来实现外界触发事件。
进一步地,步骤s3)中,对通信模块的软件调试包括对虚拟串口结构体dcb的波特率、数据位、奇偶检验、停止位参数进行设置以及通过虚拟串口的自发自收功能对通信模块的运行参数进行软件调试。
进一步地,步骤s3)中,对电能、瞬时量模块的软件调试包括对电压、电流值进行设置以及对电能、瞬时量输入设定的参数值。
进一步地,步骤s3)中,对嵌入式底层io的软件调试为根据gtk界面的io_input实现对嵌入式底层io的软件模拟,进而触发事件。
本发明与现有技术相比,具有以下优点:
本发明一种基于gtk的虚拟电表软件调试方法,通过gtk编程直接给电表模拟提供设定的电压、电流,模拟触发过压、过流、过载等事件发生的条件,利用电脑(pc)虚拟串口的自发自收功能,模拟通信模块的软件调试,实现虚拟电表软件调试的功能。本发明可兼容电表不同mcu功能,无需考虑嵌入式设备不同mcu底层移植问题,方便应用层模块的功能逻辑调试,具有较好的代码扩展性和功能通用性,极大提高了软件调试的效率。
gtk软件编程实现了模拟改变嵌入式设备底层io寄存器值,模拟应用层代码需要的触发条件;软件调试可以实现判断编写代码的逻辑是否正确。
附图说明
图1是本发明一种基于gtk的虚拟电表软件调试方法的流程示意图;
图2是本发明一种基于gtk的虚拟电表软件调试方法的配置虚拟串口界面示意图;
图3是本发明一种基于gtk的虚拟电表软件调试方法的参数输入设置界面示意图;
图4是本发明一种基于gtk的虚拟电表软件调试方法的io口模拟事件触发界面示意图。
具体实施方式
下面结合附图,对本发明的实施例作进一步详细的描述。
一种基于gtk的虚拟电表软件调试方法,利用vs系统开发软件、vspd.exe虚拟串口工具、gtk软件开发工具包,如图1所示为本发明方法的流程示意图,包括如下步骤:
s1)根据智能电表的具体需求,配置gtk虚拟开发环境,将对应的嵌入式代码配置到vs系统中;安装vspd.exe虚拟串口工具,如图2所示,配置不同的虚拟串口进行配对通信,实现通信数据的自发自收功能。
s2)下载gtk软件开发工具包,载入gtk的all-in-onebundles包,并在vs软件中配置所包含的库文件、头文件及附加依赖项。
根据智能电表对电压、电流等特定功能需求的触发条件及嵌入设备底层io口变化导致的触发事件,进行gtk软件编程,创建控件函数。
加载glade格式的文件,实际上是xml文件,完成ui界面设计,这样可以保证界面设计和应用程序的逻辑是隔离的,界面的修改不会影响到应用层的代码。
通过调用回调函数实现外界触发事件,如开表盖、端钮盖、给定额定的电压电流等软件模拟。
s3)运行虚拟表,观察运行数据,分别对通信模块、电能及瞬时量模块、嵌入式底层io进行软件调试。
步骤s3-1)中,对通信模块的软件调试包括对虚拟串口结构体dcb的波特率、数据位、奇偶检验、停止位参数进行设置以及通过虚拟串口的自发自收功能对通信模块的运行参数进行软件调试。
步骤s3-2)中,对电能、瞬时量模块的软件调试包括对电压、电流值进行设置(如图3所示)以及对电能、瞬时量输入设定的参数值,不必依赖外界实际的台体设备的电压、电流的输入,进而实现对对应模块运行参数的软件调试。
步骤s3-3)中,对嵌入式底层io的软件调试为根据gtk界面的io_input实现对嵌入式底层io的软件模拟,如图4所示,进而触发开表盖、端钮盖、掉电等事件,无需考虑嵌入式设备底层mcu的差异性,具有较好的功能扩展和通用性。
以上所述仅是本发明优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。
1.一种基于gtk的虚拟电表软件调试方法,其特征在于包括如下步骤:
s1)根据智能电表的具体需求,配置gtk虚拟开发环境,将对应的嵌入式代码配置到vs系统中;安装虚拟串口工具,配置不同的虚拟串口进行配对通信;
s2)下载gtk软件开发工具包;
根据智能电表对电压、电流等特定功能需求的触发条件及嵌入设备底层io口变化导致的触发事件,进行gtk软件编程;
s3)运行虚拟表,观察运行数据,分别对通信模块、电能及瞬时量模块、嵌入式底层io进行软件调试。
2.根据权利要求1所述的一种基于gtk的虚拟电表软件调试方法,其特征在于:
步骤s2)中,gtk软件编程通过创建控件函数、调用回调函数来实现外界触发事件。
3.根据权利要求1所述的一种基于gtk的虚拟电表软件调试方法,其特征在于:
步骤s3)中,对通信模块的软件调试包括对虚拟串口结构体dcb的波特率、数据位、奇偶检验、停止位参数进行设置以及通过虚拟串口的自发自收功能对通信模块的运行参数进行软件调试。
4.根据权利要求1所述的一种基于gtk的虚拟电表软件调试方法,其特征在于:
步骤s3)中,对电能、瞬时量模块的软件调试包括对电压、电流值进行设置以及对电能、瞬时量输入设定的参数值。
5.根据权利要求1所述的一种基于gtk的虚拟电表软件调试方法,其特征在于:
步骤s3)中,对嵌入式底层io的软件调试为根据gtk界面的io_input实现对嵌入式底层io的软件模拟,进而触发事件。
技术总结