Ankündigung

Einklappen
Keine Ankündigung bisher.

Entwicklung / OLA + knxdmxd

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • makki
    antwortet
    Editor

    So, war eben mal ein bisschen auf der Suche nach Editor-Optionen (eigentlich für die CV stylings/mappigs..)
    Für den Anfang ganz praktisch (die //comments sind a bisserl invalid..): JSON Editor Online - Edit and format JSON data online

    Idee ist aber so nach Art XML/XSD das möglichst automatisch darzustellen, zu validieren etc;
    Dabei bin ich dann auf JSON Schema gestossen, sieht gut aus, Editor auch schon gefunden: https://github.com/exavolt/onde
    Das Gerüst des Schema kann man erstellen lassen: JSON schema generator

    Sieht nach wenigen Minuten dann wie im Anhang aus

    Makki
    Angehängte Dateien

    Einen Kommentar schreiben:


  • makki
    antwortet
    Zitat von JNK Beitrag anzeigen
    Was nimmst Du denn jetzt?
    Das darf ich erst verraten, wenns fertig ist
    Aber alles im vorhandenen Schema, es läuft Linux, OLA, knxdmxd, ...

    Makki

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Was nimmst Du denn jetzt?

    Einen Kommentar schreiben:


  • makki
    antwortet
    Packerl ist raus
    Zitat von JNK Beitrag anzeigen
    b) Der olad läuft als "user". "user" darf normalerweise nicht auf /dev/ttyACM0 schreiben, weil das Device root und der Gruppe dialout gehört. Also entweder user in dialout aufnehmen, oder chmod a+rw /dev/ttyACM0 (makki? Was ist eleganter und besser?)
    Auf mein bestreben hin (bzw. Patch) gibt es im aktuellen GIT (>0.8.18) eine compile-time Option "--disable-root-check" - ich nenne es "--halt-die-fresse-und-mach-einfach"
    Ich bin root, ich darf das; und wenn sich ein unbekannter unvertrauter Anwender an meinem WG anmelden kann, habe ich ein ganz anderes Problem, als das der meine DMX-lichter schalten kann..
    -> Auf dem WG&IP-E läuft ola als root (richtiges package pending) oder von mir aus wirds eben zur gruppe dialout hinzugefügt - bis wir die 17 anderen Probleme finden, das ist pillefutz dem olad zu verbieten was jeder machen darf..

    c) Aus unerfindlichen Gründen sendet OLA nicht den richtigen Terminator. Mit "stty -F /dev/ttyACM0 eol G" lässt sich das beheben. Dann erkennt OLA beim Starten das NanoUSB als Stageprofi USB.
    Ich hab meine NanoUSB gerade eingemottet, das wäre einen Bugreport wert.. Wär schon schöner wenn das ohne socat geht..

    Makki

    Einen Kommentar schreiben:


  • JNK
    antwortet
    So lange nix passiert, hier mal ein Update:

    A. Cues

    1.) Es gibt zwei Möglichkeiten für Fadetimes:
    a)
    Code:
    "fading" : {
      "time": <Zeit in Sekunden> 
    }
    -> das gilt dann sowohl für "Alles"

    b)
    Code:
    "fading": {
    "in" : <Zeit in Sekunden>,
    "out" :<Zeit in Sekunden>
    }
    -> "in" gilt für "alter Wert ist kleiner als neuer Wert", "out" entsprechend andersrum, es MÜSSEN beide definiert sein

    2.) Es gibt Delays:

    Code:
    "delay" : <Zeit in Sekunden>
    -> Nach dem Aufruf des Cues wird "delay"-Zeit gewartet, bevor mit dem Fade begonnen wird

    3.) Es gibt Waits:

    Code:
    "waittime" : <Zeit in Sekunden>
    -> "waittime" nach dem vorhergehenden Cue wird dieser aufgerufen

    B. Cuelists

    Es gibt drei Trigger:

    Code:
    "trigger" : { 
        "go" : { "knx" : <GA>, "value" : <GA-Wert> }, 
        "halt" : { "knx" : <GA>, "value" : <GA-Wert> }, 
        "direct" : { "knx" : <GA> } 
      },
    1. "Go":
    Go ruft den nächsten Cue der Cuelist auf. Das heisst, der nächste Cue wird aufgerufen. Hat der folgende in der Cuelist eine "waittime", wird dieser dann danach automatisch aufgerufen usw. Gibt es keine "waittime", wird die Abarbeitung der Cuelist unterbrochen und auf das nächste "Go" gewartet. Am Ende der Cuelist angekommen, setzt ein "Go" die Cuelist zurück und beim nächsten "Go" gehts wieder von vorne los. Ist der letzte Cue ein "link" auf den ersten, läuft die Cuelist in einer Schleife durch.

    2. "Halt":
    Hält die Cuelist an, und zwar genau vor dem nächsten Cue.

    3. "Direct":
    Erwartet als Wert eine Zahl, die eine Position in der Cuelist angibt. Der erste Cue ist 0, dann 1 usw.. Aufrufe mit Zahlen die höher als die letzte Cue-Nummer sind werden ignoriert.

    C. NanoDMX

    Ich habe ihn auch als Stageprofi-USB ans Laufen bekommen. Es geht wie folgt:

    a) In der "ola-stageprofi.conf" nur "device=/dev/ttyACM0" eintragen

    b) Der olad läuft als "user". "user" darf normalerweise nicht auf /dev/ttyACM0 schreiben, weil das Device root und der Gruppe dialout gehört. Also entweder user in dialout aufnehmen, oder chmod a+rw /dev/ttyACM0 (makki? Was ist eleganter und besser?)

    c) Aus unerfindlichen Gründen sendet OLA nicht den richtigen Terminator. Mit "stty -F /dev/ttyACM0 eol G" lässt sich das beheben. Dann erkennt OLA beim Starten das NanoUSB als Stageprofi USB.

    d) Es muss dann aber neu gepatcht werden z.B. "ola_patch -d 2 -p 0 -u 1" (oder was ola_dev_info auch immer behauptet wo das StageProfi sitzt.


    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • makki
    antwortet
    Ich habs mir schonmal aufgeschrieben

    Code:
    knxdmxd Editor
    
    • Fixtures (Leuchten)
    ∘ name
    ‣ Channels (Kanäle)
    • name
    • dmx
    • knx
    ‣ fading
    • knx
    • time
    • Scenes (Szenen)
    ∘ name
    ‣ trigger
    • knx
    • call
    ‣ channels
    • fixture
    • channel
    • value 0-255
    ‣ fading
    • in
    • out
    • Cuelists (Verläufe?)
    ∘ name
    ‣ trigger
    • go
    ∘ knx
    ∘ value
    • halt
    ∘ knx
    ∘ value
    ‣ cues (Sequenz)
    • name
    ∘ channels
    ‣ fixture
    ‣ channel
    ‣ value
    ∘ waittime
    ∘ fading
    ‣ time
    ‣ link (->cues->name)
    Die einrückungen klappen hier so nicht aber eigentlich einfach; ein kleines Backend (am ehesten PHP) das das lädt und speichert wäre einfach..

    Makki

    Einen Kommentar schreiben:


  • amaridian
    antwortet
    Wenn ihr mir die genauen Optionen für die Config-Files mal schickt (also was wo wie stehen darf und was nicht) kann ich gerne mal versuche das zu visualisieren. Ach ja... ein paar Ideen über die Visu-Umsetzung wären natürlich auch nicht schlecht. Im Moment hätte ich das grob gesagt so im Kopf:

    Liste für die direkten GA auf DMX Zuweisungen

    eine weitere Liste für die Szenen

    sowas wie eine Baumstruktur für die Cues

    Grüße
    Christian

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Ich hatte unordered_map verwendet. Allerdings hat das nicht so funktioniert wie es sollte, equal_range hat nicht alle Elemente der Map ausgespuckt, bei denen == wahr ist. Das ist zwar höchst seltsam (der iterator über die gesamte Map hat die Elemente natürlich ausgegeben und händisches vergleichen mit == hat auch zum Erfolg geführt, aber dann kann ich das komfortabler auch gleich selbst mit zwei deques machen und das ganze noch mit passenden Funktionen kapseln).

    Danke,

    der Jan

    Einen Kommentar schreiben:


  • do13
    antwortet
    Zitat von JNK Beitrag anzeigen
    An die automake-Experten: Wo kann man denn die Compiler-Optionen richtig einstellen? Ich habe jetzt

    Code:
    ./configure 'CXXFLAGS=-std=c++0x -O3'
    gemacht, aber das geht natürlich jedesmal bei ./configure wieder verloren.
    Was meinst du mit "geht jedesmal wieder verloren"? Einen configure Aufruf ohne CXXFLAGS?

    Du könnntest
    AM_CXXFLAGS = -std=c++0x -O3
    in das Makefile.am schreiben. Dann werden die Optionen übernommen.

    Welche Funktionen brauchst du denn von C++0x ? Bin mir jetzt nicht sicher ob das von allen gnu Versionen unterstützt wird.

    Dirk

    Einen Kommentar schreiben:


  • JNK
    antwortet
    An die automake-Experten: Wo kann man denn die Compiler-Optionen richtig einstellen? Ich habe jetzt

    Code:
    ./configure 'CXXFLAGS=-std=c++0x -O3'
    gemacht, aber das geht natürlich jedesmal bei ./configure wieder verloren.

    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • JNK
    antwortet
    @makki:

    "Stimmung" wäre das richtige Wort.

    @Gernot:

    Der Trigger geht so nicht, aber die Reihenfolge in der fixture-Definition ist egal.

    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • murelli146
    antwortet
    Hab jetzt die Cuelist getestet, ich komme aus dem staunen nicht mehr raus.

    Mir sind in der Beispielconfig zwei Fehler aufgefallen.
    Oder kann man die Zeilen so auch verwenden?

    fixtures
    Zeile 5
    Code:
     [SIZE=2]{ "name": "oben", "dmx" : "1.0", "knx" : "1/7/170" }, [/SIZE]

    scenes
    Zeile 22
    Code:
    "trigger" : { "knx" : "1/0/170", "call" : 1 },
    Gott sei Dank teste ich knxdmx bevor es ein GUI gibt, sonst wäre ich wieder zu faul mich weiter mit der Konsole zu beschäftigen.
    Ich lerne ja immer ein bischen dazu.

    Gruß Gernot

    Einen Kommentar schreiben:


  • makki
    antwortet
    Zitat von JNK Beitrag anzeigen
    Aber ich kann nur funktional, nicht schön.
    Hmm, das Problem teilen wir dann..
    Aber wenn ich mir den Sequenz-Editor eines konkurrierenden KNX/DMX-GW so ansehe, ehrlich (Alfred, wo ist das spuckeimer-smiley?): das bekommt keiner der Anwesenden - der auch nur eine Zeile Code schreiben kann - so hässlich und unintuitiv hin

    Ich erwische mich da halt gleich wieder auch an Qt zu denken (also eine Desktop-Anwendung für Win/Linux/Mac*), ist zwar evtl. nicht das richtigste aber sooo viel einfacher Und es sieht "aus der Box" gut aus..
    Der Overhead den aktuelle OS eh in Quadcores und GB verbraten, spielt da ja keine grosse Rolle..
    Aber jetzt werden erstmal Baustellen zugemacht, dann kommt der CV-Editor an die Reihe und vielleicht fällt bis dahin noch was schöneres ein..

    Makki

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Editor: da habe ich auch schon drüber nachgedacht. Gerade für Szenen und Cuelists wäre das praktisch.

    Aber ich kann nur funktional, nicht schön.

    Gruß,

    der Jan

    Einen Kommentar schreiben:


  • makki
    antwortet
    So wie Jan da Gas gibt, mach ich mir langsam Gedanken über einen (grafischen) Config-Editor
    Vorschläge wo man sich in der OSS-Welt etwas anlehnen/ausleihen könnte?
    Das config-Format ist ja schon optimal, was webbasiertes, entweder ins OLA oder iwie Standalone mit ein bisschen JS&PHP oder so.. (keine Angst: sicher nicht im Webmin )

    Makki

    Einen Kommentar schreiben:

Lädt...
X