Jump to content

Empfohlene Beiträge

Geschrieben

Hallo liebe Leute,
ich bin erst seit kurzem begeisterter MBS Fan und hab sofort das Potential entdeckt. Dabei ist mir die externe Schnittstelle ins Auge gefallen und ich hab mich etwas damit beschäftigt. 
Schlussendlich hatte ich eine Idee zu einer App mit der man in den Live Betrieb von MBS eingreifen kann.
Die App soll hauptsächlich für manuelle und halb/automatisierte Anlagen optimiert werden. Bedeutet, dass der Spaß am manuellen Fahren und Schalten im Vordergrund stehen soll. Dabei sollen mehrere Personen mit dieser App an einer Anlage gleichzeitig spielen können. 


Zurzeit besteht die App aus:

  • Rollmaterial Manager (Hinzufügen, Entfernen und Verwalten von Fahrzeug-Profilen)
  • Fahrzeug Controller (Steuern eines Fahrzeuges mittels Schieberegler, Schnellzugriff auf vier ausgewählte Fahrzeuge, Auswahl des Fahrzeuges aus allen Fahrzeug-Profilen)
  • Console zur manuellen Abfrage der externen Schnittstelle von MBS

Folgende Features sind geplant:

  • Drag n Drop In-App Editor für Steuerelemente (Buttons, Schieberegler, Gleisbildobjekte, offen für weitere Ideen) 
    • damit sollen Weichen, Signale und Steuerobjekte gesteuert werden
  • Steuerung für Kameras
  • Editor für Automatisierungen (niedrige Priorisierung, offen für weitere Ideen)

 

Einblicke in die App

home.thumb.JPG.98a734e6bb4509c226965537753b1c22.JPGmenu.thumb.JPG.3dc20fb27d77e29e011e441be656f0f5.JPGmanage.thumb.JPG.aa6106e9ee2524e5f05b44a97d0454ba.JPGadd-train.thumb.JPG.42a49ae8760cdd5af52c64b2bfeed577.JPGedit-train-profile.thumb.JPG.63573a36f830883c9daf0c217c75341e.JPG

 

control.thumb.JPG.6910d6e4a7b8c36f99a9b0ee03e950d0.JPG

 


Ich weiß leider nicht, ob jemand ein ähnliches Projekt macht, aber wenn Ihr Interesse habt, bin ich für jegliche Ideen und Vorschläge offen.
Je nach Nachfrage, kann ich gerne hier im Forum die Entwicklung dokumentieren. 
Wenn genügend Interesse besteht wird dieses Projekt öffentlich released, ansonsten sende ich die Releases an alle Interessenten, Helfern und Ideenbringer.

Liebe Grüße
Lukas :)    

Geschrieben

Hallo Lukas,

Willkommen beim MBS!

Mich als Entwickler des Studios freut es immer, wenn auch Programmierer den Weg hier her finden. Tatsächlich habe ich selber auch schon länger über eine Steuerungs-App nachgedacht, bei der per Drag&Drop Steuerpulte zusammengebaut werden können. Bisher habe ich die Ideen aber nie verwirklicht, weil mich die Entwicklung der Hauptanwendung voll einspannt.

Im Rahmen von V6 ist dann aber dennoch eine Steuerungs-App entstanden, die allerdings einen gänzlich anderen Weg geht und Kamerainhalte live streamt und Eingaben zurück an das Studio sendet. Damit habe ich eine große Abkürzung nehmen können, weil die App nur ein Thin Client für das Studio ist.

In der Hinsicht interessiert es mich sehr, in welche Richtung deine App gehen wird. Also gern weitere Fortschritte hier präsentieren.

Viele Grüße,

Neo

Geschrieben

Hallo Neo,
schön dich kennenzulernen! 

Mich begeistern das Projekt Studio sehr und ich finde die Perfektion und die Liebe zum Detail bemerkenswert. Das Programm läuft so stabil, es macht einfach Spaß damit zu arbeiten. Sehr lobenswert finde ich die Vorgehensweise das Programm mit der Community wachsen zu lassen. Es ist schön zu sehen, dass Schnittstellen und Importmöglichkeiten mit geplant werden. 

Grüße,
Lukas
 

Geschrieben

Hallo liebe Leute,
ich hatte etwas Zeit an der App weiterzuarbeiten und habe mit dem Editor angefangen.
Der Editor steckt noch in den Kinderschuhen und das Design sowie das Layout wird vermutlich noch sehr oft geändert werden. 

Kurze Entwickler Anekdote:
Damit man auf einem sehr kleinen Bildschirm, wie bei Smartphones der Fall, so viele Informationen und Schnick-Schnack wie möglich unterbringen kann, aber dabei die Übersicht nicht zerstört, müssen Komponenten in der App immer wieder reorganisiert und neu platziert werden. Dabei reichen oft kleine Neuerungen aus, dass ein großer Abschnitt neu angeordnet und untergeordnet werden muss.

 

