de:Plugins:MySQL - Schrolli91/BOSWatch GitHub Wiki

Plugin: MySQL

Realisiert die Anbindung an eine mySQL-Datenbank.

Voraussetzungen

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

Hinweis: Beim Einspielen der Datenbank-Datei wird das Passwort für den Benutzer 'boswatch' auf 'root' gesetzt.

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.

# Verbindung zur Datenbank und auswahl der Datenbank
dbserver = localhost //Datenbankserver - IP oder 'localhost'
dbuser = root //Datenbankuser
dbpassword = root //Passwort für Datenbankuser
database = boswatch //BOSWatch Datenbank

# Datenbanktabellen für FMS/ZVEI/POCSAG
tableFMS = bos_fms
tableZVEI = bos_zvei
tablePOC = bos_pocsag
table = bos_signal

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

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

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

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

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.