BOSWatch/plugins/README.md
2015-07-07 14:24:41 +02:00

97 lines
2.5 KiB
Markdown

### How to Code your own plugin:
More information and a little Tutorial coming soon!
### 1. Plugin template
##### 1.1 General
You can find a little template plugin file in `plugins/template/template.py`
##### 1.2 Plugin Init `.onLoad()`
This `.onLoad()` routine is called one time for initialize the plugin
##### 1.3 Plugin call `.run()`
This `.run()` routine is called every time an alarm comes in
### 2. Use Global Logging
##### 2.1 Init and Use
First you must import the logging module
```python
import logging # Global logger
```
Now you can send log messages with:
```python
logging.LOGLEVEL("MESSAGE")
```
You must replace the word `LOGLEVEL` with one if the following `debug`, `info`, `warning`, `error`, `exception` or `critical`
To use the right loglevel see next section `2.2 Choose right Loglevel`
##### 2.2 Choose right Loglevel
`debug`
all messages to find errors and for the internal program flow
`info`
messages that serve only to inform the user
`warning`
`error`
error does not lead to the end of boswatch
`Exception`
`critical`
errors leading to the end of boswatch immediate - in plugins not allowed
### 3. Use config file
##### 3.1 Own configuration in config.ini
First you must set a new Section in `config.ini`
A section is between brackets. Its recommended to give the section the same name as the plugin. `[SECTION_NAME]`
Now you can an set a unlimited number of options with its own value in these format: `OPTION = VALUE`.
Here is the sample from the template plugin:
```python
[template]
test1 = testString
test2 = 123456
```
##### 3.2 Read data from config.ini
To read yout configuration data you must import the `globals.py` where the global config-object is located:
```python
from includes import globals # Global variables
```
Now you can get your configration data with:
```python
VALUE = globals.config.get("SECTION", "OPTION") #Gets any value
```
or better, use this:
```python
VALUE = globals.config.getint("SECTION", "OPTION") #Value must be an Integer
VALUE = globals.config.getfloat("SECTION", "OPTION") #Value must be an Float
VALUE = globals.config.getboolean("SECTION", "OPTION") #Value must be an Boolean
```
### 4. Global helper functions
##### 4.1 timeHandler.py
##### 4.2 wildcardHandler.py
### 5. Process the data from BOSWatch
Three parameters are passed during the alarm to the .run() method
##### 5.1 typ
Thats the function of the alarm. Possible values are **FMS**, **ZVEI** or **POC**
##### 5.2 freq
The reception frequency of the tuner in Hz
##### 5.3 data[ ]