Folgende Features habe ich für den Editor bereits entwickelt: 

  • Steuerelement Katalog (Elemente werden laufend weiterentwickelt und hinzugefügt)
  • Grundfunktion von Steuerelementprofilen
  • Einfaches Button Element (ohne Funktion)
  • Einfaches Standard Gleisbild Element (ohne Funktion)
  • hinzufügen von Elementen auf dem Editor Raster
  • verschieben von Elementen auf dem Editor Raster
  • Größe eines Elements ändern, durch ziehen am Eck des Elementes 
  • Möglichkeit zur Skalierung der Elemente (wichtig für eine Zoom Funktion des gesamten Gleisbildes)

 

Leider sind die Steuerelemente noch ohne Funktion und das wird auch noch eine weile so bleiben, weil der Editor noch einige Grundfunktionen benötigt.
Es steht noch einiges an Arbeit an. 9_9


Folgende Features werden als nächstes umgesetzt:

  • drehen der Elemente in 90° Schritten
  • Elemente selektierbar machen
  • Elemente mittels ziehen eines Rechteckes selektieren
  • Selektierte Elemente verschieben
  • ein aufklappbarer Bereich zum ändern der Eigenschaften eines selektierten Elementes

 

Weitere geplante Features für den Editor (niedrige Priorisierung):

  • duplizieren von selektierten Elementen
  • Zoom Funktion für den Editor und des gesamten Gleisbildes

 

Wenn die Entwicklung der Grundfunktionen des Editors fertig sind, werden nacheinander Steuerelemente hinzugefügt und mit Funktionen ausgestattet. 
Funktionen werden über die Eigenschaften des Elementes konfiguriert und somit mit MBS Objekten verknüpft. 

Einblicke in die Entwicklung: 

Example1.thumb.JPG.3b6f01f88ba24af0d534111902cd6ae1.JPG273994307_SteuerelementeKatalog.thumb.JPG.b0fd301c366e6c22281a767fb7760816.JPGPlatziermodus.thumb.JPG.80475b0ca653d7de25fe7394425f507d.JPGExample2.thumb.JPG.3a3b4075107159155b2102936d3ad99f.JPG

 

Liebe Grüße und schönes Wochenende,
Lukas :)

Geschrieben (bearbeitet)

Hallo liebe Leute,
ich habe wieder weitere Neuigkeiten zur App.
Der Editor hat seine Grundfunktionen erhalten und wird in nächster Zeit nicht mehr verändert. Im späteren Verlauf des Projektes werden die Funktionen eventuell noch angepasst oder weitere Funktionen hinzugefügt, um die Usability zu erhöhen.


Ist-Stand

Ich habe versucht die wichtigsten Funktionen umzusetzen.

Der Editor besitzt für den User nun folgende Features:

  • Steuerelement Katalog
  • hinzufügen der Elemente auf dem Editor Raster
  • entfernen der Elemente auf dem Editor Raster
  • verschieben der Elemente auf dem Editor Raster
  • drehen in 90° Schritten der Elemente auf dem Editor Raster
  • Größe eines Elements ändern, durch ziehen am Eck des Elementes 
  • selektieren einzelner Elemente
  • selektieren mehrerer Elemente mittels ziehen eines Rechtecks
  • verschieben einer Mehrfachselektion
  • Eigenschaftenbereich zum ändern der Eigenschaften eines Elements
  • Rückgängig und Wiederherstellen Funktion für alle Editor Befehle

 

Nächste Schritte

In den nächsten Schritten werde ich hauptsächlich weitere Steuerelemente hinzufügen. 
Nächste Schritte beim Editor:

  • weitere Elemente erstellen 
    • Weichen
    • Signale
  • Elemente mit Funktionen ausstatten
    • MBS Events
    • MBS Kommandos
  • Elemente mit weiteren Eigenschaften ausstatten
    • Farbe von Buttons
    • Schriftgröße von Buttons
    • Action eines Buttons
    • Signal und Weichen Eigenschaften
    • etc...
  • View Modus im Editor (um das Steuerpult direkt zu testen)
  • Steuerpult speichern (eventuell Autosave, ansonsten klassisches Speichern)
  • Steuerpult in den Editor Laden

Nächste Schritte in der App:

  • Eine eigene Seite um Steuerpulte zu verwalten (Es soll möglich sein, mehrere Steuerpulte anzulegen) 
    • hinzufügen
    • bearbeiten (öffnet den neuen Editor)
    • entfernen
  • Eine eigene Seite um Steuerpulte zu verwenden
    • View Modus für Steuerpulte
    • umschalten zwischen den Steuerpulten

Einblicke:
Wie üblich, ein paar Screenshots :)

21399267_SteuerelementeKatalog.thumb.JPG.c7352486170977fdff1411844b9b4803.JPGPlatzieren.thumb.JPG.986ad544ec8caf2a397dc498671bf07c.JPGEigenschaften.thumb.JPG.9b34cc1240caecceac6b4f225ac10d1a.JPG949762785_RechteckSelektion.thumb.jpg.cec67cc5aa6a05a9c967bc1d593fa3b5.jpg647482070_RechteckSelektion2.thumb.jpg.a3e6c76b6f550eaab2213a4f8893742e.jpg

 

Tester gesucht!

