Mikel_60 Geschrieben 1. Januar 2015 Geschrieben 1. Januar 2015 Hallo ,ich möchte Euch hier mein Projekt vorstellen: 'MBSControl'.Die Entwicklung von Programmen, die über die integrierte Schnittstelle des 3D-Modellbahnstudios, extern auf die Steuerung zugreifen ist noch zu sehr an die Konventionen der Schnittstelle gebunden. Das heist für mich, jedes Kommando muss in einen für das MBS lesbaren Text übersetzt werden.Beim Programmieren bremst mich das jedesmal aus, wenn ich sich wiederholende Abläufe bei jedem neuem Projekt immer wieder implementieren muss. Deshalb arbeite ich lieber mit einer Bibliothek, in der sich fertige Komponenten befinden und die das für mich übernehmen.Die Bibliothek wurde mit Visual-Studio 2013 Express und C# entwickelt, kann aber als DLL auch in anderen Programmiersprachen verwendet werden.Danke an EASY für die Unterstützung bei meinen Ersten Gehversuchen mit der Schnittstelle und den vielen kreativen Hinweisen für die Bibliothek.Die Bibliothek wird weiter wachsen, entweder mit Erweiterungen, die ich selber brauche oder was ihr vorschlagt.Als Dokumentation kann ich erstmal nur einen automatisch erstellten CHM-File anbieten, eine Kurzversion werde ich nach und nach im folgenden Beitrag erstellen. Dort wird ebenfalls ein Beispielprojekt zur Einbindung in ein C#-Projekt mit vorgestellt.Wer Fragen zur Einbindung in sein Projekt hat, oder auf Probleme stösst bitte hier im Beitrag posten, und/oder als PM an mich.Viel Spass wünschtMikel_60Mbscontrol_de.zipMbscontrol_dll_1.0.zip
Mikel_60 Geschrieben 2. Januar 2015 Autor Geschrieben 2. Januar 2015 (Wird nach und nach ergänzt!)Einbindung der DLL in ein C#-ProjektDie DLL in das Projektverzeichnis kopieren oder in ein zentrales Verzeichnis, zur Verwendung für mehrere Projekte. Zu References hinzufügen und dann deklarieren.Das Beispielprojekt kann dazu als Vorlage verwendet werden.###########################################################using MBSControl; // Die MBSControl DLL...namespace MBSClient{ public partial class frmMain : Form { private cMBS Mbs; // Mbs oder wie ihr es lieber nennt. public frmMain() { // Mbs wird als Instanz von MBSControl verwendet !!! Mbs = cMBS.Instance; // InitializeComponent(); ....##############################################################Auf die Bibliothek kann jetzt zugegriffen werden. Visual Studio zeigt automatisch eine Auswahl der verfügbaren Kommandos an. Um eine Bessere Übersichtlichkeit zu erreichen, wurden die Kommandos in Klassen (Gruppen) zusammengefasst. Ein Aufruf könnte folgender Maßen aussehen:List<string> list = Mbs.Object.GetList; // Liefert eine Liste aller Objekte im aktuellen Projekt. Für jedes Objekt den Namen als String.Die genauen Aufrufparameter für jedes Kommando und die Rückgabewerte sind in der bereits Oben eingebundenen Hilfedatei aufgeführt. Übersicht der Gruppen und verfügbaren KommandosCamera: Alle Kommandos, die sich auf die Kameras beziehenGetList, GetScreenshot, GetName, SetActive Control: Alle Kommandos, die sich auf Steuerobjekte beziehenGetList, GetType, GetValue, SetValue Engine: Alle Kommandos, die sich auf die Loks beziehenGetSpeed, SetSpeed, GetLightState, SetLightState GroupCommands // noch nicht direkt verfügbar zur Zeit in MBSControl Info: Infos 3D-ModellbahnstudioVersion, ApplicationPath Light: Beeinflussung der UmbebungsfarbenSetColors Objekt: Allgemeine ObjektkommandosGetList, GetType, GetPosition, SetPosition, GetRotation, SetRotation, GetScale, SetScale, GetSize, GetSelected, GetName, AddToGroup, Add, Clone, Delete, Rename, Group, Ungroup, Link, Unlink, GetLink, GetListOfAnimated, StartAnimation, StopAnimation, SetAnimation Projekt: Gibt aktuelle Einstellung zurück oder setzt sie.Id, Name, LengthUnit, AngularUnit, AnimationEnable, SoundEnable, AnimationStartOverTime Rail: Fast alle Kommandos zusammen die sich auf Gleise beziehen.GetList, GetType, GetCountOfTrack, GetLengthOfTrack, GetIndexOfActiveLane, ActivateLane RollingStock: Gibt Informationen über das Rollmaterial zurück.GetList, GetType, GetTrack, Signal: Fasst alle Kommandos, die die Signale betreffen zusammen.GetList, GetState, SetState Variable: Zugriff auf (Objekt-) Variablen.GetList, GetValue, SetValue Client: Zum Auf- und Abbau der Verbindung und auch zum direkten Senden und Empfangen von Kommandos und Rückgabewerten.Connect, Disconnect, [SendCommand, GetResultlist] http://www.3d-modellbahn.de/wiki/3415 ausführlich dokumentiert.Die verfügbaren Kommandos für SendCommand sind bereits in der Wiki unter MBS Demo C#-ClientIm Demo-Projekt sind die Grundlegenden Funktionen implementiert, um die Verbindung zum Modellbahnstudio herzustellen und die Events zu empfangen.Um die Einbindung der Kommandos besser zu Verdeutlichen, wurde eine kleine Beispielanwendung zur Verknüpfung von 2 Objekten eingebunden. Das Nebenobjekt wird an die selben Koordinaten, wie das Hauptobjekt platziert, lediglich die Rotation um die Z-Achse ist anpassbar. Ich nutze das zum Beispiel zur Platzierung von Beleuchtungen in Personenwagen.(Pause, geht Morgen weiter ...) Mbscontrol_demo.zip
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden