Posts by PhiWue

    Es Funktioniert!! Danke :D
    Also lag es daran, dass ich über Visual Studio beim Debuggen nur die LumosGUI.exe aufrufe und demnach nicht die Einstellungen aus dem Kernel abgerufen werden können. Wenn ich DMXControl ohne VisualStudio aufrufe, wird automatisch der Kernel gestartet und demnach hat es funktioniert.

    Da ich jetzt alles über GuiSettings mache, funktioniert es auch beim Debuggen.

    Hallo Soon,

    sorry für die späte Antwort, ich bin leider nicht eher dazu gekommen.

    Wo finde ich denn die ApplicationSettings.xml? Habe jetzt einfach mal DMX-Control deinstalliert und wieder neu installiert. Demnach müsste ja alles resettet sein und beim Anlegen der Einstellung diesmal ein bool Wert gesetzt werden. Trotzdem habe ich den gleichen Fehler. Ohne Debugging und Start über Visual Studio funktioniert es, anderenfalls nicht.

    Zudem wundert mich folgendes:

    Ich muss in dem Programm ja überprüfen, ob diese Einstellung überhaupt angelegt wurde. Dafür habe ich in einer if-loop nach der Neuinstallation mir einfach mal den

    Wert der theoretisch noch nicht existierenden Einstellung ausgeben lassen:

    Code
    var test2 = SettingsManager.getInstance().getSetting<bool>(ESettingsType.APPLICATION, "SchedulerAutoRun.SETTING");
    MessageBox.Show(test2.ToString());

    Hast du eine Idee, warum da "True" ausgegeben wird?

    Bzgl StackTrace:
    Habe einen Break-Point vor die Setting-Abrage gesetzt und die Aufrufliste kopiert. Meinst du das?

    Die Einstellung die ich gesetzt habe, kann ich nach einem Neustart von DMX-Control aufrufen (Siehe Quellcode button1_Click() ). Allerdings stürzt das Programm ab, wenn ich mir die Einstellung schon im Konstruktor der SchedulerForm (Hauptfenster) holen möchte (Quellcode SchedulerForm() ).

    Wieso ist das so? Bzw.: Wie soll ich damit am Besten umgehen? Die SchedulerForm() wird in der initializePlugin()-Methode aufgerufen. Wenn ich mir die Einstellung in einer dieser Methoden holen möchte, kann ich das PlugIn nicht mehr starten (wahrscheinlich weil die Initiailisierung nicht klappt)

    Ich möchte, dass die CheckBox direkt beim Start des PlugIns den vorher gesetzten Wert bekommt und auch entsprechend die anderen Klassenbibliotheken diese Einstellung aufrufen können, damit bspw. die gesetzten Termine die Lichtszenen auch ohne manuellen Aufruf des PlugIns starten.

    Code
    private void button1_Click(object sender, EventArgs e)
    {
    var test2 = SettingsManager.getInstance().getSetting<bool>(ESettingsType.APPLICATION, "SchedulerAutoRun.SETTING");
    MessageBox.Show(test2.ToString());
    }

    Dein Code in der chkbox_isSchedulerRunning_CheckedChanged sollte funktionieren. Aktuell schreibt er den Wert "17" und liest diesen auch wieder, oder geht das nicht?

    Ich habe jetzt meinen "Fehler" gefunden. Ich kann das anscheinend nicht über den Debugger in VisualStudio testen, denn dieser meldet einen Crash in folgender Zeile:

    Code
    SettingsManager.getInstance().setSetting(ESettingsType.APPLICATION, "SchedulerAutoRun.SETTING", 17);

    Wenn ich eine MessageBox nutze und DMX-Control ohne VisualStudio starte, erscheint die magische 17! :)

    Im Hauptfenster vom Scheduler soll eine Checkbox vorhanden sein, mit welcher ich den Scheduler an-/ausschalten kann. Diese Information soll als Einstellung in DMXControl vorliegen, sodass der Scheduler beim Start von DMXControl automatisch läuft oder halt nicht (abh. vom Status der CheckBox). Momentan wollte ich erstmal probieren, ob ich überhaupt eine neue Einstellung "SchedulerAutoRun" in der Kategorie "General" hinzufügen und entsprechend beschreiben/auslesen kann.

    Das Programm stürzt in der initializePlugin() Methode nicht ab, allerdings finde ich auch nicht die Einstellung im Reiter Settings-General.

    Wenn ich dann über das chkbox_isSchedulerRunning_CheckedChanged-Event einen neuen Wert setzen möchte, passiert nichts.

    Hallo Soon,

    habe das Anlegen der eigenen Kategorie erstmal auskommentiert. Die SettingsMetadata liegt jetzt auch im initializePlugin().
    Da liegt bei mir momentan auch noch das Problem. Bei mir klappt das Hinzufügen der neuen Einstellung in einer verfügbaren Kategorien nicht.

    Woher weiß ich denn, wie intern der Name bzw. die Zugriffs UID der SettingsNode lautet? Das bräuchte ich doch, oder?

    SchedulerPlugin.cs

    Code
    protected override void initializePlugin()
    {
    this._mySchedulerForm = new SchedulerForm();
    
    var metadata = new SettingsMetadata(ESettingsRegisterType.APPLICATION, "<General>", "<SchedulerAutoRun>", "<SchedulerAutoRun.SETTING>", "<AutoRun Scheduler>", null);
    
    metadata.Min = 0;
    metadata.Max = 20;
    SettingsManager.getInstance().registerGuiSetting(metadata, 1);
    }

    Und dann entsprechend bei SchedulerForm.cs

    Code
    private void chkbox_isSchedulerRunning_CheckedChanged(object sender, EventArgs e)
    {
    // Read and Write of Settings
    SettingsManager.getInstance().setSetting(ESettingsType.APPLICATION, "SchedulerAutoRun.SETTING", 17);
    var test = SettingsManager.getInstance().getSetting<int>(ESettingsType.APPLICATION, "SchedulerAutoRun.SETTING");
    }

    Vielen Dank für deine Hilfe und natürlich auch für die Glückwünsche ^^

    Hallo alle,

    momentan bekomme ich das irgendwie nicht zum Laufen, vielleicht mache ich etwas elementares falsch und einer von euch kann mir helfen :)

    Ich habe innerhalb meiner GUI für das PlugIn eine Checkbox, welche einstellen soll, ob der Scheduler an/aus ist (später soll also die Einstellung bool als value haben, fürs erste wollte ich aber überhaupt mal irgendeine Einstellung setzen können)

    Zusätzlich möchte ich in der PlugIn-Klasse entsprechend beim Start von DMX die Einstellungen initialisieren:

    Moin alle,

    Was benötige ich, um auf SettingsMetadata zugreifen zu können?

    Den gewollten Settingsmanager für die GUI habe ich in der Bibliothek "Lumos.GUI.Settings" gefunden.

    Bzw.: Kann mir jemand alle notwendigen Bilbiotheken für den Beispielcode schreiben?


    Code
    using Lumos.GUI.Settings;

    Also ich habe jetzt die Lösung meines Problems gefunden!
    Ich hatte im Quelltext über using eine Bibliothek benutzt, deren dll ich aber nicht in den GUI/PlugIn - Ordner gelegt habe!

    Jetzt funktionieren auch alle Buttons und ich kann ordentlich debuggen! ;)

    Dankeschön für die deine Hilfe mit dem Debugger!

    Hallo Soon,
    also das Debuggen von Visual Studio aus klappt jetzt bei mir einwandfrei beim KernelCloud PlugIn. Komischerweise habe ich seit gestern das Problem, dass ich den Scheduler nicht mehr im PlugIn Manager sehe, obwohl ich in meiner Erinnerung keine Änderung an der SchedulerPlugin.cs vorgenommen habe. Auch wenn ich eine dll aus einem älteren Stand meines Repositories nutze, funktioniert es nicht mehr ... . Über deinen Tipp mit dem Debugger wird immerhin die Methode initializePlugin() in SchedulerPlugin.cs aufgerufen. Mehr passiert dann aber nicht.
    Hast du eine Idee, an was das liegen könnte?
    Bisher habe ich folgendes probiert:
    - Projekt aus vorherigem (noch funktionierendem) Stand geladen und dll erstellt
    - DMXControl deinstalliert und neu installiert
    - Vergleich Zeile für Zeile mit dem KernelCloud
    - Überprüfung Properties ( .Net 4, Klassenbibliothek, Verweispfade GUI)
    - neue GUID

    SchedulerPlugin.cs

    SchedulerForm.cs

    Die größte Änderung, die ich gestern vorgenommen habe war, dass ich aus dem Kernel und GUI Ordner meine dll's gelöscht habe. Sogar wenn ich die gelöschten dll's im Papierkorb wiederherstelle, funktioniert es nicht.

    Vielleicht hast du ja noch einen Tipp.

    Hallo Soon,

    also wenn ich das Projekt innerhalb von Visual Studio lade und starte (ohne DMX Control), dann werden auch die Events durch die Buttons entsprechend ausgelöst. Wie kann man denn Debuggen, während DMXControl läuft? Ich hatte einen Tipp bekommen, wie man DMXControl von VisualStudio aus starten kann (Properties -> Buildereignisse und dann ein Postbuildereignis hinzufügen). Das bekomme ich aber derzeit nicht zum Laufen. Ist das der richtige Ansatz?

    Lg
    Philipp

    Hallo Community,

    bevor ich mein momentanes Problem beschreibe, ein kleiner Statusbericht:
    Außerhalb von DMXControl können jetzt Termine erstellt, editiert, gelöscht, geladen und gespeichert (XML) werden. Und so langsam bauen wir die einzelnen Projektteile zusammen. Es geht also vorran!


    Da ich nun den aktuellen Stand mal in DMX Control ausprobieren wollte, bin ich direkt auf das erste Problem gestoßen: die Buttons funktionieren nicht. Muss ich bei den Buttons innerhalb der GUI in DMXControl irgendwas beachten?

    Das sind die Fehler in DMXControl:


    Innerhalb der SchedulerPlugin.dll befinden sich zwei Formulare
    SchedulerForm.cs und AppointmentForm.cs
    SchedulerForm ist das Startformular und dieses wird auch erfolgreich in DMXControl geladen. Wenn der Button "Add" gedrückt wird, soll AppointmentForm geladen werden (ShowDialog() )

    Dankeschön im Vorraus,

    Philipp

    Code
    // Code in SchedulerForm
    private void btn_addAppointment_Click(object sender, EventArgs e)
            {
                new AppointmentForm().ShowDialog();
            }

    Hey Soon,vielen Dank für die schnelle Antwort!

    Ich hatte den falschen MenuType und zusätzlich die Funktion SchedulerForm_Shown() nicht implementiert. Aber jetzt läuft es!


    Hallo Community,

    im Rahmen eines Programmierprojektes möchten wir ein Scheduler Plugin für DMXControl3 programmieren. Der Scheduler soll bestimmte Lichtszenen aus DMXControl zu vom Nutzer definierten Terminen starten können. Die Termine sollen über eine GUI erstellt werden.

    Soweit so gut:
    Fürs erste habe ich versucht den ersten groben Entwurf der GUI in DMXControl anzeigen lassen zu können. Dafür habe ich mich am Kerne Cloud Plugin orientiert. Ich kann das Scheduler Plugin nun auch über das Plugin Management laden. Allerdings kann ich unter dem Reiter "Window" die GUI nicht auswählen. Genau das gleiche Problem habe ich aber auch beim Kernel Cloud Plugin.

    Habt ihr hierfür vielleicht einen Tipp für mich, wie ich eine einfache GUI (erstellt mit Windows Forms) in DMXControl laden kann? Ich hatte gehofft, dass das beim Kernel Cloud Plugin funktioniert, evt. ist das ja normalerweise auch so und ich vergesse nur was.

    Danke im Vorraus,
    Philipp