Die App wächst mit ihren Funktionen und die manuellen Tests werden immer länger. Ich möchte natürlich die Zeit in die Entwicklung stecken um einen schnelleren Fortschritt zu erreichen. Außerdem ist Feedback wichtig um die Benutzerfreundlichkeit zu erhöhen. Die Tester können natürlich neue Ideen für die App einbringen.  

Das Testen muss keinem Konzept folgen, einfach alles ausprobieren. Im laufe der Zeit werden auch immer mehr Funktionen verwendbar sein. 

Je mehr Leute desto besser.

Danke im Voraus!
 

Liebe Grüße und schönes Wochenende,
Lukas :)

 

 

Bearbeitet von luke
Layout Fehler
  • 3 Wochen später...
Geschrieben

Hallo Götz,
danke für deine Initiative, du bist der Erste der sich bei mir meldet.
Ich kann immer Hilfe gebrauchen. Wenn es Leute gibt die mir Feedback geben und wenn das Programm verwendet wird, motiviert es mich noch mehr daran weiterzuarbeiten. 
Ich habe in letzter Zeit nur etwas weitergearbeitet, leider nicht mehr so viel wie vor ein paar Wochen. 

Man kann nun Buttons mit Actions ausstatten und es gibt einen View-Modus im Editor. 
Aktuell gibt es nur eine Action und zwar jene um Weichen zu stellen. Weitere Actions werden folgen.
Es fehlt noch einiges damit man die Steuerpulte verwenden kann.
Ich verfolge gerade das Ziel Actions und Events soweit zu programmieren, damit man Weichen und einfache Gleise sinnvoll einsetzen kann. Deshalb werden weitere Action Funktionen zurzeit vernachlässigt und die Event Funktion programmiert
Folgenden Use Case möchte ich erreichen:

Eine Weiche soll alle Standard Funktionen abdecken, darunter ist enthalten:

  • Action zuweisen zum Schalten einer Weichenstellung (bereits bei Buttons möglich)
  • Event zuweisen zum Auslesen eine Weichenstellung (wenn sich die Weichenstellung in MBS ändert, soll dies auch sofort am Steuerelement sichtbar sein)
  • Event zuweisen für ZugAufGleis Rückmeldung

Das Konzept Events in der App abzubilden ist noch nicht ganz ausgereift. Es ist schwer alle unterschiedlichen Events mit UI-Elementen abzubilden, weil es so viele Möglichkeiten gibt. 

 Folgende Features sind in Umsetzung und Planung:

  • weitere Actions hinzufügen.
    • man kann zurzeit nur Weichen ansteuern. Das Konzept und der Code ist vorhanden und muss nur noch erweitert werden.
  • Steuerelemente mit Events ausstatten
    • das Event Konzept muss noch überarbeitet und entwickelt werden. Teilweise umgesetzt
  • speichern der Steuerpulte
    • der Speicher-Prozess soll bei jeder Änderung im Hintergrund geschehen, ich habe dabei noch kein Konzept oder technische Analyse erarbeitet. Das Speichern bei jeder Änderung stellt eine gewisse Herausforderungen dar. Natürlich werde ich mir vorhandene Konzepte ansehen. 
  • abrufen und darstellen der gespeicherten Steuerpulte.

 

Wie üblich ein paar Einblicke:
Actions1.thumb.JPG.a05881a4ad02c26beab6e3f342128a97.JPG295580364_Actionhinzufgen.thumb.JPG.dd3a4e41028b2e2a53e1614195ce15b6.JPG

 

Die nächsten Schritte werden Vorbereitungen für das Ausrollen an die Tester sein. 

  • Die wichtigsten Funktionen welche jetzt schon Spaß :D machen, nochmals durchchecken, damit ihr auch gut spielen könnt. 
  • Code in ein zentrales Git Repository hochladen
  • Installationsanleitung schreiben

Es handelt sich um eine NodeJS Anwendung. Die Anwendung startet einen Webserver, welcher lokal im Netzwerk von mehreren Geräten erreicht werden kann. 

Zurzeit wird die App für mobile Geräte optimiert. Optimierungen wie Shortcuts oder ähnliches für die Desktopnutzung werden im späteren Verlauf des Projektes realisiert. Dies bedeutet nicht, dass die App schon jetzt mit dem PC verwendet werden kann.

Für alle Interessenten werde ich das Git Repo freigeben um den Source Code einzusehen und um die App zu testen. 
Ich kann mir durchaus vorstellen den Code für alle einsehbar zu machen, aber bislang ist einfach zu wenig Interesse an dem Projekt.

@Schoki Ich werde dir den Zugriff auf das Git Repo (Source Code) per Privatnachricht senden.  

Die Installationsanleitung werde ich hier verfassen. 
 

Tester gesucht!

Bis jetzt ist dieses Projekt ausschließlich aus Eigeninteresse gewachsen. Ich werde das Projekt für mich auf jeden Fall weiterentwickeln. Jegliches Feedback motiviert mich dieses Projekt nicht nur für mich umzusetzen sondern auch für Leute die ebenso Freude daran haben.
Bei Interesse einfach bei mir per Privatnachricht oder hier melden. 


Schöne Woche,
LG

Lukas




 

Geschrieben

Hallo Luke - Herzlich Willkommen im Forum !

