CN117750178A - 一种用于科学级相机的调试系统及方法 - Google Patents

一种用于科学级相机的调试系统及方法 Download PDF

Info

Publication number
CN117750178A
CN117750178A CN202311758743.0A CN202311758743A CN117750178A CN 117750178 A CN117750178 A CN 117750178A CN 202311758743 A CN202311758743 A CN 202311758743A CN 117750178 A CN117750178 A CN 117750178A
Authority
CN
China
Prior art keywords
debugging
control command
command
user
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311758743.0A
Other languages
English (en)
Inventor
王坚
耿哲
王之越
葛堃
王辉
张鸿飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN202311758743.0A priority Critical patent/CN117750178A/zh
Publication of CN117750178A publication Critical patent/CN117750178A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及设备控制技术领域,公开了一种用于科学级相机的调试系统及方法,包括以下模块:通信兼容模块,用于将不同类型的通信介质的通信功能打包成接口,使得其他的模块能够通过接口使用不同类型的通信介质进行通信;命令管理模块,将控制命令作为控制过程的基本单元,由用户定义控制命令组,根据控制命令的特性决定通信的流程以及对后续数据流的解析的功能;nz‑script引擎模块,能够实现发送命令、接收命令、接收图像数据、允许用户插入插件;日志模块,接收其他模块发送的日志信息,并按照时间顺序将所述日志信息以文本流的形式保存;本发明在科学级相机开发阶段,通过先进的调试软件实现对相机硬件参数的准确控制和优化。

Description

