Reven can be extended by using python scripts or plugins. Both are similar except that a plugin can also interact with REVEN Axion's display and can be called with a shortcut from REVEN Axion.
There are three distinct APIs:
reven
python library. It is used to manipulate the execution data, and can be called from both plugins and scripts.reven_api
python library. You should use it only for features yet unsupported by the plugin API: it currently is the only way to create, start & stop projects, and create scenarios, all through the launcher_connection object.axion_api
library. This API is used to interact with Reven Axion's GUI, and exists only from the context of a plugin.See below for snippets or the Examples page (accessible through the header of this page) for starting points.
This library is accessible from everywhere on the system through a standard Python CLI or the REVEN Axion's python console.
The first step is to connect to an existing Reven instance, for example on port 13370
of the host localhost
:
You can then start an execution, if none has been done or loaded before:
From there, you can communicate with the Reven instance through member functions of the Project class. For example, you can get information about every trace using traces()
:
Inside a Trace (which is the same as a run
in Axion), the most interesting object is the Point: it represents a single execution point.
As you can see, with these two objects you can query pretty much everything.
The complete API reference is available here, and is discoverable through the python prompt help.
The low-level API is, for now, the only way to create, start & stop projects, and create scenarios, all through the launcher_connection
object. See the Examples page on how to do that, along with helper functions you can use.
If you want to learn more about the low level python api, the following reference pages will help you:
It is accessible in the context of REVEN Axion only, through a plugin or the REVEN Axion's python console.
From there you can, for example, get the selected instruction:
reven
and axion_api
are loaded automatically.reven_connection
instance is already created and is accessible under the name rvn_client
.A plugin can use the axion_api
library to interact with the REVEN Axion's display.
To make and use a plugin through REVEN Axion, process as follows:
Create a file my_plugin.py
in your autoload directory and define the axion_calling
function.
axion_calling
plays the role of the main function for REVEN Axion.
Load your plugin in REVEN Axion through the REVEN Axion's python console as follows:
Remark: 'name'
will be the name of the plugin in REVEN Axion and can be different of name of the plugin file.
To reload the plugin, use:
The axion_calling
function is important because when you use the shortcut define for your plugin, REVEN Axion will try to call this function. If it is not define, nothing will happen.