Nebenbei als Nutzer von 3D-MBS kann ich gern mich als Testuser bereithalten .

Wenn Neo als Programmierer sich freut so eine App , finde ich es auch Vorteilhaft zur Steuerung der eigene und anderen Anlagen .

Halte dein Ziel durch , denke auch an die Zeit die gebraucht wird und es geht viel Zeit darauf ( wie bei einer Anlage ) .

Es soll ja auch Spaß machen und kein Druck hervorkommen .

Modellbauer können gut mitreden , wie ein Modell an Zeit verbraucht , das es gut und zufrieden stellt .

Viele Grüße

H:xnS

Geschrieben (bearbeitet)

MBS Play – geschlossene Pre-alpha

Gute Nachrichten!
MBS Play startet in die geschlossene Pre-alpha.

Eine Anleitung und die Installationsdatei findet ihr hier zum Downloaden.
Anleitung:

MBS Play – Installationsanleitung 0.0.1.pdf

Installationsdatei:
MBS Play 0.0.1.zip
 

Möchtest du bei der Pre Alpha mit testen und spielen?
Interessierst du dich für MBS Play! Möchtest du die App ausprobieren, dann melde dich Einfach bei mir per Privat-Nachricht. 

Bearbeitet von luke
Anleitung angepasst
Geschrieben (bearbeitet)

Hallo Leute,

für die Pre-Alpha wird die Installation von "MBS Play" mit der "MBS Play - Installationsanleitung 0.0.1.pdf" erfolgen.
Wenn es Probleme gibt helfe ich natürlich gerne. Einfach bei mir melden!

Da es sich zurzeit noch um eine Pre-alpha handelt, müssen für "MBS Play" folgende Programme installiert sein:
Git und NodeJS

Die Installation beider Programme erfordert, lediglich das Klicken auf die "Next" Schaltfläche, bis der Installationsprozess startet.
Danach könnt ihr "MBS Play" mit nur einem Klick installieren.  
Alle Einzelschritte für die Installation von Git, NodeJS und "MBS Play" sind in der Anleitung enthalten.

Git könnt ihr hier herunterladen:
https://git-scm.com/downloads

NodeJS könnt ihr hier herunterladen:
https://nodejs.org/en/download/

Für die Pre-alpha wird ein Account bei GitLab benötigt. GitLab ist für unsere Verwendung vollkommen kostenlos. Du kannst dich hier bei GitLab registrieren:
https://gitlab.com/users/sign_in

Wenn du dich registriert hast, sende mir bitte deinen GitLab Usernamen im MBS Forum, damit ich dir das Projekt freigeben kann. Die Pre-alpha ist eine geschlossene Test-Version für alle Interessierte, die mithelfen möchten.

Bitte beachtet, dass es sich um eine Pre-alpha handelt. Ich habe die Installation vollautomatisiert und versucht so einfach wie möglich zu gestaltet, aber zurzeit müssen die beiden Entwicklungswerkzeuge Git und NodeJS manuell installieren werden. Wenn ihr Hilfe bei der Installation benötigt könnt ihr euch jederzeit bei mir melden. 

 

Nach der Pre-alpha folgt die volle Alpha Phase und anschließend die Beta Phase
Bei der ersten vollen Alpha Version, wird auch der Installationsprozess deutlich vereinfacht werden. Dann wird es nicht mehr notwendig sein Git und NodeJS zu installieren.  

Ich hoffe, euch gelingt die Installation! 

Grüße,
Lukas
   

Bearbeitet von luke
Geschrieben (bearbeitet)

Hallo Lukas,
vielleicht hättest Du ganz vorne darauf hinweisen sollen, dass man bei gitlab.com einen Account erstellen muß. An der Stelle habe ich nämlich gestoppt. Auch die Tatsache, dass man den Chrome braucht, gefällt mir nicht. Ich bevorzuge seit langem den Firefox. Schlimm, dass sowas Browser-abhängig ist. Schade, denn meine Anlage würde wahrscheinlich die höchsten Anforderungen an MBS-Play stellen. Wenn da alles läuft, wäre MBS-Play ein sehr starkes Tool. Aber an irgendeinem Punkt habe ich das generell mit Registrierei satt gehabt, harre nun der Dinge und werde wahrscheinlich am Ende heulen, weil viele Funktionen fehlen. Ich vertraue nun darauf, dass Götz ein waches Auge auf das Projekt wirft.

Gruß
  Andy

p.s.: es kommt ja noch schlimmer. Bin gerade auf der Seite GitLab Pricing...  was z.B. sind CI/CD minutes. Hätte man für alles nicht direkt die Express Version vom Visual Studio nehmen können? Node und GitLab ziehen sowieso deren Redistributables und offensichtlich andere Bestandteile davon.

Bearbeitet von Andy
Geschrieben (bearbeitet)

Hallo Andy,

schön dich kennenzulernen. Der Chrome Browser ist nur meine Empfehlung, wichtig ist nur ein moderner und aktueller Browser. Mit dem Firefox funktioniert es ebenso.

