Jump to content

Chris

Mitglieder
  • Gesamte Inhalte

    2
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Chris

  1. Hallo, Danke für das Feedback! Interessant zu hören, dass für v5 Scripting mit Lua vorgesehen ist, was sicher mehr möglich macht als was die Ereignisverwaltung hergibt. Ich habe bisher nicht den Eindruck, dass ein Java API herbeigesehnt worden ist :-) Ich werde trotzdem weiter daran arbeiten, weil das schon für meine eigenen Spielereien mittlerweile eine sehr nützliche Grundlage ist. Ich denke auch, dass die TCP-Schnittstelle wohl erhalten bleiben wird; sonst wären ja etliche Plugins zum Zugang abgeschnitten. Wie Tom schreibt kann ich in einem externen Plugin aufwändige Dinge tun, die die Performance von 3DMS nicht nach unten ziehen. Zu "Lua in 3DMS" fallen mir zwei Sachen ein bzw. auf: Lua kommt auf dem Platz der beliebtesten Programmiersprachen gleich auf Platz 33 (Java liegt auf Platz 1, und JavaScript, Python und PHP liegen in den Top 10). Ich weiß schon, dass Lua nicht völlig esoterisch ist (z.B. im embedded-Bereich wird es verwendet), aber ich kenne niemanden persönlich, der darin programmiert. Da stellt sich die Frage, ob Lua so viele Programmierer anziehen wird. Dann ist es so, dass ich bei Java/ außerhalb 3DMS mit den Tools meiner Wahl programmieren kann (wie z.B. mit Eclipse oder IntelliJ); bei Lua würde ich dann vermutlich in 3DMS programmieren?
  2. Moin, ich bin in Java zu Hause und habe zu meiner Freude festgestellt, dass 3DMS eine ziemlich mächtige Progammschnittstelle hat. Ich baue daher gerade an einem Java API, das schon ganz ordentlich fortgeschritten ist, wenn es auch noch nicht alle Kommandos und Ereignisse beherrscht. Das API erlaubt sowohl das Senden von rohen Kommandos und Empfangen von Ereignissen als auch die komfortablere und einfache Interaktion mit 3DMS über Java-Objekte, die im Hintergrund mit 3DMS verdrahtet sind. Um einen Eindruck zu vermitteln: tdms = TDMS.getInstance(); // Sucht auf de Netzwerk Commander commander = new Commander(tdms); EventReceiver eventReceiver = new EventReceiver(tdms); // Optional, wenn man Ereignisse braucht System.out.println("Version :" + commander.getVersion()); Rail rail = commander.get("G706"); rail.setActiveTrack(1); eventReceiver.addEventListener(EventRailEntered.class, new AbstractEventReceiver<EventRailEntered>() { @Override public void receiveEvent(final EventRailEntered pEvent) { Rail rail = pEvent.getRailEntered(); } } Mit <100 Zeilen Code habe ich mir z.B. einen "Autowire" Mechanismus geschaffen, der Gleise und Besetztmeldung auf Stellwerkselementen (und Textlabels mit Zugnamen) rein aufgrund der Benamung zusammenschaltet - in 3DMS muss ich nichts weiter tun als das Gleis "G<name"> nennen und den Stellwerk-Baustein "B<name>" (und den Text "T<name>"); das war's. Keine Ereignisse, keine Verknüpfung, auch keine vom Programm erzeugte - Autowire ändert nichts an der Anlage. Ist so was für die Gemeinde von Interesse? Bei genügend Feedback würde ich zumindest mal die JARs verfügbar machen. Gruß, Christian
×
×
  • Neu erstellen...