Structures, description...

Florian 2017-02-27 23:19:17 +01:00
parent 6fed351757
commit cc3bc3e5e1

@ -4,11 +4,17 @@ Realisiert die Anbindung an eine mySQL-Datenbank.
## Voraussetzungen
* Installierte mysql-Datenbank auf dem Rechner
* Angelegte Datenbank (z.B. BOSWatch), die mit dem Dump (boswatch.sql) befüllt wurde
Für den Betrieb des Plugins sind folgende Voraussetzungen zu schaffen:
1. mySQL installieren: `sudo apt-get install mysql-server` - das root-Passwort bitte merken
2. Die Datei `plugins/MySQL/boswatch.sql` einspielen: `mysql --host=localhost --user=root --password=PASSWORT -vvf datenbank_name < boswatch.sql`
## Funktionsweise
Eingehende Alarme oder Status werden in die jeweilige Tabelle der Datenbank `boswatch` (default) eingetragen. Die Menge der Informationen ist vom dekodierten Signal abhängig.
Für POCSAG-Netze besteht weiterhin die zyklischen Netz-RIC (_Signal-RIC_) in einer separaten Tabelle einzutragen; der Zeitstempel zeigt dann den Zeitpunkt der letzten Dekodierung an.
## Config
Im Part `[MySQL]` der config.ini befindet sich die Konfiguration für das MySQL-Plugin.
```php
@ -22,6 +28,82 @@ database = boswatch //BOSWatch Datenbank
tableFMS = bos_fms
tableZVEI = bos_zvei
tablePOC = bos_pocsag
table = bos_signal
```
Wenn man die Config eingestellt hat, muss man nur noch das `boswatch.sql` File auf der MySQL ausführen. Dies legt die Datenbank und die Tabellen `bos_fms`, `bos_zvei` und `bos_pocsag` an.
## Datenbank im Detail
Im Folgenden werden die Strukturen der Datenbank und der darin enthaltenen Tabellen dargestellt. Daraus leiten sich die abgespeicherten Informationen ab.
Für alle Tabellen gilt:
* `id`: Fortlaufender Zähler für die Einträge
* `time`: Zeitstempel des Eintrags
### Tabelle bos_fms
```php
CREATE TABLE IF NOT EXISTS `bos_fms` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`time` DATETIME NOT NULL,
`fms` VARCHAR(8) NOT NULL,
`status` VARCHAR(1) NOT NULL,
`direction` VARCHAR(1) NOT NULL,
`directionText` TEXT(10) NOT NULL,
`tsi` VARCHAR(3) NOT NULL,
`description` TEXT NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MYISAM DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
```
* `fms`: 8stellige FMS-Kennung (HiOrg, Bundesland, Ortsbereich, Fahrzeug, lfd. Nummer)
* `status`: Übermittelter Status
* `direction`: 1 oder 0
* `directionText`: Fzg->LSt oder umgekehrt
* `tsi`: Taktische Kurzinformation (I-IV)
* `description`: Sollte in der `fms.csv` ein Eintrag für die FMS-Kennung hinterlegt sein, so wird an dieser Stelle der Wert angegeben
### Tabelle bos_zvei
```php
CREATE TABLE IF NOT EXISTS `bos_zvei` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`time` DATETIME NOT NULL,
`zvei` VARCHAR(5) NOT NULL DEFAULT '0',
`description` TEXT NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MYISAM DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
```
* `zvei`: 5-Ton-Folge
* `description`: Sollte in der `zvei.csv` ein Eintrag für die ZVEI-Kennung hinterlegt sein, so wird an dieser Stelle der Wert angegeben
### Tabelle bos_pocsag
```php
CREATE TABLE IF NOT EXISTS `bos_pocsag` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`time` DATETIME NOT NULL,
`ric` VARCHAR(7) NOT NULL DEFAULT '0',
`function` INT(1) NOT NULL,
`functionChar` TEXT(1) NOT NULL,
`msg` TEXT NOT NULL,
`bitrate` INT(4) NOT NULL,
`description` TEXT NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MYISAM DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
```
* `ric`: Radio Identification Code - 7stellige Ziffer
* `function`: 1..4, entspricht der SubRIC
* `functionChar`: A..D, siehe `function`
* `msg`: Dekodierter Text
* `bitrate`: Bitrate des Netzes
* `description`: Sollte in der `poc.csv` ein Eintrag für die POCSAG-Kennung hinterlegt sein, so wird an dieser Stelle der Wert angegeben
### Table bos_signal
```php
CREATE TABLE IF NOT EXISTS `bos_signal` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`time` DATETIME NOT NULL,
`ric` VARCHAR(7) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`)
) ENGINE=MYISAM DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
```
Die Besonderheit: Die Daten werden in der Sektion `[POC]` in der `config.ini` beschrieben; eine Dekodierung führt nicht zu einem neuen Datenbankeintrag, sondern zu einer Aktualisierung des vorhandenen.