GitLab ist ein vollkommen kostenloser und vertrauenswürdiger Anbieter wie GitHub. Euch werden hier keinerlei Kosten erwarten. Das Preis-Modell ist für bestimmte Produkte. Es funktioniert z. B. wie bei Google. Der Account ist völlig kostenlos und man kann die Produkte kostenlos verwenden. Google bietet aber auch für einen bestimmten Preis mehr Speicherplatz, etc.

Ich verwende GitLab um das Projekt zu teilen. Ich arbeite hart an dem Projekt und habe bereits mehr als 150h investiert. Ich teile gerne meinen Code.

Das Projekt hat noch keinen Release und ist zurzeit nur für Tester zugänglich. Dazu wird ein GitLab Account benötigt, damit ich euch das Projekt freigeben kann. 

Wenn ihr Hilfe braucht dann meldet euch einfach bei mir. 

LG Lukas

P.S.: Mit der Express Version von Visual Studio installiert man sich oftmals mehrere Gigabyte. Das wird für dieses Projekt nicht gebraucht. NodeJS benötigt ein paar Megabyte und ist schnell installiert. Git wird nur verwendet um den Code zu teilen. Ich könnte euch den Code auch in einer ZIP Datei senden, aber mittels Git könnt ihr euch mit einem Klick neue Updates von "MBS Play" holen. 

Zu deiner Frage was CI/CD ist: 

CI/CD steht für Continuous Integration und Continuous Delivery. Das ist eine automaisierte Pipeline um neue Versionen schnellstmöglich aus einer Entwicklung zu den Testern und schlussendlich in Produktion zu bringen und das am laufenden Band. Alle große Firmen arbeiten damit. Für unser kleines "MBS-Play"-Projekt nicht notwendig. Eine Pipeline benötigt viel Rechenaufwand und man kann die Server von GitLab nutzen um dies zu erledigen, was mit CI/CD minutes gemessen wird. Dafür bezahlt man dann auch, wenn man diesen Dienst nutzt.

 

Bearbeitet von luke
Geschrieben (bearbeitet)

Hallo Luke,
ich warte einfach noch eine Weile, bis es den Account nicht mehr braucht. Interessiert bin ich in jedem Fall, guter Hoffnung auch, sonst hätte ich gar nicht gepostet.
Dass es zu Beginn noch typische StartUp-Probleme gibt ist klar. Das jetzt schon einiges an Arbeit drin steckt auch.
Hinweis für Andere: wer die Installationsanleitung nicht liest, sollte keine Häkchen setzen (ich habe dadurch den Chocolate noch installiert, was dann zwar allein durchlief, aber ewig und dann ist er noch an einer Stelle hängengeblieben, wo er eine Sicherheitswarnung für die Verwendung von 'Buffer' angemeckert hat.) Jaja - die DAUs.
Okay, wenn es mit Firefox auch geht, in der Tat nichts kostet und keine Nutzungslimits zu erwarten sind, sieht die Welt schon anders aus. Generell sind Git-Dinge ja eigentlich Open Source-Standards. Ich schau's mir heute nochmal näher an. Vielleicht registriere ich mich am Ende ja doch.
Ich habe die Visual Studio Community-Version 2019, wg. C++. Es wäre natürlich genial, wenn ich das dafür genauso verwenden könnte, ohne dass wir ständig Code mailen müssen. Aber das habe ich so noch nicht gemacht. Da muß man auch mitgewachsen sein, schwer nachträglich reinzukommen.

Gruß
  Andy

p.s.: Teamprojekte habe ich bislang nur über Dropbox gemacht.

Bearbeitet von Andy
Geschrieben

Hallo Luke,

ich habe noch keine Praxiserfahrungen mit Node.js gesammelt, aber braucht es für die Tester denn die Git-Infrastruktur? Kann man die "Webapp" nicht auf einem Server hosten, sodass die Tester eine Webseite besuchen? Es würde dann genügen, Node.js zu installieren, sodass die Webapp sich lokal mit dem Node.js-Server verbinden kann. Das umgeht das Git-Geclone.

Noch schöner wäre natürlich, wenn man nicht mal Node.js installieren müsste, sondern direkt eine Webseite aufrufen kann. Es wäre ein überschaubarer Aufwand, die Steuerschnittstelle auch per Websockets/HTTP-Requests ansprechbar zu machen, dann könnte man komplett in Javascript den Client schreiben. Wäre das für deine App interessant?

Viele Grüße,

Neo

Geschrieben

Hallo Neo,
der "MBS Play" Node.js Server wandelt mir die Steuerbefehle der TCP/SOCKETs von MBS in HTTP/Websockets um. Genau was du beschrieben hast mache ich bereits.

Das hosten einer allgemeinen Website finde ich eine spannende Lösung und kann für eine Release Version überlegt werden.
Da bleiben noch einige Fragen offen und es muss noch einiges durchdacht werden.
Die Umwandlung von TCP/SOCKETs auf Websockets müsste trotzdem am Rechner wo MBS läuft erfolgen.
Die schönste Lösung wäre wenn MBS selbst einen Web Server lokal startet und eine Websocket-Schnittstelle bereitstellt, dann müsste man gar keine Software zusätzlich installieren.

