- General Information
- Server Administration
- Mission Database
- Data Management
- Data Links
- Processors
- Commanding
- Services
- Security
- Web Interface
- Programs
Extending Yamcs
Appendices
Yamcs Release Notes
Yamcs HTTP API
Source Code Documentation
Algorithms SheetΒΆ
This sheet contains arbitrarily complex user algorithms that can set (derived) output parameters based on any number of input parameters.
Empty lines are used to separate algorithms and cannot be used inside the specification of one algorithm.
The column names are:
algorithm nameThe name of the algorithm within the space system.
languageThe programming language of the algorithm. Currently supported values are JavaScript, python and java.
pythonrequires adding the jython-standalone <https://mvnrepository.com/artifact/org.python/jython-standalone> jar to the Java classpath (due to its large size, this is by default not included in Yamcs distributions).textThe code of the algorithm. See: Algorithm Definitions.
triggerOptionally specify when the algorithm should trigger:
OnParameterUpdate('/some-param', 'some-other-param')Execute the algorithm whenever any of the specified parameters are updatedOnInputParameterUpdateThis is the same as above for all input parameters (i.e. execute whenever any input parameter is updated).OnPeriodicRate(<fireRate>)Execute the algorithm everyfireRatemillisecondsnoneThe algorithm doesn't trigger automatically but can be called upon from other parts of the system (like the command verifier)
The default is none.
in/outWhether a parameter is inputted to, or outputted from the algorithm. Parameters are defined, one per line, following the line defining the algorithm name.
parameter referenceAlgorithms can be interdependent, meaning that the output parameters of one algorithm could be used as input parameters of another algorithm.
instanceAllows inputting a specific instance of a parameter. At this stage, only values smaller than or equal to zero are allowed. A negative value, means going back in time. Zero is the default and means the actual value. This functionality allows for time-based window operations over multiple packets. Algorithms with windowed parameters will only trigger as soon as all of those parameters have all instances defined (i.e. when the windows are full).
Note that this column should be left empty for output parameters.
variable nameAn optional friendlier name for use in the algorithm. By default the parameter name is used, which may lead to runtime errors depending on the naming conventions of the applicable script language.
Note that a unique name is required in this column, when multiple instances of the same parameter are inputted.
flagsThis column is applicable for each
inparameter and can have the following values:MShort for mandatory. The algorithm will not trigger unless a value is set for this input parameter.
descriptionTextual description of the algorithm. Should be one line.
long descriptionLong textual description of the algorithm. In Markdown format.
namespace:<ALIAS>Any numbers of namespace columns can be added using the prefix
namespace:followed by the name of a namespace.This allows associating alternative names to algorithms.