Interface SystemPlugin<UI extends SystemModel>

  • Type Parameters:
    UI - the UI of this system
    All Superinterfaces:
    ConsistencyCheck

    public interface SystemPlugin<UI extends SystemModel>
    extends ConsistencyCheck
    A system plugin models a complete radio system that will integrate completely into SEAMCAT - i.e. it is understood by the simulation engine of SEAMCAT and can be set up as a victim, an interfering system, or both in a interference simulation Scenario
    The required implementation of a System Plugin falls into three categories
    1. UI
    2. Consistency check
    3. Simulation

    UI

    The UI is described in the SystemModel interface. Notice that this UI definition is similar to the Plugin UI definition but allows for composition of several frames of inputs organized in tabs.

    Consistency check

    A System Plugin has the possibility to validate it's input before a simulation is started. This is to inform users of any configuration error that might lead to unwanted results or actual errors in the simulation (for simulation error resulting in exception the simulation will be aborted). SEAMCAT also provides a scenario-wide consistency check that validates standard elements of a scenario, for instance: the distance between a victim receiver and interfering system transmitter will be checked against the propagation model configured in the interference link.

    Simulation

    For an actual simulation define the behaviour of the system. this boils down to specifying what transmitters and receiver are positioned inside a system. Much more detail on this in the SimulationInstance interface.
    • Method Detail

      • setUI

        void setUI​(UI ui)
        This method sets the current configuration of the UI of a SystemPlugin. It can be called a number of times before the simulation has been started, i.e. when modifying the scenario each update will result in setUI being called.
        It is recommended to avoid converting the UI to the RadioSystem each time setUI is called as it could change a lot before simulation begins.
        Parameters:
        ui - the current configuration of the SystemPlugin
      • getUI

        UI getUI()
      • prepareSimulation

        void prepareSimulation​(Scenario scenario)
      • getSystem

        RadioSystem getSystem​(Context context)
        Get the configured RadioSystem of this SystemPlugin This is expected to return something meaningful after prepareSimulation has been invoked.
        Returns:
        the configured RadioSystem
      • preSimulation

        void preSimulation​(Context context,
                           Results results)
        Calculate the pre-simulation results for this system. A pre-simulation can produce any number of unordered or unique results which can be used by any snapshot throughout the simulation. The pre-simulation will therefore run before the event simulation.
        Parameters:
        context - the context of this pre-simulation. Either victim or interfering system.
        results - the presimulation results to be used by each event
      • postSimulation

        void postSimulation​(Context context,
                            Results results)