API für Zugriff aus Webanwendung

  • Soon5

    Approved the thread.
  • Stand heute nicht, ist aber auf unserer langen ToDo Liste. Ist aber ehrlich gesagt weit hinten.


    Allerdings kann man ja selber ein Plugin schreiben, welches die relevanten Funktionen als REST API zur Verfügung stellt. Man müsste quasi den "Server" Teil noch als DMXC3 Plugin selber entwickeln.

  • Ok. Das ist eigentlich gar keine so schlechte Idee.

    Wäre das dann ein Kernel- oder ein GUI-Plugin?


    Gibt es irgendwie Programmier Beispiele?

    z.B. Alle Devices auflisten.

    1 Device markieren.

    Bestimmte Properties wie z.B. Position eines Device ändern.

    Presets auflisten

    Preset Bearbiten etc....

  • Schau dir mal den Post an. Da hat jemand ein Plugin geschrieben, dass in etwa das gleiche macht wie du, und da sind auch Codebeispiele drin.


    Presets mir touchOSC


    Ich würde es als Kernel Plugin schreiben, weil du brauchst ja nicht den extra Weg über die GUI gehen. Hast du dir schon Gedanken über den Technologiestack gemacht? Wenn du für C# eine REST Schnittstelle schreiben willst, kann ich das OWIN Framework empfehlen, aber es gibt sicher auch andere.


    EDIT: Ich sehe gerade dass die meisten Code Beispiele sich auf ein GUI Plugin beziehen. Macht aber nix, sag mir was du brauchst und ich Poste dir ähnlich wie in dem anderen Thread entsprechende Code Snippets.

  • Hallo,


    Über das Framework hab ich mir noch nicht wirklich Gedanken gemacht. Aber ich werde wahrscheinlich auf deinen Vorschlag eingehen.


    Am Ende soll man mit der Webanwendung CueLists und Presets bearbeiten können, also ähnlich wie das verlinkte Thema von dir.


    Dann bräuchte ich für den ersten Schritt erst einmal 3 Befehle:


    1. alle Devices/-Groups laden und in meiner Webanwendung anzeigen.

    2. Devices/-Groups markieren

    3. Properties des markierten Device ändern -> z.B. Farbe, Dimmer, Position (irgendwann dann auch mal Effekte)

    4. Der Befehl Programmer löschen wäre vielleicht auch noch nützlich. Oder ist der Programmer eine Gui Funktionalität? ;)


    Das soll im Prinzip eine vereinfachte Darstellung der StageView sein.

    Wenn das Ganze funktioniert wäre der nächste Schritt:

    Alle CueLists anzeigen. 1 CueList auswählen und dazu alle Cues auflisten. Bestimmtes Cue in Programmer laden und bearbeiten und wieder wegspeichern.

    Aber dazu komme ich später ;)

  • Hallo!


    An dieser Stelle wäre vielleicht noch interessant zu wissen, was dein gewünschtes Einsatzszenario für die Webanwendung sein soll (also nicht die Funktionen selbst) sondern das drum herum und wer die Web-Anwendung bedienen soll. Die Frage stelle ich deswegen, da sich aus dem Einsatzszenario ggf. noch weitere Tipps für die Entwicklung ergeben.


    Viele Grüße, Stefan.

  • Der Client könnte entweder Smartphone oder PC sein.

    Das ganze sollte eine Angular Anwendung werden, die über das Framework Ionic auf mehreren Plattformen läuft.

  • Inwiefern macht das ein Unterschied bei der Netzwerkunterstützung?


    Wie kann ich das verstehen mit der Netzwerkunterstützung?


    Sorry für die Fragen bin noch Anfänger in dem Bereich

  • Naja, DMXControl 3 unterstützt von sich aus ein Client - Server Model. Dazu installierst du DMXC 3 auf beiden Rechnern, startest auf dem Server aber nur den "Kernel" auf dem Client startest du die GUI und verbindest dich per Netzwerk auf den Kernel. Ergo für den Fall, dass dein Client ein vollwertiger Rechner ist, must du gar nichts programmieren.

  • OK. Ja arbeite mich gerade im Angular ein und mir würde da so eine Testanwendung schon gefallen.

    Wie sehen die Befehle aus die ich brauche?

  • Hi,


    ich baue das ganze jetzt doch anders auf.


    Bräuchte folgende Codes:


    1. Alle CueLists auflisten
    2. Alle Cues einer Cuelist auflisten
    3. Cue in Programme bearbeiten, bzw. alle gespeicherten Props einer Cue laden
    4. Dann will ich einfach nur die Props in einem Grid anzeigen und die Werte in meiner Anwendung verändern => Deswegen brauche ich dann nur den Befehl für Props des Programmer in CueList ersetzen.
  • Danke :)


    Was muss ich hier machen:

    Bei der Stelle


    Code
                //Zuerst muss eine Session angelegt werden (ähnlich wie eine GUI die sich verbindet)
                ISession s = SessionManager.getInstance().registerSession("WebApp", new string[] { Dns.GetHostName() }, EConnectionType.INTERNAL);

    kommt folgender Fehler:


    IGuiSession IGUISessionManager.registerSession(string name, string[] hosts, EConnectionType tyoe)

    Der Typ "ord.dmxc.lumos.Kernel.GUISession.IGUISession" kann nicht implizit in "rd.dmxc.lumos.Kernel.GUISession.ISession" konvertiert werden.



    Wie bekomm ich da ne ISession?

    Kann ich hier einfach über (ISession) zurück casten?

  • Folgendes Satz hab ich beim Fehler vergessen:


    Es ist bereits eine explizite Konvertierung vorhanden (möglicherweise fehlt eine Umwandlung)

  • Funktioniert wunderbar. Danke :)


    Mein Ziel ist alle Eigenschaften in der Webanwendung die in einer Cue drin sind aufzulisten und einfach nur die Werte manuell zu Ändern.

    Bei ganz normalen Positionen und Farben weiß ich wie ich das mache.


    Aber wie bekomm ich das mit den Effekten hin? Wenn z.B. auf Tilt ein Sinus Effekt liegt.

  • Wie kann ich, wenn die einzelenen Einträge, inkl. Effekten im Programmer auslesen?


    Soweit bin ich schon. Aber ich möchte hier auch die Effekte anzeigen, quasi die Programmer Ansicht von DMXC3 nachprogrammieren + die Effekte mitanzeigen.

    Code
                System.Collections.ObjectModel.ReadOnlyCollection<org.dmxc.lumos.Kernel.Scene.Entry.ISceneEntry> sceneEntries = MySession.SessionProgrammer.EditScene.SceneEntrys;
                foreach(ISceneEntry sceneEntry in sceneEntries)
                {
                    
                }


    Kann mir jemand helfen?

  • Newly created posts will remain inaccessible for others until approved by a moderator.

    The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.