Kurze Erklärung:
"MBS Play" startet zurzeit einen Web Server, den man von mehreren Geräten im Netzwerk erreichen kann. Der Server wandelt die TCP/SOCKETs in Websockets um, stellt die Angular Web Anwendung über HTTP Port zu Verfügung und kümmert sich um die Speicherung der Daten mittels Embedded-Datenbank.

Bitte versteht mich nicht falsch:
Ich weiß, dass man die Installation vereinfachen kann und ich kenne auch mittel und Wege wie ich dies erreichen kann. Je nachdem welchen Release Weg ich wählen würde, würde mich das zwischen 3 Tagen und mehreren Wochen an Arbeit kosten. So weit ist das Projekt noch nicht. Deshalb suche ich Tester und keine User. Leute denen das Projekt am Herzen liegt und die das Projekt mit Ideen bereichern, bis man die Arbeit für jedermann bereitstellen kann. 

Es ist noch jede menge Arbeit und ich möchte euch gerne beim Entstehungsprozess mitwirken lassen. Sei es mit Testen, Ideen und Feedback oder wer möchte auch mit programmieren. Ich freu mich für jegliche Hilfestellung.
Ich möchte das Projekt nicht so schnell wie möglich releasen (an den Mann bringen) sondern ordentliche Arbeit leisten, damit man Freude daran hat. Ich zwinge niemanden sich bei GitLab zu registrieren.

Mir ist vorerst leider keine bessere Möglichkeit als Git für eine schnelle Test-Phase eingefallen, wo man automatisiert neue Updates abrufen kann. Ich könnte auch den Code mit DropBox teilen, dann müsste man DropBox und Node.js installieren.

Danke
Liebe Grüße,
Lukas
 

Geschrieben

Hallo Lukas,

das Studio ist ja bereits ein Webserver, wobei es technisch eher einem Telnet-Server gleichkommt, da ja bereits Netzwerkanfragen entgegengenommen und verarbeitet werden. Da die Schnittstelle eh demnächst überarbeitet werden soll (JSON-basiert statt Text-basiert), kann ich gern neue Verbindungsmöglichkeiten prüfen/einbauen.

In der Hinsicht kannst du dich weiter auf die eigentlichen Funktionen konzentrieren und erst wenn es ums Release geht, kann man die Situation neu bewerten, dann ist das Studio eventuell auch schon weiter.

Viele Grüße,

Neo

Geschrieben

Hallo Neo,
danke für dein Verständnis. Ich halte dich auf dem Laufenden. 

Eine Lösung in Verbindung mit dem Studio wäre für die Nutzer das einfachste. Ich kann dir jederzeit Auskunft über den Code geben und was die Anwendung benötigt für eine nahtlose Integration ins Studio. 

Freu mich schon auf die neue überarbeitete Schnittstelle. :P 

Grüße und frohes Schaffen,
Lukas :)

Geschrieben

Hallo,
haltet dieses Projekt unbedingt aufrecht, auch wenn es für Luke vielleicht bedeutet, dass er da mal eine Weile warten muß und für Neo kurzzeitig etwas Stress. Aber das Angebot für so eine App werden wir so oft nicht bekommen! Selbst wenn ich vielleicht ein Programm im herkömmlichen Stil hinkriegen würde, bei Webanbindung stehe ich wie der Ochs vorm Berg.

Gruß
  Andy

Geschrieben (bearbeitet)

Hallo Leute,
für jene die es geschafft haben die App zu installieren habe ich hier ein kleines Tutorial. 

Erste Schritte  
Sorge dafür, dass deine Anlage in MBS geöffnet ist.
Du siehst eine erfolgreiche Verbindung daran, dass der Anlagen-Namen auf der Home Seite angezeigt wird.
Home.JPG.12cfdee98dc977c1704a5ca7628b556e.JPG

Der erste Schritt ist es deine Loks in den Lokschuppen hinzuzufügen.
Navigiere zum Lokschuppen und klicke auf "Verwalten".
Lokschuppen.JPG.3ee4f17059d1a8c1b3ce183f526dd7b5.JPG

Klicke auf "Hinzufügen" um deine Lok in den Lokschuppen aufzunehmen
1922807424_Hinzufgen.JPG.7582fd7f8b093de4ba11fcb700a6d167.JPG
 

Du siehst nun eine Liste deiner Loks aus MBS. Wähle deine Fahrzeuge und Klicke auf "+"
Loks.JPG.b125e4217a2ea51bb37cc4aabf4f2893.JPG

Nun erscheint die Lok im Lokschuppen.
Lokschuppen2.JPG.10936374005c734b15f5672d96238770.JPG
 

Um nun die Lok zu steuern klicke auf "Steuern"
Steuern.jpg.45d2a8fae95e70d991fcfeb67f2b46b7.jpg

Wähle deine Lok die du steuern möchtest. Mit der Schaltfläche rechts oben "🠔" kann eine Lok gewählt werden. Klicke darauf und es öffnet sich deine Lok Auswahl.
162273413_Steuern2.JPG.646228142d16b00cd12450bb4a8220f9.JPG

Klicke auf eine Lok und schließe die Lok Auswahl wieder mit der Schaltfläche ""
1349203679_LokAuswahl.JPG.e3a54923d1aec1b6a6fb7463dcdc3c31.JPG

Du kannst nun mit dem roten Dreieck die Geschwindigkeit der Lok regeln. Schiebe den Regler nach oben und prüfe ob sich deine Lok in MBS bewegt.
Fahren.JPG.1974c809ea428a1d0ed9bedd77b6e1fe.JPG

 

Fahrzeug Schnellzugriff
Die Fahrzeug Auswahl, welche man mit dem Pfeil rechts oben öffnen kann ist zwar praktisch, da man hier alle Loks vom Lokschuppen einsehen kann, aber um am selben Gerät mehrere Loks einfach steuern zu können ist das Umschalten zwischen Loks bei einem prall gefüllten Lokschuppen etwas mühsam.  
Hierfür gibt es 4 "Fahrzeug Schnellzugriff" Buttons, welche mit Fahrzeuge belegt werden können.

Öffne die Fahrzeug Auswahl
162273413_Steuern2.JPG.646228142d16b00cd12450bb4a8220f9.JPG


Drücke nun lange auf eine Lok deiner Wahl bis sich ein weiteres Fenster öffnet.
1416008483_LokSchnellauswahl.JPG.7bc3024b28a5bd6eb5ec7e6ef50667e9.JPG 


In dem neuen Dialog könnt ihr das Fahrzeug zum "Schnellzugriff" zuweisen. Wählt eine der 4 Schaltflächen.

Zuweisen.JPG.b4af220683913a468838bfe5648d343b.JPG


Nun könnt ihr die Lok im Schnellzugriff auswählen.
486997189_Schnellzugrifffertig.JPG.b50e70bc5144e8c478a2f08ef3bb564f.JPG

 

 

Bearbeitet von luke
  • 9 Monate später...
Geschrieben

Hallo liebe Leute,
ich hatte wieder etwas Zeit an diesem Projekt weiterzuarbeiten, dabei habe ich speziell am Editor weiter programmiert und habe nun eine gute und eine schlechte Nachricht 9_9
Die gute Nachricht ist, dass ich folgende Punkte umgesetzt habe:

  • Event für Gleisrückmeldung
  • Event bei Änderung einer Weichenstellung
  • Action für das Ändern der Weichenstellung
  • Speichern und Laden des Gleisbildes

Somit ist es bereits möglich sinnvolle Gleisbilder mit Geraden, Kurven, Kreuzungen und Weichen zu bauen und diese auch zu verwenden. Alle Gleiselement zeigen die Gleisrückmeldungen an, die Weichenelemente zeigen die aktuellen Weichenstellungen an und Weichen können bereits über die Weichenelemente gestellt werden. 

 

Die schlechte Nachricht ist, dass ich den Editor versucht habe mit üblichen Web/HTML/SVG Bausteinen zu entwickeln. Ich war mir beim Start schon unsicher, ob es eine gute Idee ist einen Editor mit HTML und SVG zu bauen und habe mir schon gedacht, dass dies den Browser und seinen DOM an die Grenzen bringen wird.
Diese Methode war aber sehr verlockend, weil HTML Elemente bereits viele Funktionen mit sich bringen.

Also habe ich versucht mit dem Frontend-Framework Angular den Editor zu bauen, was dann auch funktionierte. Nur sind dann meine Befürchtungen Realität geworden und habe bemerkt, dass ein durchschnittliches Smartphone ein komplexes Gleisbild mit Events und Actions wegen der Rechenleistung nicht darstellen kann.    

Zuerst dachte ich, dass es am Framework Angular liegt und man nur optimieren müsste oder man vielleicht ein anderes Framework wie React oder Vue verwenden könnte, welche als schneller bezeichnet werden, aber die Nachforschungen zeigten, dass es eindeutig am enorm gewachsenen Browser DOM liegt und der Browser am Smartphone nicht mehr schnell genug damit umgehen kann.

Somit war mir klar, dass ich meine App auf diesen Weg nicht sinnvoll auf einem Smartphone zum Laufen bekommen würde.
Es muss die Engine gewechselt werden, trotzdem soll das Ziel weiterhin eine WebApp sein. Damit fällt Native Programmierung weg.
Deshalb habe ich mich für die Lösung Canvas/WebGL entschieden und so das Rendern der Elemente selber zu übernehmen. 
Damit sollte es kein Problem sein tausende Gleiselemente zu erstellen.

Jetzt versuche ich das Rendern des Gleisbildes mit dem (HTML5)WebGame-Framework Phaser3 zu entwickeln, was mich natürlich auf neue Herausforderungen stoßen lässt.
Phaser3 ist ein Framework welches die Canvas/WebGL Technologie verwendet.

Dies bedeutet auch, dass ich mit dem Editor fast von vorne Anfangen kann und sich die Entwicklung noch verzögern wird.
Ich bin optimistisch und bleibe trotzdem dran.

Für Interessenten kann ich gerne Screenshots der alten Version teilen, welche zwar funktioniert, aber nicht geeignet ist für Smartphones. 
Sobald neue Ergebnisse mit der neuen Engine vorhanden sind werde ich Screenshots davon teilen.


Liebe Grüße,
Luke
 

  • 4 Wochen später...
Geschrieben (bearbeitet)

