Jump to content

gmd

Mitglieder
  • Gesamte Inhalte

    400
  • Benutzer seit

  • Letzter Besuch

Beiträge erstellt von gmd

  1. http://vk6gmd.com/MBScompanion.mp4

    Hier ist ein movie der ein paar der implementierten funktionen zeigt. Habe einiges an fortschritt gemacht.

    Wesentliche ziele:

    Aufbau einer steuerung auf einer hoeheren ebene, die vorgefertigte bausteine verwendet die parametrisiert werden.. Dies beinhaltet schattenbahnhof steuerung, kopfbahnhofsteuerung usw. Bei allen anlagen faellt auf dass alle teilaspekte der steuerung sich immer wiederholen. Das ist jetzt keine kritik, viele anlagen die ich angeschaut habe sind wirklich toll gemacht, mit viel liebe zum detail und recht aufwendigen steuerungen. Aber es faellt eben auf dass zu wenig varianten implementierbar sind, weil es einfach zuviel aufwand macht. Das gleiche gilt fuer stellpult und auch rocrail. Man benoetigt einfach mehr tools, die implementierung von features vereinfachen. 

    Ein wesentlicher teil ist die namensvergabe. Wenn amn mehere tausend objekte auf der anlage hat (und ich meine damit gleise und weichen und nicht vegetation) dann ist es extrem muehsam alle zu benennen. MBS erzeugt keine eindeutigen namen automatisch. Gruppieren zu bloecken, zuordnen von kontakten, signalen usw. ist manuell. Das ist richtig aufwand. Bei einer realanlage verwendet man auch bausaetze und steuermodule und die wenigsten bauen sich ihre elektronischen module selbst sondern verwenden fertige bausteine. Das gleiche und mehr strebe ich an. Viele viel mechanismen, die ich hier noch gar nicht beschreiben kann, weil es einfach zu viel aufwand waere es zu diesem zeitpunkt zu erklaeren. Man muss es sehen, dann ist es einfacher. 

    Objekt gruppen verwalten um layer verwaltung zu vereinfachen, automatisch weichenstrassen abfahren und speichern, variablen dynamisch erkennen und anzeigen zur diagnose, detaillierte defaults fuer geschwindigkeiten etc. verwalten, und das alles als voraussetzung fuer eine automatisierte, interaktiver erstellung eines steuerpultes. 

    Das nur mal grob.

    Der movie zeigt einige beispiele aber das wesentliche ist, dass ale definitionen von einem lua script unterstuetzt werden, welches alle mechanismen automatisch auf der anlage umsetzen, wenn die name stimmen und die bloecke richtig definiert sind. Zuege konfiguriren, automatisch zum anfangspunkt setzen, fahrplaene definieren usw. 

    Naja mal sehen wie weit ich komme. Rocrail ist jedenfalls keine alternative mehr fuer mich, einfach zu muehsam.

    gruss

    gmd

     

     

  2. ok,

    hier ist was ich auf die schnelle gelistet habe. Natuerlich koennen viele dieser funktionen auf alle objektyypen angewendet werden. Habe ich jetzt nicht gelistet. Muss man mal formalisieren zur besseren uebersicht, aber wenigstens ein anfang:

    vehicle.variables
    vehicle.currentSpeed
    vehicle.targetSpeed
    vehicle.length
    vehicle.accelaration
    vehicle.deceleration
    vehicle.couplers[0]
    vehicle.couplers[1]
    vehicle.couplers[0].connectedCoupler
    vehicle.transformation
    vehicle.transformation.position
    vehicle.transformation.rotation
    vehicle:hasEngine
    vehicle.animations

    layout:getVehiclesOnTrack
    layout:getEntitiesByName
    layout:getEntitiesByKeyword
    layout:enumVehicles
    layout:time
    layout:getVehicleGroup
     layout:getVehicleGroupLength

    track.variables
    track.name
    track.state
    track.transformation:rotateZ
    track.transformation:rotateX
    track.transformation:rotateY

    signal.variables
    signal.name
    signal.state

    switch.name
    switch.state
     

    gruss

    gmd

     

     

  3. Hallo Neo, Goetz, 

    es gibt offensichtlich eine funktion setEntityName(), zumindest meckert der interpreter nicht. 

    Allerdings hatte ich keinen erfolg mit meinen versuchen. Was sind die parameter ?

    Und was sind die functions fuer das objekt layout ?

    Danke, gruss

    gmd

    Edit: Just for the record, es funktioniert mit der externen schnittstelle. Ich habe alle gleise einer anlage mit einem eindeutigen namen versehen. Waere halt gut zu wissen wie das aus lua geht.

     

  4. Ih weiss ni cht ob es dir hilft mit einer diagnose aber ich hatte auch problem mit der V5. 

    V4 ging auf anhieb ... V5 habe ich 5x (wirklich 5x) runtergeladen weil ich auch dachte es ist temporaer. Jedesmal ging es bis 100% hat aber nicht beendet und ist immer abgebrochen mit internet fehler. Ich habe eine 100MBit NBN leitung mit fix Ip, daran kann es nicht liegen weil zu der zeit nichts parallel lief. Ich habe parmanent eine 96Mbit average download speed. Ich hatte das problem behoben als ich eine VPN ueber deutschland benutzt habe. Ich denke es hat weniger mit deutschland zu tun als mit der geschwindigkeit, die ist ueber die VPN von der BRD drastisch geringer. Dann ging es sofort. Irgendein timing problem ? hast du was an der schnittstelle geaendert ? Ich habe das nicht weiter als wichtig empfunden da ja sonst niemand etwas berichtet hat. 

    gruss

    gmd

     

  5. Hallo Andy,

    Habe den naechsten schritt  halb fertig. Halb heisst die oberflaeche mehr oder weniger des definitionseditors. Jetzt kommt der datenanschluss(speichern und laden). 

    Ein paar feinheiten werde ich noch aendern und wahrscheinlich noch eine weitere eintrage, ist aber jetzt einfach. Dann kommt das inspector konzept (properties) fuer 

    alle elemente. Was noch etwas schwieriger werden wird ist einen weg zu finden, mit der "veralteten" schnittstelle die gleise und weichen auf der anlage automatisch zu benennen.

    Mit dem editor geht das automatisch, alle komponenten eines blocks werden automatisch erzeugt und benannt. 

    treeview.thumb.jpg.e51101843e63a9539dc5f7c3dd27d46c.jpg

    gruss

    gmd

     

  6. Andy,

    soweit alles behoben fuer den ersten schritt.

    http://vk6gmd.com/Block_Display.mp4

    Hier ist ein movie mit meiner testanlage und dem laufenden BlockMonitor. Block 5 wird ueberwacht (direkt ueber dem monitor fenster). Die linke led spalte sind die gleiskontakte, die rechte die gleise. Fahrzeug infor fuer bis zu zwei fahrzeugen (ermoeglicht lokwechsel). Spezielle filterbedingungen pro kontakt koenen definiert werden. Geschwindigkeiten und wartezeit kann eingegeben werden. Ich kann alle werte extern speichern und setzen. 

    Der naechste schritt ist die plazierung von rollmaterial zu definierten anfangszustaenden. Und dann geht es weiter.

    Gruss

    gmd

  7. Es ist tatsaechlich noch anders, war nur zufall mit dem dummy parameter.
    Die schnittstelle findet die variable nicht mit 61, nur wenn man sie vorher mit 62 gesetzt hat auch wenn sie bereits in Lua belegt wurde, dann geht es auch ohne dummy parameter.

     

    Andy,

    das stoert mich alles nicht, da ich alles uber objekt variablen simuliere die ja korrekt uebertragen werden. Damit is es leicht das protokoll zu ersetzen egal was kommt.

    gruss

    gmd

     

     

  8. Warum vergessen. Es funktioniert soweit, abgesehen von diesem bug. Vielleicht finde ich ja noch mehr. Mein Blockmonitor ist so gut wie fertig inclusive gleiskonstakte. Ich kann das jederzeit auf ein anderes protokoll umstellen wenn es soweit ist, dann wird das Lua script halt algepasst. Da ich das generisch loese ist das kein grosses problem. 

    Gruss

    Gmd

     

  9. Hallo,

    Habe probleme  mit Kommando 61. Wie wird der variablenname angegeben?

    61;Objektname.Variablenname  funktioniert nicht und 61;Modulvariable  funktioniert auch nicht 

    getestet mit putty  

    60;Objektname.Variablenname;Wert meldet die variable ja korrekt und ich gehe davon aus dass der variablen name 

    genauso einzugeben ist. Geht aber nicht, bekomme immer 0;Unknown ... usw
    Habe etliche variationen ausprobiert, ohne erfolg.

    Kommando 62 funktioniert wie erwartet.

    gruss

    gmd

     

    Work around:  Hatte nur mal aus interesse einen zweiten parameter angegeben (als wert) was ja unnoetig ist bei 61 und auch nicht angegeben. Das funktioniert. 
    Ist wohl ein bug.

  10. Martin,

    VisualStudio C# Community version. 
    Ich benutze das nur weil ich ein alte lizenz habe und weil ich viel UI teile bauen muss.
    Es ist nicht die einfachste umbegung aber leistungsfaehig wenn man nicht gerade eine 
    webapp baut.
    RocRail ist nicht nur aufwendig zu lernen sondern auch sehr muehsam zu bedienen.
    Ist halt uralt. Du kannst mira aber eine PN schicken dann gebe ich dir meine email.

    gruss

    gmd 

     

  11. Ich bin dabei das programm taeglich zu erweitern (nehme mir 1-2 Stunden pro Tag) werde aber nicht mehr posten. Das ist mir einfach zu bloede mit diesen besserwissern.
    Falls interesse besteht dann sende PN und ich werde  jeden persoenlich bedienen. Sind ja wahrscheinlich sowiso nicht viele. Das gleiche gilt in zukunft fuer meine LUA scripts und testanlagen.
    Ich sehe das als ob man jemandem 10 Euro schenkt. und man wird angemeckert wie man dazu kaeme oder warum es nicht 100 sind.

    gruss
    gmd

     

     

     

  12. 6 minutes ago, BahnLand said:

    Hallo gmd,

    Verstehst Du unter einer "Eisnebahnsteuerung von 1960" so etwas? :P

     

    Haha, neine ich meine eine wirkliche schaltwerk simulation nach dem vorbild mit allen mechanischen elementen und tast, nicht die modellvariante.

     

    6 minutes ago, BahnLand said:

    Baust Du dieses Tool ausschließlich für Dich oder möchtest Du dieses später auch den MBS-Anlagenbauern zur Verfügung stellen? Ist das dann ein Tool, das aus einer im Modellbahn-Studio gebauten Anage "mit einem Knopfdruck" einen fertigen Gleisplan erstellt, der dann gleichzeitig alle Funktionen eines Gleisbildstellpults für diese Anlage beinhaltet, oder muss man auf dieser Ebene dann erst einmal alle Schaltfunktionen "programmieren", die dann von diesem Stellpult aus an das Modellbahn-Studio zur Steuerung der Züge übertragen werden? Oder habe ich diesen Abschnitt von Dir ganz falsch verstanden?

    Ich mache alles open source, kein finanzielles interesse auch wenn man das mit EEP erreichen koennte. Wer interesse hat kann es benutzen.
    Der gleisplan wird nicht nach der anlage gebaut, das entsteht gleichzeitig oder auch nach dem anlagenbau wenn noch keine gleisbenennung stattgefunden hat. Die fahrwege wegen mit dem stellpult planer festgelegt, mit allen namen. etc. Die namen werden nach vorgaben generiert .Die MBS objekte werden danach benannt, die steuertabellen fuer die standard scripte generiert. So ist das gedacht. Werde ich an der kleinen demo anlage aufbauen und demonstrieren bevor ich an meine monsteranlage gehe.

     

    6 minutes ago, BahnLand said:

    Wenn ich Dich richtig verstehe, würdest Du gerne die 3D-Landschaft im Modellbahn-Studio nach bestimmten vorgegebenen Kriterien schichtweise von unten nach oben aufbauen lassen wollen, anstatt mit der heute vorhandenen Höhenfunktion Berg- und Tal-Formationen nach bestimmten geomerischen Vorgaben in die Landschaft zu setzen.

     

    Weniger gemeint als modellieren nach vorgegebenen profilen, mehr spontan und feinere aufloesung als das raster des hoehenprofils. 
     

    gruss

    gmd

     

     

  13. Hier ist die multi threaded version in C# mit dem event display in WPF. Die versionsnummer wird ausgelesen um das kommando senden zu demonstrieren. Es ist eine minimale version ohne viel schnickschnack. 
    Die naechsten schritte sind erstmal ein vernuenftiges filter einzubauen um die events zu sortieren und verarbeitbar zu machen.  Die einfache anzeige mit filter wird bleiben, auch mit dem stellpult, zum testen. In MBS kann man ja nur einen filterwert setzen, zumindest habe ich das so verstanden. Das reicht mir nicht.

    logProgram.thumb.jpg.10dfc7796a85eea1678a2ebee50038dc.jpg

     

    MBS_C#.zip

    gruss

    gmd

     

  14. 1 hour ago, Goetz said:

     

    Ich fände eine Machbarkeitsstudie dazu interessant. Und ich wäre neugierig, wie die Akzeptanz unter den Usern wäre. Würde es die Mehrzahl der User als Verlust empfinden, weil ein Teil des "Selbermachens" verloren ginge? Oder würde die Mehrheit erfreut sein, wenn sie eine Anlage nur bauen und bestücken, aber nicht verschalten müssten?

    Das ist genau mein ansatz. Von meiner seite brauche ich keine muehsamen einzeldefinitionen, das ist mir zu lamgwierig. Das "basteln" besteht ja auch nicht aus der benennung jedes einzelnen teils auf der anlage. Man installiert heute digital funktionsbausteine. Will man an der naehe der realanlage bleiben braucht man die simulation solcher bausteine. Das ist eine moeglichkeit. 
    Wenn einige sagen sie moechten so nah wie moeglich am basteln bleiben, dann moechte ich mal wissen wie sie ein gleisbildstellpult "basteln". Da geht es dann naemlich gleich los mit dem kompromiss, dass man doch einen pc benutzt und ein programm. Und dann wird es richtig muehsam mit den derzeitigen optionen. Ich habe mir alle gleisplan programme angesehen, die teuren und die freien. Schrecklich !  Lernintensiv, wenig intuitiv. Ich habe wenig interesse am beispiel einer eisenbahnsteuerung von 1960. 
    Ein definitions layer ueber der ebene die heute zur verfuegung steht mit einer script library in open source, die komplexere einheiten bedient. 
    Die ersten definitionen habe ich gerade fuer mich fertiggestellt und bin dabei einen gleisplan editor fuer mich zu bauen, der es mir erlaubt in kurzer zeit den plan fuer meine monsteranlage zu bauen. 

    Das eine schliesst das andere ja nicht aus, Grundversion, Steuerversion, Erweiterte Steuerversion kann separat angeboten werden. Wer die zusatzmodule nicht nutzen will, braucht dafuer auch nicht zu zahlen. 

    Fuer mich persoen;ich ist mir das ziemlich egal, das was ich aus der schnittstelle rausholen kann reicht weitestgehend fuer das was ich vorhabe. Ein paar punkte vielleicht die fehlen. Vorschlaege gehen mehr in richtung aufbau. Bessere unterstuetzung fuer oberleitung, und landschaftsbau. Ich wuerde gerne eine 3D brush sehen, die wie bei einem 3D printer das gelaende aufbaut, stattt die derzeit muehsamen methoden. 

    Wenn die schnittstelle noch ein klein wenig erweitert wird kann alles auf einer hoeheren steuerebene von einem externen programm erledigt werden.

    gruss

    gmd

     

  15. Hallo,

    habe einen anfang gemacht fuer meine eigene externe steuerung. Manche moegen fragen warum das rad neu erfinden, es gibt ja schon genuegend. Holzraeder, speichenraeder, gummiraeder, stahlraeder usw. Aber fuer den Mond buggy  musste man auch ein neues rad erfinden. 

    Vorhandene konzepte haben die eigenart die gleisplaene  alle auf dem kleinsten element aufzubauen, die einzeln plaziert werden. Das ist mir einfach zu muehsam. In der zeit in der ich eine anlage beschriftet habe und manuell einen gleisplan gebaut und alles definiert habe , habe ich mir auch ein programm gebaut. 

    entwurf_gleisbild.thumb.jpg.895875aa82e1b29fe8cc2e5ce7b75ee4.jpg

    Ich kann ganze bloecke definieren und plazieren mit vielen automatischen funktionen dahinter. Das alles in RocRail zu machen ist mir einfach zu muehsam und eine real anlage anzusteuern mit DCC ist auch keine rocket science. Falls ich jemals wieder eine real anlage baue, was ich vorhabe, dann sowieso mit arduinos und meinem eigenen netzwerk.

     Hier die specs, die ich als ausgangspunkt definiert habe.


    Streckenelemente
    Einfahren optional Sperrsignal
    Strecke     optional Vorsignal, optional Strassenkreuzung
    Bremsen 
    Halten mit/ohne Warten beinhaltet Hauptsignal
    Ausfahren

    Sonderelemente
    Ende- mit und ohne Wenden
    Kuppeln
    Identifizieren
    Rangierstrecke

    Weichenelemente
    Links
    Rechts
    Kreuz
    Dreiweg
    Schiebebuehne
    Drehscheibe
    Verbindung

    Blockelemente
    Ein blockelement ist eine kombination obiger Strecken- und Sonderelemente.
    Verbindungselement
    Ein verbindungselement ist eine kombination aus weichenelementen die mehrere blockelemente verbindet.
    Strassenelemente
    Eine kombination von block- und verbindungselementen die einen punkt zwischen A und B definieren.
    Anlagenabschnitt
    Ein teil einer anlage bestehend aus einem oder mehreren strassenelementen.

    Blocktypen
    Streckenblock
    Durchfahrtblock
    Umfahrblock
    Ausweichblock
    Parkblock
    Rangierblock
    Austauschblock
    Halteblock
    Einfahrblock
    Ausfahrblock
    Verbindungsblock  
    Endblock
    Ladeblock
    Serviceblock
    Trainingsblock

     

    • Jeder blocktyp hat bestimmte eigenschaften, die durch zugeordnete spezifische scripts implementiert werden. Es ist moeglich eine kombination obiger typen zu erstellen. Eigenschaften werden ueber inspektor fenster zugeordnet. 
    • Gleisplaene werden erstellt durch plazieren von block- und verbindungselementen. Einzelne strecken- oder sonderelemente gibt es nicht im gleisplan. Sie sind immer bestandteil eines blockelements. 
    • Jedes blockelement kann an jedem verbindungspunkt eines einzelelementes abgebogen werden (45 grad) um die gewuenschte geometrie the plans zu erzeugen. 
    • Verschiedene views auf den gleisplan koennen dynamisch gebildet werden. 
    • Die laufzeitumgebung unterstuetzt einen touchscreen fuer plazierungs und steuerungskommandos.
    • Blockelemente koennen farblich unterschieden werden und belegt- und reserviert anzeigen koennen ebenfalls durch verschiedenen hintergrund farben visualisiert werden. 
    • Fahrzeugbewegung wird durch animation angezeigt und wahlweise kann der fahrzeugname eingeblendet werden.
    • Signalstellungen werden innerhalb der streckenelemente angezeigt.
    • Fahrbefehle koennen ueber touchscreen eingegeben werden.
    • Es ist ziel die blockdefinition zuerst im steuerungsprogramm zu machen. Eine einzelne eingabe von gleisnamen und konatktname ist nicht erforderlich, diese werden automatisch erzeugt. Die namen werden automatisch in der MBS anlage geschrieben wenn ein "Trainingslauf" ueber den block stattfindet. Dadurch wird die verknuepfung zwischen steuerungsprogramm und anlage hergestellt. 
    • Zugkonfigurationen  koennen auf einem Trainingsblock ermittelt werden. 
    • Zuege koennen automatisch plaziert werden. Parken von unbenutzten zuegen auf einer parkflaeche ohne gleise ist moeglich.
    • Abrufen von zuegen von der parkflaeche ueber ein Einfahrblock und ablegen ueber Ausfahrblock. 

    Das ganze mache in C# mit  WPF

    gruss

    Gmd

     

  16. Die naechste version 5CB72297-8285-461B-A14F-B30EA6C50C48 Alle anderen sind entfernt.

    Mit weichenschaltung,
    geschwindigkeits parametern per block,
    wartezeiten per halteblock,
    automatische durchfahrtsanforderung

    Vor- und sperrsignale sind noch nicht versorgt, nur verbunden. Langsamfahrt erwarten und manuelles sperren eines einfahrtgleises wird noch irgendwann erweitert. 

    Das script wird als naechstes erweitert um mehrere anlagenabschnitte zu definieren. Jeder abschnitt kann bis zu 99 bloecke enthalten.
    Das kann allein durch definition der drei tabllen im hauptscript erfolgen. Programmierung ist nicht erforderlich. Derzeit is nur eine abschnitt definition unterstuetzt.

    Der naechste schritt muss sein diese tabellen auch durch ein interaktives tool zu erstellen ueber die externe schnittstelle.

    gruss

    gmd


     

  17. 9 hours ago, Henry said:

    Kannitverstahn --- Keine Ahnung was das Thema bewirken soll.

    ich halte mich zwar nicht für ganz blöd- aber ich passe hier bei dieser Darstellungsweise...

    so  aus der Luft gegriffen wirkt das gescriptete Zeugs so, daß sich der selbstverliebte Verfasser einen "Ich weiss aber mehr als Ihr Doofis" - Raum zur Selbstdarstellung reservieren möchte ...

    --- sorry --- so geht es nicht !!!!

    Hier lesen viele User mit, die sich ob der Lua-Kopflastigkeit des Forums nicht angesprochen aber überfordert fühlen.

    Schreib das bitte mal verständlich, im Bild, Wort und Beispiel. Wir möchten alle von Deinen Gedanken profitieren.

    meint momental grummelnd

    Henry

    Forum inhalte sollten nicht auf das kleinste gemeinsame vielfache reduziert werden. Solche posts verhindern dass man ueberhaupt etwas posted was ueber 1+1 hinausgeht.  Wenn du nicht einverstanden bist dann sende eine PN und poste so etwas nicht oeffentlich, macht dich nicht gerade sympathisch, wenn dir daran ueberhaupt etwas liegt.

    gruss

    Gmd

     

×
×
  • Neu erstellen...