FAQ for Developing AuboCaps and Operating Software
I. Plug-in Development
Q1: Are there any rules between Contribution and View's UI signaling that can guide me?
Answer:
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: Hi, I'm doing exception handling in a plugin and want to catch exceptions from the aubo_scope space. But right now I am not able to raise any exception even intentionally. Using createUserProgramNode I try to get IllegalArgumentException, but I get only Segmentation fault. And so it is with all exceptions. Could you please tell me how to work with aubo exceptions? How could I call them to test processing? Do they occur in real work, or will I always get Segmentation fault?
**Answer:**We apologize that in some plugin interfaces, we did not perform adequate checks on the parameters, leading to the failure to throw the appropriate exceptions. However, in the SDK, we do throw exceptions, and the type is arcs::common_interface::AuboException, which you can view here: https://docs.aubo-robotics.cn/arcs_api/classarcs_1_1common__interface_1_1AuboException.html.
O3: Customizing the order in which child node scripts are executed
Problem Details: ScriptWritter::writeChildren() in the standard interface executes child node script generation in program tree order. However, we would like to specify that the B node under the plugin A node is executed at the end of the child nodes regardless of its position in the program tree.
**Answer:**You can have the B node script generate a function, and put the original function inside the function. Then at the end of the A node script, call the function generated by the B node to customize the execution order of the child node scripts.
II. Software operation
Q1: Why did the software installation fail?
Answer:
- Check for adequate disk space
- Check if there is an error downloading the software installation package, try to download and install it again.
Q2: Why is the remote run program functioning abnormally?
**Answer:**Running a program remotely is running a .lua script directly from the filesystem. If the program tree is edited, and the program name with * is not saved, the program that is run is not the same as the edited program. You need to save the program before running it remotely.
It is also recommended to change the operation mode to automatic before running the program remotely.