Aktuelle Zeit: 31.10.2020 06:11:09

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Zusi 3 TCP Interface für .Net - Version 0.9 (beta)
BeitragVerfasst: 17.06.2016 15:39:54 
Offline
Benutzeravatar

Alter: 34
Registriert: 28.04.2002
Beiträge: 4718
Servus miteinander!

Nach einer ganzen Menge Arbeit präsentiere ich hiermit die erste öffizielle Betaversion der neuen Zusi-TCP-Schnittstelle für .Net: Version 0.9 Beta

Features
Komplett von null auf neu geschrieben, unterstützt die Bibliothek fast alle Führerstandsdaten, die Zusi 3 anbietet. Neben den Klassikern wie Geschwindigkeit, Sifa-LM etc gibt's auch die eher esoterischen Daten wie LZB-Rechnerausfall, alle einfach zugänglich und schön typsicher frei Haus.

Wie schon bei der Vorgängerversion von anno dunnemals liegt der Schwerpunkt der Entwicklung auf einer möglichst simplen aber trotzdem mächtigen API.
In der Komfortvariante für GUI-Anwendungen bekommt jede Größe (Geschwindigkeit, HLL-Druck, ...) ein eigenes typsicheres Callback, das auf dem GUI-Thread aufgerufen wird, sobald ein Update für die betreffende Größe emfpfangen wird. Damit muss der Nutzer im Gegensatz zu früher nicht mehr bei jedem empfangenen Datensatz überprüfen, was er denn da gerade empfangen hat - ein großer Fortschritt!

Wer kein GUI verwendet, aber trotzdem gerne Callbacks haben moechte, für den gibt es ein Polling-basiertes Frontend, das genauso mächtig ist wie die GUI-Variante, jedoch regelmäßig "von Hand" angestoßen werden muss.

Und für Puristen ist die Schnittstelle zum Backend frei zugänglich: Es handelt sich schlicht um eine threadsichere Queue, aus der die fertig verarbeiteten Datensätze (bestehend aus einer Adresse, die die Größe eindeutig identifiziert und den eigentlichen Nutzdaten) zu entnehmen sind. Wie und wie oft das geschieht ist völlig frei zu gestalten.

Beta?
Dank umfangreicher automatisierter Tests bin ich ziemlich sicher, dass Version 0.9 stabil ist. Allerdings stellt die schiere Menge an Größen, die Zusi ausspuckt, mich vor das Problem, dass ich nicht alle einzeln mit vertretbarem Aufwand testen kann. Ich möchte daher jeden Nutzer bitten, auftretende Fehler an mich zu melden, sodass ich sie fixen kann.

Es steht auch noch eine kleinere Änderung der API an, die ich (sofern überhaupt benötigt) gern durchführen möchte, bevor Millionen von Zusi-Bastlern ihre Enterprise-Anwendung darauf aufbauen.

Ich bin grenzenlos begeistert, wo krieg ich das Teil???
Hier! :)
Einfach rechts halb-oben den grünen "Clone or Download"-Knopf drücken und abtelefonieren. Installationsanleitung und weitere Informationen finden sich auf Github - einfach ein bisschen runterscrollen.

Weitere Pläne
  • Unterstützung für Daten der Türsteuerung
  • Unterstützung für Bediendaten vom Simulator zum Client (Schalter, Tastaturkommandos, ...)
  • Unterstützung für Eingaben vom Client zum Simulator (Tastaturkommandos, ...)
  • Unterstützung für Programmdaten vom Simulator zum Client (Pause, Zugnummer, Buchfahrplan)
  • Unterstützung für den GRAPHIC-Befehl, mit dem beliebige Grafiken in den Führerstand eingeblendet werden können

Die Liste ist grob in der Reihenfolge, in der ich die Features abarbeiten würde. Je nach Zeitbudget kann das bald sein, oder auch nie. Sollte jemand eine bestimmte Funktion benötigen, stehe ich einer anderen Reihenfolge offen gegenüber.

Wer selber Hand anlegen möchte, der sei dazu herzlich eingeladen. Ich freue mich über Pull Requests auf Github und werde sie lesen und konstruktive Rückmeldung geben. Ich nehme sie auch gerne in die Haupt-Bibliothek auf, muss dabei aber darauf bestehen, dass die Beiträge mindestens den Qualitätsstandard der vorhandenen Codebasis erhalten - vorzugsweise verbessern. Hauptkriterien sind dabei: Lesbarkeit, Wartbarkeit, vernünftige Gliederung und automatisierte Tests wo immer möglich.

Danksagung
Mein Dank gilt neben den üblichen Verdächtigen in der Community vor allem F. Schn., der/die Feedback und Code beigesteuert und aus der alten Bibliothek als Übergangslösung einen Adapter für Zusi 3 geschraubt hat. Cheers!

_________________
2,0 l/100km -- Ein Traktor auf 2 Rädern! :)


Nach oben
 Profil ICQ  
 
 Betreff des Beitrags: Re: Zusi 3 TCP Interface für .Net - Version 0.9 (beta)
BeitragVerfasst: 17.06.2016 19:23:33 
Offline
Administrator
Benutzeravatar

Alter: 34
Registriert: 04.11.2001
Beiträge: 2923
Wohnort: Blieskastel, Saarland, Deutschland
Aktuelle Projekte: Dies und das
Hui,

hübsch. Sieht gut aus, aaaber (es gibt immer ein Aber :rolleyes: ) ich muss doch etwas "bemängeln", was mir eigentlich noch nie gefallen hat: Warum muss man die CabInfoAddress mit den Hex-Werten initialisieren? Ein wenig Komfort mit passenden Klassen oder static Initialisierern wäre was schönes. Dann muss sich der geneigte Programmierer nämlich nicht mit den Adressen rumärgern. Just sayin' ... ?(

Man muss aber auch sagen: Man merkt, dass du in ner Software-Schmiede arbeitest! ;)

Gruß
Max

_________________
Administrator, Programmierer, Ansprechpartner bei Problemen mit dem Board


Nach oben
 Profil ICQ  
 
 Betreff des Beitrags: Re: Zusi 3 TCP Interface für .Net - Version 0.9 (beta)
BeitragVerfasst: 18.06.2016 10:33:48 
Offline
Benutzeravatar

Alter: 34
Registriert: 28.04.2002
Beiträge: 4718
Menno, ich hatte gehofft, es dauert laenger, bis es jemandem auffaellt. :D
Das Gefummel mit der Adressierung zu verbessern ist die "kleine API-Aenderung", die ich im ersten Post angedeutet hab. Ich hab schon etwas damit herumgespielt, es dann allerdings doch vorgezogen, die Beta veroeffentlichungsfaehig zu kriegen. Funktionieren tut's ja auch so, ist halt frickelig - und ich gehe davon aus, dass die meisten Nutzer sich ihre Verkabelung einmal einrichten und dann nicht mehr viel dran aendern muessen.

Ich schau trotzdem mal, was sich machen laesst.

_________________
2,0 l/100km -- Ein Traktor auf 2 Rädern! :)


Nach oben
 Profil ICQ  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.019s | 16 Queries | GZIP : Off ]