首页> 中国专利> 一种武器控制软件的按钮菜单实现方法

一种武器控制软件的按钮菜单实现方法

摘要

本发明公开一种武器控制软件的按钮菜单实现方法,将号手对周边键的操作与按钮功能对应起来,当操作号手点击某一周边键,周边键通过串口将信号传至程序,程序通过串口协议可获取点击的按钮的位置信息,通过调用外部接口,根据当前分页序号,定位到所点击按钮的属性信息。按钮属性以及此按钮所属的分页序号、在所属分页的位置,均通过配置文件进行定义;通过对按键菜单进行初始化配置,可限制每个菜单中按钮状态是否为可用,并可在流程中设置具体按键功能是否被禁用。该方法模块化程度高,对外接口清晰、简化,易于修改、重构,可读性强,且便于对按钮菜单功能进行拓展。

著录项

  • 公开/公告号CN113094129A

    专利类型发明专利

  • 公开/公告日2021-07-09

    原文格式PDF

  • 申请/专利权人 北京机电工程研究所;

    申请/专利号CN202110317122.3

  • 发明设计人 姜姗姗;郭勇鹏;李坤;潘添豪;

    申请日2021-03-25

  • 分类号G06F9/451(20180101);G06F3/0481(20130101);G06F16/81(20190101);G06F16/83(20190101);

  • 代理机构

  • 代理人

  • 地址 100074 北京市丰台区云岗北里40号院

  • 入库时间 2023-06-19 11:45:49

说明书

技术领域

本发明涉及武器控制人机交互领域,尤其涉及一种用于武器控制的人机交互软件按钮菜单的实现方法。

背景技术

本申请应用背景为武器控制人机交互设备。武器控制人机交互设备用于控制流程中指令发送,及信息、数据显示。使用方为部队武器控制操作号手。为适应部队号手一令一动、准确可靠的操作风格及需求,武器控制设备多采用显示器周边布置按键的设备。其上运行武器控制软件,软件页面在周边键位置布置按钮菜单,菜单上按钮与周边键一一对应,向操作手提供指令下发的接口,或用于软件信息页面的切换。当操作手点击周边键便等同于点击菜单上对应按钮,此时将触发按钮所描述的功能。

由于武器控制呈现信息化、自动化、集中化程度升高的发展趋势,武器控制人机交互软件承担的功能日益丰富。控制覆盖导弹发射流程控制以及发射系统功能控制,如发射系统工作模式控制、供配电控制、发射装置控制、导航定位控制、辅助设备控制、系统日志管理等方面,涉及人工控制的功能繁多,且均需通过按钮下发控制指令。软件页面显示信息涵盖武器以及发射系统的主要设备、分系统状态、参数,信息涵盖广、项目多,需要采用多页面进行显示,如某火控系统人机交互软件页面多达30页,软件页面之间切换亦需要通过按钮实现。某火控系统人机交互软件通过按钮实现的功能多达160余项。设备周边键为便于号手操作,设计时不宜尺寸过小且不宜排布密集,同时因受设备尺寸限制,只能设置有限数目的周边键,因此按钮菜单上一次呈现的按钮个数有效,此数目远远小于按钮实现的功能数目。按钮菜单需要进行分页管理,每页负责有限的几项功能。菜单需按流程进度,或为与当前页面显示信息相配合,显示特定的菜单分页。软件设计时,如何实现按钮菜单,使其能够灵活切换分页,菜单分页如何配置,成为一个值得研究的问题。合理的按钮菜单实现方法,不仅使相关功能代码模块化程度高,接口简化,易于修改和重构,可读性强,同时亦便于对按钮菜单功能进行拓展。带周边键的武器控制设备及其上武控软件页面框架见图1所示。

发明内容

本发明解决的技术问题在于提供一种武器控制软件按钮菜单实现的方法,将号手对周边键的操作与按钮功能对应起来,完成指令下发及显示页面切换。

本发明一种武器控制软件的按钮菜单实现方法,包括如下步骤:

S1,武器控制设备显示器周边布置按键,武器控制设备上运行武器控制软件,软件页面在周边键位置布置按钮菜单,按钮菜单每个菜单分页上按钮数目与周边键数目一致;不同分页按序号依次排列,在软件中调用按钮菜单的对外接口切换至指定按钮分页;

S2,读取按钮菜单配置文件进行菜单初始化,配置文件明确了按钮属性以及此按钮所属的分页序号、在所属分页的位置;所述按钮属性包括按钮文本、按钮状态、按钮类型以及按钮功能索引;按钮文本是程序运行时显示在按钮上的文字,用于向用户说明该按钮所具备的功能;按钮功能索引用于在执行按钮功能函数中,定位点击该按钮后应执行的程序片段,包括下发流程控制指令、下发发射装置控制指令、查看参数、指令确认、显示页面切换;按钮状态有两种,可用或不可用,点击不可用按钮,程序不会执行按钮对应功能;按钮类型,包括需确认的指令按钮、无需确认的指令按钮,页面切换按钮;初始状态下,菜单按钮是否可用依据配置文件来设定;

当号手根据使用习惯提出对按钮菜单顺序或按钮位置的调整意见时,只需更改配置文件中按钮属性的分页序号以及在所属分页的位置数据项,即可实现;无论按钮处于菜单的任何位置,只要其功能索引不变,均可在按钮功能函数中,查找对应的分支,执行相应功能;

当操作号手点击某一周边键,周边键通过串口将信号传至程序,程序通过串口协议可获取点击的按钮的位置信息,根据此位置信息及当前分页序号,通过调用外部接口,定位到所点击按钮的属性信息;

S3,以按钮属性为实参,调用按钮功能函数;首先判断该按钮状态是否为可用,否则返回,是则继续执行;按钮功能函数根据按钮功能索引定位相应功能分支,执行分支内代码;号手点击类型为无需确认类型的按钮,程序执行相应功能分支;当号手点击了类型为需确认的按钮后,按钮分页切换为对指令的确认菜单,此时若号手选择“确认”,程序才执行相应功能分支内代码;若选择“取消”,则不执行功能分支,并通过按钮菜单对外接口,返回上一菜单分页;

S4,程序运行过程中,依据实际使用需求对特定按钮的可用性加以限制,通过调用对外接口函数,改变特定菜单分页上特定位置按钮的可用性来满足此需求;程序不限制对同一按钮可用性的改变次数;更新按钮状态后,将按钮新的状态保持至程序变量,而不更新配置文件,以保证程序每次运行时菜单初始状态的唯一。

进一步地,根据实参的按钮类型来确定对该操作的记录策略,操作记录用于故障排查依据;当号手点击页面切换类型的按钮时,程序不对该操作进行记录;号手点击需确认类型的按钮,并操作确认后则记录操作信息;若号手操作取消,不确认,则不记录,记录内容为该按钮的文本属性;号手点击无需确认类型的按钮,此时直接记录操作信息。

进一步地,程序通过建立按钮菜单类来实现,按钮菜单配置文件采用xml 格式。

本发明有益效果:

本发明建立了一种武器控制软件按钮菜单模型,给出了一种通过配置文件实现的菜单初始化方法,通过调整配置文件即可实现对按钮菜单的调整,便于武器软件对按钮菜单功能进行拓展,同时可对使用号手的操作进行记录。

附图说明

所包括的附图用来提供对本发明实施例的进一步的理解,其构成了说明书的一部分,用于例示本发明的实施例,并与文字描述一起来阐释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是带周边键的武器控制设备及软件示意图;

图2是C++/Qt实现的按钮菜单类结构示意图;

图3是按钮菜单xml配置文件示意图;

图4是外部接口菜单分页切换函数流程图;

图5是外部接口特定按钮状态更新函数流程图。

具体实施方式

下面结合附图对本发明作进一步详细说明。

