跳转到内容

插件开发与软件操作常见问题 ​

一、插件开发 ​

Q1:Contribution 和 View 的 UI 信号之间有什么规则? ​

解答:

text
1. UI signal -> View::slotXxx() -> Contribution::setXxx() -> undo/redo -> push -> data_model_->set()
2. Contribution::openView() -> View::updateXxx()
3. undo/redo -> DataModel change signal -> Contribution::openView() -> View::updateXxx()

Q2:插件中如何捕获 aubo_scope 空间的异常? ​

问题描述:我在插件中做异常处理时需要捕获 aubo_scope 空间抛出的异常,但目前即使有意触发也无法抛出任何异常。使用 createUserProgramNode 时,期望得到 IllegalArgumentException,实际只得到 Segmentation fault,其他异常也都是如此。请问该如何使用遨博的异常?怎样调用这些异常来验证异常处理流程?实际使用中会出现异常,还是始终只会得到 Segmentation fault?

解答:很抱歉,部分插件接口未对参数做充分的校验,导致未能抛出相应的异常。不过在 SDK 中确实会抛出异常,异常类型为 arcs::common_interface::AuboException,具体说明可参见 AuboException。

Q3:如何自定义子节点脚本的执行顺序? ​

问题描述:标准接口中的 ScriptWriter::writeChildren() 是按程序树顺序生成和执行子节点脚本的。我们想指定插件 A 节点下的 B 节点,不论在程序树中什么位置,都放在子节点最后执行。

解答:可以让 B 节点脚本生成一个函数,把原本执行的功能放在函数里面;然后在 A 节点脚本最后,去调用 B 节点生成的函数,即可自定义子节点脚本的执行顺序。

二、软件操作 ​

Q4:软件为什么安装失败? ​

解答:

  1. 检查磁盘空间是否充足。
  2. 检查软件安装包是否下载出错,尝试重新下载安装。

Q5:为什么远程运行程序功能异常? ​

解答:远程运行程序是直接运行文件系统中的 .lua 脚本。如果编辑过程序树,程序名带 * 没有保存,则运行的程序和编辑后的程序不一致,需要保存程序后再远程运行程序。

而且推荐将操作模式改为自动后再远程运行程序。