PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : FMS Crusader und MySQL



maniacb
09.08.2012, 16:51
Hey,
ich versuche mich schon eine geraume Zeit in das Thema "Weitergabe der
Daten an eine MySQL-Datenbank" reinzulesen.
Ich nutze FMS Crusader in der Version 4.7 auf einem Ubuntu 12.04...
Meine Frage wäre:
Wie kann ich, unabhängig von den erzeugten .cjf Dateien alle Ereignisse in eine MySQL-Datenbank übergeben?
Gibt es Möglichkeiten das ganze mit den "Externen Prozessen" zu realisieren?
Gibt es freie Plugins von Drittanbietern?

Danke für potentielle Info's & viele Grüße Jan

Amok
10.08.2012, 10:14
Interessante Aufgabe.

Schreib dir doch ein Bash-Script, welches ein SQL-Insert macht.
Dieses stellst du als externen Prozess ein und übergibst alle Parameter.

Dann kannst du sogar mehrere Spalten oder gar Tabellen füllen, wenn du es so brauchst.

mfg
Amok

maniacb
10.08.2012, 19:54
Hey Amok,
wie würde denn so ein Script aussehen?
Bin leider nicht der Bash-Experte...

Amok
13.08.2012, 14:00
Ungünstig bei Linux ;)

Also wenn du ne Datenbank (fms) mit einer Tabelle (fms) hast, sagen wir so:


CREATE DATABASE fms;
CREATE TABLE `fms`.`fms` (
`datum` VARCHAR(50),
`uhrzeit` VARCHAR(50),
`fahrzeug` VARCHAR(50),
`text` VARCHAR(50)
)


könntest du dir ein Script wie folgt schreiben:



#!/bin/bash

USERNAME=deinsqlbenutzer
PASSWORD=deinsqlpasswort
DATABASE=fms
TABLE=fms

mysql -u $USERNAME -p$PASSWORD $DATABASE -e "insert into $TABLE (datum, uhrzeit, fahrzeug, text) values('$1', '$2', '$3', '$4');"


und dieses dann als externen Prozess für alles angeben und natürlich die Parameter übergeben.

Oder z.B. mehrere Tabellen, eine für Texte (LST Status 10) eine für Alarmierungen, ... und und und...

Letztendlich hast du alle Möglichkeiten.

mfg
Amok

maniacb
19.08.2012, 00:04
Die Idee an sich ist gut, aber wo gebe ich den Server an wo es die Daten reinschreibt?
Falls es nicht Localhost ist ;)

Amok
19.08.2012, 10:04
Warum beschleicht mich gerade der Gedanke, ... das du dich noch nicht wirklich lange damit auseinander gesetzt haben kannst ^^



mysql --help


oder



man mysql


gibt dir die Antwort :P

Aber ich will mal nicht so sein ...



mysql -h 192.168.2.1 -P 3306 ...


würde zum Beispiel auf den Rechner 192.168.2.1 auf Port 3306 connecten.

mfg
Amok

schoepft
30.07.2013, 19:51
Hi,

ich habe versucht einen externen Prozess einzurichten um die Meldungen in eine Datenbank einzutragen.
Meinen Mysql-Query habe ich außerhalb von FMSCRUSADER getestet und er funktioniert reibungslos.
Ich bekommen nun jedoch eine Fehlermeldung, wenn ich die ".bat" Datei als externen Prozess einbinde.

Könnte vll. jemand erläutern wie genau ich die Datei einbinden sollte? Das Handbuch hat mir leider auch nicht weiter geholfen.

grüße

Amok
31.07.2013, 07:25
Klick im Client auf "Verwaltung" und dort auf "Externe Prozesse".
Im oberen Bereich klickst du mit rechts und wählst "Externer Prozess am ende hinzufügen" und dann "Default Prozess hinzufügen".
In der Maske klickst du dann auf "Pfad angeben" und wählst die Datei aus - Fertig.
Wenn du Parameter übergeben willst, kannst du diese noch in die Zeile darunter einfügen ($1 $2 $3 ...). Im Handbuch steht ja was die ausgeben bzw. kannst du auch per try´and´error herausfinden, was die Parameter ausgeben.

Dann baust du dir eine Aktion in dem du im unteren Feld auch rechts klickst und dann auf "Aktion am Ende hinzufügen".
In dieser Aktion stellst du deine Parameter ein (z.B. Schleife oder Fahrzeug usw.) und wählst deinen Prozess aus - fertig.

Wenn jetzt deine Bedingungen erfüllt werden, führt die Aktion deinen Prozess aus.

mfg
Amok

schoepft
31.07.2013, 18:36
Hi, danke für die schnelle Antwort.

ich bekomme leider immer noch die Fehlermeldung, das ein Fehler beim ausführen des externen Prozesses aufgetreten ist.

Hier der Inhalt meiner bat:
"C:\Programme\MySQL\MySQL Server 5.6\bin\mysql" --user=root --password=pass server -e "insert into tbl(ric, message) values('$3', '$4');"

Als Argumente übergebe ich $3 $4.

Die Aktion:
Richtung: LST
Status: 17
Fahrzeug: All

Amok
01.08.2013, 11:43
Wenn du das Script in der Konsole mit 2 Parametern aufrufst, wird es eingetragen?

mfg
Amok

schoepft
01.08.2013, 13:15
Ja, wenn ich es in der console ausführe funktioniert es.

Amok
02.08.2013, 08:10
Leg dein Script mal in den selben Pfad wie FMS und gib den externen Prozess Pfad relativ an, nicht absolut. Geht es dann?

Kann es sein, dass der Prozess keine Berechtigung auf die Datei hat (dein Script)?

Hast du mal die Endungen .bat und .cmd probiert?

mfg
Amok

schoepft
13.08.2013, 10:36
Vielen Dank für deinen Hilfe, ich habe das Script zum laufen bekommen.
Die TCP-Schnittstelle hat sich jedoch als zuverlässiger erwiesen.

MfG
Timo

Amok
13.08.2013, 12:19
Das heißt was? (TCP-Schnittstelle ?!?)

Was hast du getan (damit andere davon auch was haben)?

mfg
Amok