本发明目的在于提供一种武器控制软件按钮菜单实现的有效方法,将号手对周边键的操作与按钮功能对应起来,完成指令下发及显示页面切换。可指导武器控制软件的按钮菜单的设计实现。通过对按键菜单进行初始化配置,可限制每个菜单中按钮状态是否为可用,并可在流程中设置具体按键功能是否被禁用。该方法模块化程度高,对外接口清晰、简化,易于修改、重构,可读性强,且便于对按钮菜单功能进行拓展。

本发明采用的技术方案如下:

该方法采用面向对象的程序设计思想,通过一个按钮菜单类CBtnManager 来具体实现,使用时在武控软件中定义一个CBtnManager类的对象,通过调用该对象的对外接口,完成对按钮菜单的配置及按钮功能的调用。通过C++/Qt实现的按钮菜单类结构见图2所示。

按钮菜单上的按钮抽象为aBtn结构体,其所具有的属性包括按钮文本、按钮功能索引、按钮状态、按钮类型。按钮文本是程序运行时显示在按钮上的文字,直观地向用户说明该按钮所具备的功能。按钮功能索引用于在执行按钮功能的函数中,定位点击该按钮后应执行的程序片段。按钮状态有两种,可用或不可用,点击不可用按钮,程序不会执行按钮对应功能。按钮类型,可区分按钮为需确认的指令按钮、无需确认的指令按钮,页面切换按钮等,有助于程序对号手指令操作的记录,操作记录可用于故障排查依据。当号手点击页面切换类型的按钮时,程序可不对该操作进行记录。号手点击需确认类型的按钮,确认后程序才会执行相应功能,并操作确认后则记录操作信息;若号手操作取消,不确认,则不记录,记录内容为该按钮的文本属性。号手点击无需确认类型的按钮,点击后即会执行相应功能,此时直接记录操作信息。按钮菜单中的按钮由结构体aBtn定义,成员包括name:作为按钮文本;functionID:作为按钮功能索引;state:表示按钮是否可用的状态;type:表示按钮类型。

按钮菜单每个菜单分页上按钮数目num与周边键数目一致,定义此数目的按钮控件实体,在CBtnManager类中通过按钮控件指针数组*btnList[num]表示。不同分页按序号依次排列,程序页面当前显示的分页序号通过CBtnManager类的成员变量currentListID表示,成员变量lastListID表示上一次显示的分页序号。所有按钮菜单分页的按钮信息统一由map类型成员btnlistMap存储,map 的键key为分页序号,键对应的值为当前分页所用按钮信息,用元素为aBtn的 vector存储。程序中所用按钮菜单中的按钮属性:文本、状态、类型、功能索引,以及此按钮所属的分页序号、在所属分页的位置,均通过配置文件进行定义。图3给出xml格式的按钮菜单配置文件。

在武控软件中定义CBtnManager类的对象,在对象的构造函数中通过调用readConfig()函数读取配置文件以获取按钮菜单属性信息,将菜单属性存储于成员变量btnlistMap中。在软件中调用按钮菜单的对外接口btnListUpdate(int newListID)可以由页面切换至序号为newListID的按钮分页,同时成员变量 lastListID更新为切换前的分页序号,当前分页序号currentListID更新为 newListID。btnListUpdate(int newListID)中通过for循环语句,循环调用 btnUpdate(int pos)函数依次更新当前分页每一个按钮。在btnUpdate(int pos) 函数中判断当前按钮状态属性state为可用,则将该按钮控件设置为可用,且显示按钮文本;若属性state为不可用,则将按钮控件设置为不可用,且不显示按钮文本。图4给出菜单分页切换函数btnListUpdate(int newListID)的流程图。

在程序中根据流程需求可通过调用对外接口setBtnState(int listID,int pos,bool_state)来控制序号为listID的菜单分页上位置为pos的按钮,设置btnlistMap中该按钮状态为_state,判断此时页面是否正在显示该按钮所在分页,是则调用btnUpdate(intpos)更新当前按钮控件可用状态为_state。图 5给出特定按钮状态更新函数btnUpdate(int pos)的流程图。

