Programs¶
Programs are the core of Veronte Autopilot.
A Program is a custom algorithm executed by Veronte. While their main purpose is the control of the aircraft, Programs can be used to develop a wide variety of applications, from simple math operations to complex estimation filters.
Programs provide the user with a block programming interface that Veronte will then execute at core frequency:
Block Program Example
The different types of blocks available in Veronte Programs are:
Control: control-related blocks (simple PID, scheduling PID,…).
Data source/sink: Input/Output blocks. Programs can have access to any variable available within Veronte system. Results can then be stored in Custom variables for display, use as a different program input, feedback,…
Execution flow: programming-like blocks for operation flow control. These blocks allow to alter parts of a program depending on a condition (If-Else, Integer Case, Phase Case,…)
Logic: logical gates to operate with boolean variables.
Math: mathematical blocks, which include a variety of mathematical operators: basic (sum, multiply, square root,…), trigonometric (sine,cosine,tangent,…), vectors (norm, dot product, rotations,…).
Mode/AP selection: blocks that allow to interact with flight modes and redundancy (4x Veronte).
Positions: blocks for operating with position-type variables (create psotition, read position, relative position,…).
Signals: blocks for signal processing (IIR filter, rate limiter,…)
Type casting: blocks for variable conversion (Real to BIT, Integer to real,…)
Block Program Interface
Accessible from the Setup menu, allows for the creation and edition of block programs:
Programs Menu
Add a new empty Block Program
Program list. From here programs can be selected for edition or deleted. Clicking on will delete an existing Program.
Program name.
Program definition.
‘Pop up’ the program edition window. This allows the user to have a clearer view of the operation while editing.
Estimation of the remaining memory available. If no more memory is available, no new blocks will be allowed to be created. The allocated memory for each block depends on the block type.
Execution
The icon indicates that the program will be executed periodically, at core frequency.
Use to determine execution order of existing programs. Programs are executed from top to bottom.
Clicking on will toggle execution mode. Inactive blocks will not execute periodically, but can be executed using Run Program Actions.
Danger
Applying changes to programs during an operation can cause changes in the beahvior of some blocks.
For example, the Integral terms in PID Blocks will be reset.
Applying changes during an operation is highly unrecommended. If done, please make sure that operational safety is not compromised.
Blocks
Right click on the edition screen to open the block list. Select a block to import it into the program.
Click and drag on blocks to re-locate them:
Adding Blocks
Double click on a block to open its configuration menu.
Block inputs and outputs use a colour code in order to indicate variable types:
An input and an output can be connected directly using the mouse:
Linking Blocks
An input and output with different variable types cannot be connected without a Type Cast.
All inputs of each block must be connected, otherwise Veronte will report an error.
An exception to this rule are translucid inputs , which are optional. These inputs will have a default value if not linked.
Outputs do not need to be linked.