一种用于科学级相机的调试系统及方法
技术领域
本发明涉及设备控制技术领域,具体涉及一种用于科学级相机的调试系统及方法。
背景技术
科学级相机的开发是一个系统工程。恰当的软硬件分工、对功能实现的合理定位可以大大提高系统的开发效率。同时,也正是因为科学级相机开发的复杂性,在开发调试阶段,通常需要对控制命令、图像传输、图像存储等功能提供较为通用的调试功能,从而实现在项目定型期加速项目迭代、快速验证原型的作用;具体来说,调试系统的基础功能分为两大部分,一是在设备开发时期将控制协议与控制功能之间的对应关系简化,允许用户自定义这样的控制关系,并完成控制命令的序列化、逆序列化以及传输功能;二是提供图像数据的传输和存储功能,帮助开发者将大量的图像数据分割存储成文件,帮助开发与验证。
然而,满足上述条件的调试系统的设计具有诸多困难。首先,在产品定型之前,控制协议、图像传输过程还未确定,开发人员通常需要在不同的方案之间选择相对较优的版本,因此调试软件必须能兼容不同的指令协议、指令内容,甚至控制协议的序列化与逆序列化方案本身都应当以插件的形式允许定制,才能应对系统开发时期复杂多变的需求;其次,虽然系统的功能是调试软件,但是为了匹配科学级相机高帧率、大尺寸等等特性带来的数据传输速率上的严苛要求,调试系统本身的性能不能成为桎梏,不仅要能够实现高速的传输过程,还需要能对传输流程根据不同的需求做出客制化的修改;最后,为了提高开发过程的效率,除了上述基本要求之外,调试系统还应该具备一定程度的自动化特性,对于机械性重复的调试、测试流程可以实现自动控制的功能,这可以很大程度上降低开发者调试的工作量。
除了以上难点之外,调试系统还应该具备其他的特性,诸如:首先,作为一个具有图形界面(Graphic User Interface,GUI)的系统,调试系统的交互逻辑设计直接影响到开发者调试的效率;其次,对调试过程的自动化记录使得开发者可以分析调试过程,帮助对开发阶段频繁出现的故障和错误进行定位和诊断。
现有技术中,开发者通常使用通用的调试工具进行调试工作,例如在以太网调试时使用的netcat,在串口调试时使用的picocom等工具。这些通用工具虽然能实现最基本的调试,但是针对前文所述的需求,尚存在大量不足:1.基本上没有任何针对科学级相机的优化,因此使用上比较繁琐,实现自动化流程难度很大。2.缺少对于科学级相机协议的定制化支持,增加了用户在指令新建阶段的学习和操作成本。3.不同的接口如果共享调试命令,无法在数据上实现共享,不同接口的调试器需要分别建立命令数据库。4.交互逻辑各自区别巨大,学习成本难以确定。5.缺乏对于包括图像数据的传输在内的大数据率传输的支持。
综上,在相机研制阶段需要一套调试系统配合相机调试,实现对相机设备的控制和优化,解决科学级相机开发调试的问题。
发明内容
为解决上述技术问题,本发明提供一种用于科学级相机的调试系统及方法。
为解决上述技术问题,本发明采用如下技术方案:
一种用于科学级相机的调试系统,其特征在于,包括以下模块:
通信兼容模块,用于将不同类型的通信介质的通信功能打包成接口,使得其他的模块能够通过所述接口使用不同类型的通信介质进行通信;
命令管理模块,用于对控制命令进行抽象,并将控制命令作为控制过程的基本单元,由用户定义控制命令组,根据控制命令的特性决定通信的流程以及对后续数据流的解析;
nz-script引擎模块,其提供了一套命令,分别与命令管理模块和通信兼容模块的各项功能对应,能够实现发送命令、接收命令、接收图像数据、允许用户插入插件;
日志模块,接收其他模块发送的日志信息,并按照时间顺序将所述日志信息以文本流的形式保存。
进一步地,所述接口包括:控制命令的接收和发送接口、图像信息的接收和发送接口。
进一步地,所述接口还包括用于初始化的初始化接口,以及用于清理现场的析构接口。
进一步地,所述控制命令包括控制命令的元信息,以及编解码的协议信息;所述元信息包括控制命令的头部、参数个数和开发者自定义字段,以及一个用于显示的别名。
一种用于科学级相机的调试系统的调试方法,通过命令管理模块,用户能够通过界面增加和删除控制命令的实例、为每个控制命令添加编解码的协议信息。
一种用于科学级相机的调试系统的调试方法,通过基于描述协议的解析方案实现在科学级相机开发的过程中涉及到的按位、按字节解析数据流的功能;所述基于描述协议的解析方案包括:
首先,通过以下规范建立描述字符串:使用百分号字符作为转义关键字,使用%nT的形式定义解析时的方案,n表示位宽度,T表示类型,所述类型在整数类型、浮点数类型、忽略、布尔类型间选择;
将按照上述规范建立的描述字符串添加到控制命令的元信息中。
一种用于科学级相机的调试系统的调试方法,其特征在于:还包括基于ini文件的描述命令信息的方案,具体包括:
用户能够在界面上将定义的控制命令组存储到配置文件中,并在需要时将对应的配置文件加载到工作区,在调试过程中有不同的调试对象、每个相机使用的协议不同时,能够减少用户手工建立控制命令实例的工作;
对于具有相同头部的多个控制命令,需要对所述多个控制命令实施不同的解析流程时,使用命令迁移功能修改解析协议。
一种用于科学级相机的调试系统的调试方法,其特征在于,nz-script引擎模块能够实现如下功能:用户插入的插件能够根据用户提供的参数生成脚本控制流,并将所述脚本控制流读入nz-script引擎模块,逐条执行;用户插入的插件包括能够实现自动重复曝光的插件、能够自动反复读取参数的插件;nz-script引擎模块使用关键词匹配的方式对脚本控制流进行解析,对每种功能分别定义了关键词,并对每个关键词的语法做了约束,不满足约束的语句不会被执行。
与现有技术相比,本发明的有益技术效果是:
在科学级相机开发阶段,本发明通过先进的调试软件实现对相机硬件参数的准确控制和优化,使得科学级相机能够在计算机环境下实现精确的控制命令收发、高效的图像数据传输;兼容特定相机协议的组装与解析,具备一套灵活可配置的协议解析方案;包含基本的调试流程自动化执行模块;最后,提供高效便捷的用户交互接口,提高用户使用效率和体验。
附图说明
图1为本发明实施例的系统结构框图;
图2为本发明实施例中的命令的工作流程图;
图3为本发明实施例的消息处理的序列示意图;
图4为本发明实施例的软件界面示意图。
具体实施方式
下面结合附图对本发明的一种优选实施方式作详细的说明。
本发明提供了一种用于科学级相机的调试系统及方法,调试系统分为下列几个部分:1.用于完成与不同的硬件接口对接的通信兼容模块;2.用于支持控制命令组装和解析的命令管理模块;3.用于支持自动化测试流程执行的nz-script引擎模块;4.用于对调试记录进行保存、导出的日志模块。每个部分都包含若干细分的组成模块。
本发明的具体解决方案如下:
通信兼容模块的功能是将不同类型的通信介质的通信功能打包成相似的接口,从而使得其他的模块能够以相似的流程和接口使用不同的通信介质。通信兼容模块将所有的通信介质的各种接口归类为两类:控制命令收发与图像信息收发;除此之外还有用于初始化和清理现场的初始化接口和析构接口。对于每种具体的通信介质(如USB接口),通常在开发科学级相机时会将控制命令的信道和传输图像的信道在传输层进行隔离,因此可以分别实现两组接口。本发明并不限定每个通信兼容模块的唯一性,允许用户通过多组实例控制同一个设备,但是用户需要自行解决冲突问题。
命令管理模块是为了解决调试过程中最核心的易用性问题而设计的。科学级相机控制过程数据流的单位是控制命令,而在此前大多数的调试软件的操作对象是字节流,因此无法实现由调试工作者定义控制命令组、根据控制命令的特性决定通信的流程和对后续数据流的解析的功能。为此,本发明将控制命令抽象出来,并将其作为控制过程的基本单元;每个控制命令对象包含该控制命令的元信息,以及编解码的协议信息;元信息包含命令的头部、参数个数和开发者自定义字段,以及一个用于显示的别名。用户可以通过界面动态增加和删除控制命令实例,并通过前文所述的机制为每个控制命令添加编解码的协议信息。由于在科学级相机开发的过程中经常涉及到按位、按字节解析数据流的功能,本发明定义了一套用于描述协议的解析方案,实现定制化的数据解析功能。其中,使用百分号字符(%)作为转义关键字,使用%nT的形式定义解析时的方案,例其中,n表示位宽度,T表示将此部分的类型,可以在整数、浮点数、忽略、布尔类型间选择。用户将按照上述规范建立的描述字符串添加到命令的元信息中。
在此基础上,为了增加易用性,本发明提供了一套基于ini文件的描述命令信息的方案,用户可以在界面上将定义的命令组存储到配置文件中,并在需要时将对应的配置文件加载到工作区;对于调试过程中有不同的调试对象、每个相机使用的协议不同时,该设计可以减少用户手工建立命令实例的工作;此外,对于具有相同的命令头部的控制命令,但是因为客观需要对控制命令实施不同的解析流程的情况下,允许使用命令迁移功能动态的修改解析协议。用户在进行以上操作时磁盘上的配置文件并不会发生更新,用户可以要求程序更新配置文件,将在界面上做的修改同步到配置文件中,从而不需要手工修改配置文件文本。
在开发阶段,开发工作者经常需要进行重复性的工作,例如多次查看相机的供电状况,多次曝光并存储数据等等;这些功能对于人工操作来说非常繁琐且容易出错,为此本发明提供了一套轻量级的nz-script引擎,该引擎提供了一套命令,分别与命令管理模块和通信兼容模块的各项功能对应,可以实现发送命令,接收命令,接收图像数据等功能;基于该引擎,程序还允许用户插入插件,插件根据用户提供的参数生成脚本控制流,并将这些控制流读入引擎,逐条执行。目前已经基于该方案实现了自动重复曝光、自动反复读取参数等功能的插件。脚本引擎使用基本的关键词匹配的方式对脚本控制流进行解析,对每种功能分别定义了关键词,并对每个关键词的语法做了约束,违背约束的语句不会被执行。
在调试过程中,除了上文所述的种种功能之外,通常开发人员会在调试结束后对流程进行复盘,分析系统的功能和表现。为了支持这样的需求,本发明集成了日志管理器。所有其他模块发送的日志信息会汇总在日志管理器中,日志管理器会按照时间顺序将这些日志信息以文本流的形式保存,方便后续用户对其进行分析。
使用该调试系统的流程如下:
步骤一、新建自定义命令:
用户建立自定义命令,填写命令的关键信息,按照需要选择触发收发流程,例如仅发送、发送并接收或者发送并接收数据,并保持监听,命令保存。
步骤二、定制化指令解析方案:
可选地,基于本发明定义的一套用于描述协议的解析方案,可以制定指令返回的定制化解析方案,约定的解析格式同样以配置项的形式保存于该指令的元信息中。
步骤三、建立通讯信道:
本发明提供了面向USB、以太网、串口等接口的通讯支持,用户可以通过新建通讯会话,实现与对应信道的通讯功能,各接口的会话由通信兼容模块中内置的会话管理器统一管理。
步骤四、命令收发:
程序会将命令根据用户定义的编码协议组装成字节序列,再通过通信兼容模块将字节序列发送给相机设备。随后,通过由该模块接收数据流,并在接收到数据时会按照用户设定的解析方案进行解析,并将解析结果以字符串的形式显示在GUI界面的特定模块。
步骤五、启用自动化脚本引擎:
可选地,输入或加载一套已存在的命令集,载入nz-script引擎,开启自动化的命令执行与解析。
实施例
图1为整套调试系统的功能框图,本实施例采用了严格的模块化结构,分为命令管理、nz-script引擎、日志管理器、通信兼容层四大模块。每个模块都具有明确的独立职责,专注于特定的功能领域。注重解耦设计,确保各个模块之间没有显式的依赖关系,从而降低系统的耦合度,使得每个模块可以独立开发和测试。
命令的工作流程如图2所示,展示了一条命令从新建到正确执行并解析的完整的执行周期。
图3是本发明消息处理的完整序列图,以硬件调试中最为常用的“发送指令”和“接收数据”两个操作为例,展示消息序列在该系统的各模块之间传递序列,交互界面是如图4所示的GUI界面;由于该系统在运作过程中同步支持多类信道通信,于是通信兼容模块内部实现维护了一个会话管理器,通过检索会话,可实现与相应信道的通信;在接收到硬件设备传递的数据时,会通过命令管理器进行数据解析,首先判断对该指令的返回是否存在用户的定制的解析方案,如果存在,则会按照该方案进行定制化解析。
GUI界面启动时如附图4所示,左侧的控制栏用于创建和管理命令,对应于命令管理模块,用户可以双击添加命令。每条命令在命令托盘中会呈现其名字和使用的打包协议,方便用户区分。左上角菜单栏中提供了存储配置文件和加载配置文件的选项,对应于命令管理模块的加载命令和保存命令的功能。此外,每个命令都可以右键单击并修改其中的各种元信息,对应于命令迁移功能。用户通过点击选择一条命令之后可以点击Send按钮,此时系统会触发命令发送功能;相似的,Recv按钮对应于命令接收功能,SendRecv对应于发送并接收的组合功能。每次收取到命令数据时,程序会在右侧的托盘里展示命令的裸数据流和根据用户在选定的命令中定义的解析协议解析裸数据流的结果,并以文本化的形式呈现在右下角的日志窗格中。在中间偏左下侧的输入栏是用于直接向脚本引擎发送特定命令的命令输入栏,用户可以在这个输入栏中输入命令,此命令将发送给nz-script引擎执行。用户也可以通过菜单栏中Debug模块下拉后的执行器按钮加载本地复杂的命令文本文件实现逐条执行复杂的流程的功能。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (8)

