Das sind aber meiner Meinung nach alles Dinge, die man im Nachhinein ändern kann. Mit der prinzipiellen Funktion eines Plugin Systems hats ja nix zu tun. Ob ich die Module nun EINMALIG lade oder öfters. Würde erst mal priorisieren das so umzusetzen, dass der Code ausgelagert ist, und es funktioniert.
Dann kann man über den "produktiv" Feinschliff nachdenken, oder hast du da eine andere Meinung?
Gruß
Nein, ich hätte ja noch kleiner mit Funktionen angefangen, bevor ich die Funktionen in Module ausgelagert hätte. Deswegen habe ich nichts gegen schrittweise Vorgehen.
config.ini
Pflicht für Plugin-Name: MySQLCode:useMySQL = 1
Plugins ausführen:
Edit: Fehler im Code bereinigtCode:for i in pluginloader.getPlugins(): if int(config.get("Modules", "use"+i["name"])) print("Loading plugin " + i["name"]) plugin = pluginloader.loadPlugin(i) plugin.run()
Wäre die minimale Anpassung config.ini um eine neue Zeile ergänzen.
Geändert von JHC (18.05.2015 um 10:40 Uhr)
Oke das würde ich so kaufen :-D Die Idee ist gut. Ich mach mich später mal dran, das Grundlegende einzubauen.
Naja wir machen jetzt ja nichts anderes, als die Dinge in eine Funktion zu packen. Nur das die Funktionen jetzt eben driekt in eigenen Dateien liegen :-) Und bis auf die paar Zeilen loader Srcipt ist es ja kein Unterschied...
Würde das wohl reichen, jedem Plugin folgende 6 Daten zu übergeben, oder hab ich was wichtiges vergessen?
Code:ZVEI: ===== typ = zvei time = datetime frequenz= empfangsfrequenz data1 = zvei code data2 = data3 = FMS: ==== typ = fms time = datetime frequenz= empfangsfrequenz data1 = fms kennung data2 = status data3 = richtung POCSAG 1200: ============ typ = poc1200 time = datetime frequenz= empfangsfrequenz data1 = ric data2 = sub_ric data3 = text
Moin, moin,
1.) Warum die Zeit übergeben? Wird ja nicht "über Funk" übertragen. Ermittlung wenn nötig im Modul, bzw. bei MySQL die DB machen lassen.
2.) Ist später eine Unterscheidung in POCSAG 512/1024/2048 nötig?
Wird doch nur für die Stringzerlegung benötigt.
Ich würde nicht data1-3 nennen, das finde ich zu unverbindlich.
Bisher werden im Script id, function/status, msg/richtung genutzt.
Wenn inhaltlich etwas anderes genutzt wird, müsste man in meinen Augen auch einen neuen Parameter definieren.
Grüße
Jens
1.) Macht Sinn, die zeit kann wirklich weg...
2.) Hab hier kein Pocsag, und kenn mich damit auch nicht aus. Keine Ahnung inwiefern eine Unterscheidung im nachhinein nötig ist.
Die Daten werden an die Plugins ja auch nur an eine Funktion übergeben. Also brauchen wir eine FEST definierte Anzahl an Parametern. Und wie die dann heißen ist eigentlich egal, das ändert sich ja auch nie mehr, denn dann müssten alle Plugins umgeschrieben werden.
Oder wie sollte ich sie denn sonst nennen, um die Daten an die Plugin.run() zu übergeben?
Geändert von Schrolli (18.05.2015 um 14:04 Uhr)
Servus zusammen,
JHC und ich entwickeln zusammen gerade an einem Plugin-System für BOSWatch.
Also nicht das Ihr denkt, hier geht nix weiter. Wir koordinieren uns nur privat, da es viel zu viel zu besprechen gibt.
Das ganze arbeitet inzwischen auch recht sauber.
Wir beginnen jetzt die einzelnen Module zu programmieren.
Vorgesehen sind aktuell auf jeden Fall:
- MySQL
- BosMon
- HTTP-Request (einacher URL Aufruf, evtl mit Parametern)
Evtl gibt's ja noch weitere Wünsche, deren Umsetzbarkeit man prüfen sollte?
Gruß Basti
Also ich würde ein SMS ein/ausgang interessant finden und auch ein Pushbullet.
SMS eingang deshalb, wenn die Leitstelle eine SMS versendet, dass diese mit in die DB kommt, und evtl auch weitergeleitet wird, anhand von Daten: Uhrzeit/Stichwort/Ort.
Geht evtl. auch eine Threema und WhatsApp Anbindung?
--> Ihr seid gut! [:)]
SMS Ausgang wäre normalerweise per HTTP-request erledigt, da so ziemlich jeder Anbieter so versendet.
Dieses Pushbullet muss ich mir mal ansehen...
SMS Eingang geht am Sinn der Software vorbei, da sehe ich aktuell einfach keinen Sinn
BOSWatch ist ja ursprünglich nur ein Script um den Multimon-NG Datenstrom auszuwerten.
Threema und WA geht meines Wissens nicht so einfach, und das ist auch gut so. Es gibt keine öffentlichen APIs - zwecks Sicherheitsaspekten.
Gruß
Geändert von Schrolli (20.05.2015 um 15:43 Uhr)
So,
im Master-Branch liegt jetzt erst mal eine aktuelle Version.
Im Moment arbeitet nur das MySQl Plugin. BosMon sollte bald folgen.
https://github.com/Schrolli91/BOSWatch
Wenn Fehler gefunden werden, entweder hier, oder gleich auf Github per Issue melden :-)
Und bitte bei Fehler mal ins Logfile schaun (logs/boswatch.log) und ggf. die letzten paar Zeilen kopieren.
Feedback erwünscht... ;-)
Gruß Basti
@Smith: Wo ist eigentlich der Unterschied zwischen Pocsag512, Pocsag1200 und Pocsag2400 zwecks Auswertung? Nur weil 512 eine Stelle kürzer ist als 1200/2400 ? Oder woran liegt das, dass es dafür 2 getrennte Auswerte Zweige gibt (512/1200)
Geändert von Schrolli (21.05.2015 um 10:20 Uhr)
Vielleicht könnt ihr Telegram anstatt Whatsapp oder Threema nutzen?
https://core.telegram.org/api
Hey Jungs, könnt ihrbdie Zeit nicht wenigstens optional für POCSAG drin lassen? Bei uns wird hier die Leitstellenzeit mitgeschickt. Fürs ETB ist es immer ganz gut wenn man hier nochmal nachschauen kann und dann definitiv die Zeit der LST mit drin hat.
Habt ihr schon was um POCSAG Doppelalarmierungen abzufangen? Hab hier bei mir mal was proprietäres eingebaut was ganz gut funktioniert auch wenn blockweise mehrere Rics Durcheinander reinkommen. Falls gewünscht kann ich Euch den Code mal zukommen lassen auch wenn dieser sicher noch verbesserungswürdig ist.
Gruß
Ich persönlich kenne Telegram nicht, dementsprechend auch niemand der es nutzt.
Von daher sehe ich nicht unbedingt einen Nutzen für mich, mir da jetzt die Arbeit zu machen. Aber die Plugin Schnittstelle ist dokumentiert, es kann also gerne jeder selber ran und versuchen :-)
In welcher Form wird die denn mitgeschickt? Die Plugins ermitteln die Zeit ja selbst, und die dürfte sich von der LST Zeit kaum unterscheiden. (1-2 sek evtl)
Gerne, anpassen kann ich zur Not immer noch ;-)
Gruß
Geändert von Schrolli (22.05.2015 um 08:33 Uhr)
Aktive Benutzer in diesem Thema: 2 (Registrierte Benutzer: 0, Gäste: 2)