Presentation is loading. Please wait.

Presentation is loading. Please wait.

Plugin overview Functional Plugins (PMP)

Similar presentations


Presentation on theme: "Plugin overview Functional Plugins (PMP)"— Presentation transcript:

1 Plugin overview Functional Plugins (PMP)

2 Functional Plugins: PMP & AGP
Presentation Outline Plugin definitions Plugin clasification Input types Functional Plugins: PMP & AGP PMP: Implement its class Define its interface Implement its interface and methods Implement the consistency check method

3 Plugin definitions Propagation Model Plugin (PMP): A plugin that contains the implementation of a propagation model Antenna Gain Plugin (AGP): A plugin that contains the implementation of an antenna pattern Event Processing Plugin (EPP): A plugin that uses calculations done in the core of SEAMCAT and that processes them to produce alternative results Post Processing Plugin (PPP): A plugin that uses simulation result, i.e. after the simulation is complete to produce alternative results. System Plugin (SP): A plugin that contains the complete implementation of a radio system (transmitter, receiver and all their associated parameters)

4 Plugin Clasification Functional plugin: similar to a mathematical function. From a list of input parameters a functional plugin produces a list of results. These are PMP and AGP Simulation plugin: it takes account of results produced during a simulation, combined with its own defined inputs, in order to produce its own results. These are EPP and PPP System plugin (SP): allows the definiton of a radio system (e.g. 5G) defined by its transmitters, receivers and all parameters associated with them.

5 Input types Boolean: true/false Double: decimal value
Integer: entire number Distribution: any of the built in distributions (constant, discrete uniform, uniform, gaussian, rayleigh, uniform polar angle, uniform polar distance, user defined, or stair). Function: x, y double values interpolated as a function MaskFunction: x,y double pairs with a corresponding mask value m Selection values: a set of possible selection values

6 Functional Plugins – PMP
Define the corresponding class: PropagationModelPlugin.java Define its corresponding methods: Description: writes a title and describe what the plugin does Consistency Check: performs the verification among the input parameters to avoid any error. This method is executed before the simulation starts. Evaluate: performs the necessary calculations to obtain the desired result (propagation attenuation)

7 PMP: Implement the class PropagationModelPlugin.java
Implement the corresponding class: PropagationModelPlugin.java

8 PMP: Define the pluigin interface
The interface specifes the input types used in the plugin:

9 PMP: Define the pluigin interface
Things to note: All inputs are defined as return values to methods taking no parameters To be considered a valid input the method must be annotated with 'Config' and config must specify the order (this is needed for SEAMCAT to properly order it) and display the name. Declaring a variable of the same type and same name will define a default value. This is optional and if not specified the default value will be as defined by SEAMCAT.

10 PMP: Define the pluigin interface
Good practice: define the plugin input default values such that the plugin does not report errors when using its default configuration. In our definition of the Distribution input we didn't specify a default value, which means SEMACAT will assign the Constant Distribution of 0 to it. We can improve the plugin by at least assigning a Distribution that does not cause it to create an error message, to do this the Factory.distributionFactory() method can be helpful.:

11 PMP: Define the pluigin interface
The plugin can be improved by assigning a distribution that does not result in an error message. To do this the Factory.distributionFactory() method can be helpful:

12 PMP: Implement the pluigin interface
After having defined the interface, it can be implemented as follows:

13 PMP: Implement the pluigin interface
Things to note: the Input is now part of the consistencyCheck and evaluate methods. In programming terms this allows for type safe programming, i.e. the interface Input declared above is called a type and that type is now passed as argument to the evaluate method. Inside the evaluate method it is possible to write code like input.distribution() to read the distribution value selected.

14 PMP: Implement the ConsistencyCheck method
This method warns the user about a lack of consistency between input parameters. Example: suppose that the PMP can only have the distribution to be of type UniformDistribution and have a range of values between -78 and 80 Executing a consistency check will display a window providing information to the user.

15 PMP: Implement the ConsistencyCheck method

16 Questions?


Download ppt "Plugin overview Functional Plugins (PMP)"

Similar presentations


Ads by Google