1.一种用于科学级相机的调试系统,其特征在于,包括以下模块:
通信兼容模块,用于将不同类型的通信介质的通信功能打包成接口,使得其他的模块能够通过所述接口使用不同类型的通信介质进行通信;
命令管理模块,用于对控制命令进行抽象,并将控制命令作为控制过程的基本单元,由用户定义控制命令组,根据控制命令的特性决定通信的流程以及对后续数据流的解析;
nz-script引擎模块,其提供了一套命令,分别与命令管理模块和通信兼容模块的各项功能对应,能够实现发送命令、接收命令、接收图像数据、允许用户插入插件;
日志模块,接收其他模块发送的日志信息,并按照时间顺序将所述日志信息以文本流的形式保存。
2.根据权利要求1所述的用于科学级相机的调试系统,其特征在于:所述接口包括:控制命令的接收和发送接口、图像信息的接收和发送接口。
3.根据权利要求1所述的用于科学级相机的调试系统,其特征在于:所述接口还包括用于初始化的初始化接口,以及用于清理现场的析构接口。
4.根据权利要求1所述的用于科学级相机的调试系统,其特征在于:所述控制命令包括控制命令的元信息,以及编解码的协议信息;所述元信息包括控制命令的头部、参数个数和开发者自定义字段,以及一个用于显示的别名。
5.一种如权利要求1至4中任一项所述的用于科学级相机的调试系统的调试方法,其特征在于:通过命令管理模块,用户能够通过界面增加和删除控制命令的实例、为每个控制命令添加编解码的协议信息。
6.一种如权利要求1至4中任一项所述的用于科学级相机的调试系统的调试方法,其特征在于:通过基于描述协议的解析方案实现在科学级相机开发的过程中涉及到的按位、按字节解析数据流的功能;所述基于描述协议的解析方案包括:
首先,通过以下规范建立描述字符串:使用百分号字符作为转义关键字,使用%nT的形式定义解析时的方案,n表示位宽度,T表示类型,所述类型在整数类型、浮点数类型、忽略、布尔类型间选择;
将按照上述规范建立的描述字符串添加到控制命令的元信息中。
7.一种如权利要求1至4中任一项所述的用于科学级相机的调试系统的调试方法,其特征在于:还包括基于ini文件的描述命令信息的方案,具体包括:
用户能够在界面上将定义的控制命令组存储到配置文件中,并在需要时将对应的配置文件加载到工作区,在调试过程中有不同的调试对象、每个相机使用的协议不同时,能够减少用户手工建立控制命令实例的工作;
对于具有相同头部的多个控制命令,需要对所述多个控制命令实施不同的解析流程时,使用命令迁移功能修改解析协议。
8.一种如权利要求1至4中任一项所述的用于科学级相机的调试系统的调试方法,其特征在于,nz-script引擎模块能够实现如下功能:用户插入的插件能够根据用户提供的参数生成脚本控制流,并将所述脚本控制流读入nz-script引擎模块,逐条执行;用户插入的插件包括能够实现自动重复曝光的插件、能够自动反复读取参数的插件;nz-script引擎模块使用关键词匹配的方式对脚本控制流进行解析,对每种功能分别定义了关键词,并对每个关键词的语法做了约束,不满足约束的语句不会被执行。
CN202311758743.0A 2023-12-19 2023-12-19 一种用于科学级相机的调试系统及方法 Pending CN117750178A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311758743.0A CN117750178A (zh) 2023-12-19 2023-12-19 一种用于科学级相机的调试系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311758743.0A CN117750178A (zh) 2023-12-19 2023-12-19 一种用于科学级相机的调试系统及方法