Hallo liebe Leute,
ich melde mich wieder mit guten Neuigkeiten. :)

Ich habe die letzten Tage jede menge Arbeit in dieses Projekt gesteckt und konnte die Engine erfolgreich austauschen.
Das Gleisbild wird nun mit Canvas/WebGL Technologie gerendert, mittels dem Game-Framework Phaser3.
Ich konnte alle Funktionen wiederherstellen.

 

Kurzer Einblick in die Entwicklung

Was mich viel Zeit gekostet hat, war das Zeichnen der Komponenten sowie der Editor-Buttons und das Ausstatten von Funktionen wie Verschieben, Drehen, Skalieren.

Ein Screenshot am Anfang mit Phaser3:
Das ist ein Screenshot wie dies am Anfang mit Phaser3 ausgesehen hat:

Hier sieht man die Versuche, die Grundfunktionen zu programmieren.
Dabei habe ich vorerst nur mit einfachen Rechtecken gearbeitet, weil Texturen zu laden noch ein anderes Thema war, welches ich mir danach angesehen habe.

Am meisten Aufwand war das korrekte Positionieren und das Ausrichten der Elemente, hier war um einiges mehr Aufwand nötig als mit der Standard HTML/JS Technologie. Nachdem ich mit den Low-Level Problemen zurecht gekommen war, konnte ich jede Menge Code wiederverwenden, trotzdem musste auch einiges neu geschrieben werden und vieles kam sowieso neu dazu. So auch das Laden und Zeichnen der Texturen.

Am spannendsten war der Moment, als ich das alte Szenario laden konnte, wo die alte Version am Smartphone nicht mehr richtig funktionierte. Nach langer Arbeit, gelang es mir dies nachzustellen. Texturen waren gerendert und Gleisrückmeldungen wurden angezeigt. Es waren noch viele viele Bugs enthalten, aber ich hatte mein Szenario endlich laden können. Und siehe da! Es läuft flüssig, ohne Probleme, kein Ruckeln, kein Anzeichen, dass das Smartphone überfordert wäre. Das motivierte mich natürlich alle Bugs auszubessern und alle Funktionen wiederherzustellen.

Genug Entwicklerzeugs, nun ab zur aktuellen Version!
 

Das Gleisbild in neuem Glanz

Das Ergebnis möchte ich euch natürlich nicht vorenthalten, aber vorerst noch zu den Neuerungen.

Zu den Neuerungen:

  • Editor-Grid für leichteres Arbeiten mit dem Editor
  • Zoom Funktion mittels Scrollrad oder per Zoom-Gestik am Touchscreen
  • Verbesserungen für das Navigieren im Gleisbild
  • Verbesserungen für die Nutzung des Editors mit Maus am PC
  • Gleisrückmeldungen werden beim Laden des Gleisbildes abgefragt (ohne dieser Abfrage würden die Rückmeldungen erst bei Bewegung der Züge melden)

 

Einblicke in die neue Version:

Das Design, hat sich nicht nennenswert verändert, die Funktionen sind gleich geblieben. Mich hat begeistert wie flüssig und gut der Editor nun funktioniert, egal ob PC oder Smartphone.

1827235387_EditControlPanel.thumb.jpg.ab02975c6e834d8af34a044d2be80f3a.jpgWeiche1.thumb.jpg.6983f7bc8d2d117b24b8df35ac03730b.jpg

 

Im folgenden sieht man ein Beispiel, wie eine Weiche mit Funktionen ausgestattet wird.
Zuerst werden zwei Gleisrückmeldungen für beide Spuren der Weiche gesetzt und dann die Verknüpfung zur Weichenstellung, um die Weiche stellen zu können.
Weiche2.thumb.jpg.8fca585f3536c63bea8ced5e91e81a73.jpgWeiche3.thumb.jpg.2e627c88a9eabdef5642b491795cc5d0.jpg

Weiche4.thumb.jpg.1c26e387a4d4b8e449c4e28c79ef867b.jpgWeiche5.thumb.jpg.ffd2bb687c022c58ffb02282e8e59b52.jpg

 

 

Kleine Demo
Zum Abschluss noch eine kurze Vorführung wie eine Anlage mit MBS-Play gesteuert werden kann. Im Video ist links oben eine Screenaufnahme eines Smartphones zu sehen, welches das Steuerpult mit dem Gleisbild anzeigt.
Die Geschwindigkeit der Züge wird mit einem zweiten Smartphone gesteuert, nicht im Video zu sehen.

https://www.youtube.com/watch?v=SMGHrJjzXZ8
 

Schöne Feiertage, liebe Grüße
Luke

Bearbeitet von luke
Geschrieben

Hallo luke,
das sieht doch schon gut aus. Ich würde mir über die Qualität der Grafik zunächst keine Sorgen machen. Die Funktionalität ist wichtig, aufbrezeln kann später.
Wie schaut's denn generell aus, wird das möglich sein über Distanz mit mehreren Leuten auf eine Anlage im Netz zu gehen? Das muß auch nicht gleich sein, aber eine Option bleiben.

Dir auch schöne Feiertage und beste Grüße und Wünsche von
 Andy
Bleib gesund!

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...