|
|
|
A MATLAB plugin is a folder located in the user home dir.
|
|
|
|
Documents\AnyWave\Plugins\MATLAB on Windows.
|
|
|
|
/home/username/AnyWave/Plugins/MATLAB on Linux.
|
|
|
|
/users/username/AnyWave/Plugins/MATLAB on MacOS.
|
|
|
|
|
|
|
|
# Requirements
|
|
|
|
MATLAB shoulb be installed if you plan to run scripted plugins, obviously.
|
|
|
|
AnyWave should detect the MATLAB installation when starting but it is also possible to set the path to the MATLAB installation in the Edit->Preferences menu.
|
|
|
|
About standalone (compiled) plugins: The matching MATLAB runtime must be installed in your system.
|
|
|
|
On Windows there is nothing special to do, if the Runtime is in the current system PATH, then the standalone plugin will find it.
|
|
|
|
|
|
|
|
On MacOS and Linux however, you must SET the path to the MATLAB Runtime installation in the Edit->Preferences of AnyWave.
|
|
|
|
That will allow AnyWave to run the standalone versions of your plugins.
|
|
|
|
|
|
|
|
# 1. Starting with anywave v2105 you can use the Plugin Creation Tool to create a new plugin.
|
|
|
|
![image](uploads/01116de2544c9f699dac89bacd3adeca/image.png)
|
|
|
|
|
|
|
|
# 1.1 Make it by your own
|
|
|
|
Create a folder in AnyWave/Plugins/MATLAB directory.
|
|
|
|
In that directory, create two files:
|
|
|
|
- *desc.txt*
|
|
|
|
- *main.m*
|
|
|
|
|
|
|
|
# 1.1.1 desc.txt
|
|
|
|
This file is a simple text file that must contain the following lines:
|
|
|
|
*name = My Plugin*
|
|
|
|
*description = Do something on data*
|
|
|
|
|
|
|
|
# 1.1.1.1 optional lines
|
|
|
|
To tune up the behavior of your plugin you may add some flags to tell AnyWave what you plugin can do:
|
|
|
|
*flags=nodatarequired* -> this line will inform anywave that your plugin can run even if no data file is open.
|
|
|
|
*flags=canrunfromcommandline* -> this flag indicates that your plugin can be run from the command line.
|
|
|
|
You can combine flags by separating them with a colon (:)
|
|
|
|
flags=nodatarequired:canrunfromcommandline
|
|
|
|
|
|
|
|
Put your plugin in a submenu, by adding the following line:
|
|
|
|
*category=Process:MyCategory:My plugin*
|
|
|
|
This line will create a sub menu called MyCategory in the Processes Menu of AnyWave and a link to launch the plugin.
|
|
|
|
|
|
|
|
# 1.1.2 main.m
|
|
|
|
This is a MATLAB function you can create within MATLAB.
|
|
|
|
````matlab
|
|
|
|
function main(varargin)
|
|
|
|
args = anywave('init', varargin);
|
|
|
|
% args contains all the proporties related to AnyWave current data file and the plugin context.
|
|
|
|
% my plugin code starts here
|
|
|
|
````
|
|
|
|
|
|
|
|
# 2. Compiled plugin
|
|
|
|
Using the MATLAB Compiler, you can create a standalone version of your plugin.
|
|
|
|
AnyWave can call the standalone version of your plugin if you add the following line in desc.txt:
|
|
|
|
*compiled plugin=nameofexefile*
|
|
|
|
Example for Delphos plugin, the desc.txt contains the line:
|
|
|
|
*compiled plugin=delphos.exe*
|
|
|
|
|
|
|
|
# 3. check that AnyWave detects your plugin at startup
|
|
|
|
Close and relaunch AnyWave, your plugin should appear in the Processes menu.
|
|
|
|
|
|
|
|
# IMPORTANT note about the init function
|
|
|
|
Before calling any anywave commands in your code, call the init function this way:
|
|
|
|
````matlab
|
|
|
|
args = anywave('init', varargin);
|
|
|
|
````
|
|
|
|
Be sure that your function accepts varargin (cell array) argument.
|
|
|
|
This will ensure that your plugin can be compiled and run by AnyWave as a standalone application.
|
|
|
|
The args variable is a structure/dictionnay that contains all useful properties you may use in your plugin.
|
|
|
|
|
|
|
|
The anywave application path, the current plugin directory, etc. |
|
|
|
\ No newline at end of file |