Package PamModel

Interface PamPluginInterface

All Superinterfaces:
CommonPluginInterface
All Known Implementing Classes:
angleMeasurementPlugin, ArrayAccelPlugin, AzigramPlugin, IMUPlugin, offlineProcessingPlugin, quickAnnotationPlugin, RawDeepLearningPlugin

public interface PamPluginInterface extends CommonPluginInterface
Interface for PAMGuard plugins.

Author:
MO
  • Field Details

    • ALLMODES

      static final int ALLMODES
      Used in conjunction with allowedModes() method to specify the plugin can be used in any PAMGUARD mode (Normal, Mixed and Viewer)
      See Also:
    • VIEWERONLY

      static final int VIEWERONLY
      Used in conjunction with allowedModes() method to specify the plugin can only be used in PAMGUARD Viewer mode
      See Also:
    • NOTINVIEWER

      static final int NOTINVIEWER
      Used in conjunction with allowedModes() method to specify the plugin can be used in PAMGUARD Normal and Mixed modes, but not Viewer mode
      See Also:
  • Method Details

    • getClassName

      String getClassName()
      The class name of the plugin. This should be the class that extends PamControlledUnit. The correct format is PackageName.ClassName, with no extension on the class name. Thus if the package name is MyFirstPlugin and the class name is MyPluginControl.java, the return should be:

      return "MyFirstPlugin.MyPluginControl";

      This field cannot be null.

      Returns:
      the class name as a String
    • getDescription

      String getDescription()
      A short description of the plug in module. This text is used in various informational windows displayed to the user. The value returned here is typically the same as the text returned from the getDefaultName() method (e.g. Click Detector or FFT (Spectrogram) Engine).
      This is the text used in the main 'Add Modules' menus and is used as the second argument to PamModuleInfo.registerControlledUnit

      This field cannot be null.

      Returns:
      String describing the plugin. Cannot be null.
    • getMenuGroup

      String getMenuGroup()
      Due to the large number of PAMGUARD modules now in existence, you may want to have your module listed in one of the sub menus of the File/Add Modules menu. You can add your module to one of the existing groups or you can create a new group of your own. The return string of this method specifies the name of the menu group the plug-in should belong to. Current PAMGuard menus include:
      • Maps and Mapping
      • Sound Processing
      • Detectors
      • Classifiers
      • Localisers
      • Displays
      • Utilities
      • Visual Methods
      • Sensors
      • Seiche Modules
      • Sound Measurements
      If the string passed does not match one of the above options, a new menu group is added with that name.

      This field cannot be null.

      Returns:
      the name of the menu group to include the plugin in. Cannot be null.
    • getToolTip

      String getToolTip()
      String containing the tool tip that will be displayed when hovering over the menu item.

      This field cannot be null.

      Returns:
      ToolTip, as a String. Cannot be null.
    • getDependency

      PamDependency getDependency()
      Your module may be dependent on data from some other PAMGUARD module. For example, the click detector requires raw data from an acquisition module, the whistle detector required raw data from a FFT module and the GPS module requires data from an NMEA data source.If the plug-in requires a different module to function, specify that dependent module here (see PamDependency for the constructors).

      For example, a dependency on the FFT Engine would be defined as:

      return new PamDependency(FFTDataUnit.class, "fftManager.PamFFTControl");

      which tells Pamguard that the plug-in is dependent on some source of FFTDataUnit, and that a possible source of this type of data is the fftManager.PamFFTControl module.

      If the plug-in has no dependencies, this field should be null.

      Returns:
      See Also:
    • getMinNumber

      int getMinNumber()
      Minimum number of instances of this plugin. If the minimum number is greater than 0, then PAMGuard will automatically create that number of modules at start-up.

      This field must be an integer >= 0

      Returns:
    • getMaxNumber

      int getMaxNumber()
      Maximum number of instances of this plugin. PAMGuard will prevent the user from creating more modules than the number specified here. Returning 0 indicates that there is no maximum number of instances.

      This field can be an integer >= 1 and > the minimum number (to specify a specific number), or 0 (to indicate no limits on the number).

      Returns:
    • getNInstances

      int getNInstances()
      The number of instances to instantiate when this module is loaded

      This field must be an integer >= the minimum number

      Returns:
    • isItHidden

      boolean isItHidden()
      Whether or not this plugin should be hidden in the menu. True=hidden, False=visible. Except for rare circumstances, this method should return false.

      This field cannot be null.

      Returns:
      Hide status. True=hidden, False=visible. Cannot be null.
    • allowedModes

      int allowedModes()
      Specifies the type of PAMGuard mode that the plugin is allowed to run in. Options are:
      Returns:
      allowable run modes. Cannot be null