当操作号手点击某一周边键,周边键通过串口将信号传至程序,程序通过串口协议可获取点击的按钮的位置信息pos,通过调用外部接口 getBtnState(int pos),根据当前分页序号currentListID,在map成员 btnlistMap中可定位到所点击按钮的属性信息。程序以此按钮属性为实参,调用按钮功能函数slt_pb_clicked(aBtn),函数首先判断该按钮状态state是否为可用,否则返回,是则继续执行。按钮功能函数以配置文件中所有按钮的功能索引functionID作为switch语句的case值,每个case对其功能索引要实现的具体任务,如下发流程控制指令、下发发射装置控制指令、查看参数、指令确认、返回首页、按钮菜单切换至某一分页等。slt_pb_clicked(aBtn)函数根据实参的功能索引functionID在switch语句中定位并执行相应功能代码,之后根据实参的按钮类型type来确定对该操作的记录策略。当号手点击了类型为需确认的按钮后,按钮分页切换为对指令的确认菜单,此时若号手选择“取消”指令,则可通过按钮菜单对外接口btnListBack(),返回上一菜单分页。返回操作通过在btnListBack()函数中调用btnListUpdate(lastListID)实现。

程序运行过程中,依据实际使用需求对特定按钮的可用性加以限制,通过调用对外接口函数,改变特定菜单分页上特定位置按钮的可用性来满足此需求;程序不限制对同一按钮可用性的改变次数;更新按钮状态后,将按钮新的状态保持至程序变量,而不更新配置文件,以保证程序每次运行时菜单初始状态的唯一。

当武器控制软件需要增加新的按钮功能时,只需在配置文件中补充对应的按钮属性信息,同时在主程序定义的slt_pb_clicked(aBtn)函数的switch语句增加此按钮功能索引的case分支,即可完成软件功能的拓展。

当号手根据使用习惯提出对按钮菜单顺序或按钮位置的调整意见时,只需更改配置文件中按钮属性的listID、pos数据项,即可实现。无论按钮处于菜单的任何位置,只要其功能索引functionID不变,均可在按钮功能函数 slt_pb_clicked(aBtn)中,查找的对应的switch分支,执行特定功能。

此外,在按钮菜单对象调用构造函数中,调用外观设置函数 btnsViewInit(),可对按钮菜单的位置、尺寸、样式等进行设计。

下面结合对菜单类的使用进行具体说明。示例以C++/Qt语言实现。

1、在页面类中,添加按钮菜单类的对象并声明按钮功能函数,作为点击按钮相应的槽函数:

2、在页面类的构造函数中,建立按钮菜单按钮点击信号与页面按钮功能槽函数的连接,并指定程序运行后最先显示的菜单分页:

3、编辑配置文件,明确程序按钮菜单信息。以图2的配置文件为例,该配置文件规定的信息如下表所示,配置文件给出了包含8各按钮的菜单配置。

可以看到第1分页和第2分页的第1个按钮均为“急停”,对应的funcID 均为“stop”,点击这两个按钮,都将会索引到按钮功能槽函数switch语句的 case“stop”分支,执行相同的控制语句,即下发“急停”指令。

4、编辑页面类的成员函数slt_pb_clicked(aBtn),将按钮菜单配置文件中按钮的功能ID作为switch语句分支,并编辑每个分支需要执行的具体功能。

按钮功能执行后,依据按钮类型,判断是否进行该按钮的操作记录:

5、在程序中当满足某种条件,可以将初始化为不可用的“打开”、“关闭”按钮更新为可用状态,则可通过如下语句实现:

setBtnState(1,5,true);//第1分页的第5个按钮,即“打开”可用

setBtnState(1,6,true);//第1分页的第6个按钮,即“关闭”可用

上述具体实施方式仅限于解释和说明本发明的技术方案,但并不能构成对权利要求保护范围的限定。本领域技术人员应当清楚,在本发明的技术方案的基础上做任何简单的变形或替换而得到的新的技术方案,均落入本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号