Publications (1)

Publication Number Publication Date
CN117750178A true CN117750178A (zh) 2024-03-22

Family

ID=90258774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311758743.0A Pending CN117750178A (zh) 2023-12-19 2023-12-19 一种用于科学级相机的调试系统及方法

Country Status (1)

Country Link
CN (1) CN117750178A (zh)

Similar Documents

Publication Publication Date Title
US5847953A (en) System and method for performing class checking of objects in a graphical data flow program
US7596546B2 (en) Method and apparatus for organizing, visualizing and using measured or modeled system statistics
US5920479A (en) System and method for performing interface independent virtual instrumentation functions in a graphical data flow program
CN103198009B (zh) 一种通用测试方法、系统及相应装置
Riva et al. Combining static and dynamic views for architecture reconstruction
CN104572122B (zh) 一种软件应用数据的生成装置及方法
US6993748B2 (en) Systems and methods for table driven automation testing of software programs
US5905649A (en) System and method for performing type checking and class propagation of attributes in a graphical data flow program
CN110928783A (zh) 基于RobotFramework自动化测试数据化改造的平台
WO2004036340A2 (en) A method, a language and a system for the definition and implementation of software solutions
US20060020931A1 (en) Method and apparatus for managing complex processes
US7146572B2 (en) System and method for configuring database result logging for a test executive sequence
CN113836014A (zh) 一种接口测试方法、装置、电子设备和存储介质
CN117149146A (zh) 一种业务模型构建方法、系统、装置及存储介质
Hartmann et al. UML-based test generation and execution
US20230041718A1 (en) Automated code generation based on pseudo-code
CN117750178A (zh) 一种用于科学级相机的调试系统及方法
Trowitzsch et al. A toolkit for performability evaluation based on stochastic UML state machines
CN113505061B (zh) 自动测试软件平台
Melamed The performance analysis workstation: An interactive animated simulation package for queueing networks
Beringer Limits of Seamlessness in Object Oriented Software Development.
CN118193174B (zh) 一种基于大语言模型的服务插件调用方法
Archer et al. Specifying and proving properties of timed I/O automata using Tempo
CN117591104B (zh) 模型的生成方法、装置、电子设备及存储介质
Zave Case study: The PAISLey approach applied to its own software tools

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination