Zusi-TCP-Schnittstelle für .NET

Soundthesizer, Zusitool und andere Zusatzsoftware

Moderatoren: Andreas Damm, Jens Haupert

Nachricht
Autor
Benutzeravatar
Erik Semt
Beiträge: 111
Registriert: 11.08.2009 18:37:46
Aktuelle Projekte: Bau Führerstand 1216 | Taurus MFA
Wohnort: Lohsa/ Nürnberg

Re: Zusi-TCP-Schnittstelle für .NET

#21 Beitrag von Erik Semt »

Jens Haupert hat geschrieben: du bist scheinbar nicht im "Programmiergeschäft" tätig, oder? :D Mein Zählskript sagt 838 Zeilen. Zum Vergleich hat ZusiDisplay (und damit nix Dolles) etwas über 209.000 Zeilen.
Hi Jens,

Doch schon und deine Leistung mit dem ZusiDisplay und Carsten mit Zusi ist auch überragend, bloß ich als "Anfänger" habe halt noch nie so viele Zeilen geschrieben. (glaube ich zumindestens hab noch nie nachgezählt) :)
Man kann sich ja von ZusiDisplay den Quellcode auch angucken aber ich glaube das ist eine ältere Version.

Gruß Erik
Aktuelles Projekt:
Fahrpult der BR 183/ Rh 1216 | Taurus MFA

BorisM
Beiträge: 303
Registriert: 10.08.2008 01:57:31
Aktuelle Projekte: Universeller Stellwerksimulator
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#22 Beitrag von BorisM »

Mei, der Quelltext entsteht eigentlich recht schnell, wenn man mal richtig drin ist. Wobei "Lines of Code" ja nur eine Hilfsgröße ist, die nur eine relativ grobe Abschätzung ermöglicht, weil es doch sehr von der Programmiersprache und auch vom Programmierstil abhängt, wie viele Codezeilen man für eine bestimmte Funktion programmiert.

Wobei ich aber ehrlich gesagt nicht ganz verstehe warum Zusidisplay 209000 Zeilen hat - aber vermutlich habe ich da irgendwas übersehen, was mehr Aufwand erfordert als ich es als Außenstehender jetzt denken würde vom bloßen Anschauen der Screenshots :-) (spontane Vermutung: Wahrscheinlich die Ebula-Simulation?)
Und nein - 209000 Zeilen ist nicht mehr "nix Dolles", sondern schon ein relativ umfangreiches Programm. Klar, mit nem Betriebssystem oder einem Office-Paket kann sowas natürlich noch nicht mithalten :-) .
Zuletzt geändert von BorisM am 26.02.2012 16:16:28, insgesamt 1-mal geändert.

Bernhard Raschke
Beiträge: 630
Registriert: 18.02.2003 18:32:49
Wohnort: 72655 Altdorf

Re: Zusi-TCP-Schnittstelle für .NET

#23 Beitrag von Bernhard Raschke »

Andreas Karg hat geschrieben: Ich würde mich freuen, wenn der eine oder andere Nutzer seine Meinung und Erfahrungen über mein Werk kundtäte. Das hilft mir, die Schnittstelle weiter zu verbessern. Außerdem fände ich eine kurze Beschreibung der Projekte cool, für die die Schnittstelle verwendet wird. Ich finde das immer ganz spannend, was da so für Ideen auftauchen. :-)

Hallo Andreas,

nach der freundlichen Zustimmung hier kriegste nun auch Dein Fett ab:

Nach ein paar Beiträgen hier im Forum habe ich den Mut gefunden, in der Welt der Programmierung etwas rum zu wurschteln. Ich habe mich entschlossen, mich in C# einzulesen, habe dann auf Deinem Beispielprogramm aus dem ersten Beitrag aufgesetzt und nun mein Ziel "Eigene Bremsdruckmanometer" angegangen. Mit Deiner "Bitschubserei" ist es möglich, nach zwei Wochen dieses funktionierende Balkendiagramm darzustellen:

Bild

Hier steht eine 218 gleich nach dem Aufgleisen im Bahnhof, Hll-Druch 4,2 bar, deshalb 1,8 bar im Bremszylinder, und bei nur 8,5 bar im Hauptluftbehälter wird gleich der Kompressor anspringen.

Es gibt einfacheres, aber so schwer war es auch wieder nicht. Vor allen Dingen deshalb, weil auch Du Deine Arbeit hier ganz uneigennützig veröffentlicht hast. Ich weiß nicht, wie viel Arbeit Deine Programmiererei war, aber mir hat sie den Einstieg massiv erleichtert. Die ausführlichen Erläuterungen und Kommentare im Code tragen wesentlich dazu bei :tup

Ich habe jetzt den Mut und die Zuversicht, weiter zu kämpfen! Danke dafür.

@ all: Nein, das gibt es noch nicht, denn ich weiss noch nicht, ob man das skalieren kann. Ausserdem bin ich noch nicht sicher, ob es überall läuft. Aber ich will dranbleiben, und wenn es etwas einigermaßen gutes gibt, werde ich es auch hier veröffentlichen. Versprochen!
Grüssle Bernhard

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#24 Beitrag von Andreas Karg »

*verbeug* Stets zu Diensten. Außer, es muss fertig werden. :-D

Benutzeravatar
F. Schn.
Beiträge: 6607
Registriert: 24.10.2011 18:58:26

Re: Zusi-TCP-Schnittstelle für .NET

#25 Beitrag von F. Schn. »

So, jetzt habe ich einen Fehler gefunden (nicht nur bei dir, sondern auch beim TCP-Server):

Aus dem ZusiCLIProject-Thema:
Andreas Karg hat geschrieben:Ansonsten gibt's noch einen Eintrag "Block, bis zu dem die Strecke frei ist" ...
... welcher natürlich ein String und kein Single ist. :rolleyes: (ID 2637 bzw. ID 77)


Einen Wunsch habe ich noch: Wenn du eine Exception schmeißt, kann ich die nicht auffangen. (Ich habe ja keinen Zugriff auf deinen Thread.) Kannst du mir da irgendwie die Möglichkeit geben, das aufzufangen, möglichst mit ein paar Details ...


Außerdem kann iResponse (Zusi-Datenausgabe.cs; Z.409) statt "HELLO not acknowledged." einen Fehlercode enthalten:
0x01: Zu viele Verbindungen
0x02: Zusi ist bereits verbunden, keine neue Verbindung mehr möglich
(aus der TCP-Server-Doku.)
Für ResponseType.AckNeededData sind die zugehörigen Fehlercodes bereits eingearbeitet.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#26 Beitrag von Andreas Karg »

Hallo FFfffffFfFFFffff,

danke für die Meldungen. :-) Ich hab' sie bei Github eingetragen. Vielleicht kommt ja der Osterhase dazu, die Fixes einzupflegen. :-D

Übrigens: Wenn du magst, darfst du (und alle andern freilich auch) solche Sachen direkt hier eintragen. Wobei das vermutlich ein Konto bei Github erfordert. Ach, macht's einfach, wie's euch am besten erscheint. Lesen tu' ich's ja so oder so und es ist ja nun nicht so, dass ich hier mit Fehlermeldungen überschüttet würde. 8)

Grüße
Andi

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#27 Beitrag von Andreas Karg »

*schieb* mit neuer Version - siehe 1. Eintrag :-)

Benutzeravatar
Max Senft
Administrator
Beiträge: 3004
Registriert: 04.11.2001 14:01:40
Aktuelle Projekte: Dies und das
Wohnort: Blieskastel, Saarland, Deutschland
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#28 Beitrag von Max Senft »

Hi.

Die "was not found" Meldung ist sicherlich nicht beabsichtigt!? :-)

Grüße
Max
Administrator, Programmierer, Ansprechpartner bei Problemen mit dem Board

Benutzeravatar
F. Schn.
Beiträge: 6607
Registriert: 24.10.2011 18:58:26

Re: Zusi-TCP-Schnittstelle für .NET

#29 Beitrag von F. Schn. »

Mit ein bischen probieren: vsl die hier: <link entfernt, da die Datei vorrübergehend entfernt wurde>
Zuletzt geändert von F. Schn. am 28.10.2012 10:50:56, insgesamt 2-mal geändert.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Benutzeravatar
nonesense
Beiträge: 500
Registriert: 15.07.2006 12:50:10
Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla
Wohnort: Köln
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#30 Beitrag von nonesense »

Hallo,

darf ich fragen, warum in dem Beispiel, dass ich für den Arduino angepasst habe, der Rahmen zum Verbindungsaufbau zum simulator umbenannt wurde von "Zusi oder Loksim" in "Zusi"?

Gibt es da irgendwelche Feindseligkeiten, von denen ich nichts weiß?

Benutzeravatar
F. Schn.
Beiträge: 6607
Registriert: 24.10.2011 18:58:26

Re: Zusi-TCP-Schnittstelle für .NET

#31 Beitrag von F. Schn. »

Hallo nonsense,

wo steht denn da überhaupt Zusi?

Edit: Wer lesen kann ist im Vorteil. Du meinst die Text-Eigenschaft des Formulars. Warte mal ...
Edit2: Also, die Benutzeroberfläche ist aus deiner hier hervorgegangen und da dort bereits Me.Text = "Zusi > TCP > COM > Arduino" (also ohne Loksim) steht, habe ich da auch nichts daran geändert.
Zuletzt geändert von F. Schn. am 27.10.2012 21:56:16, insgesamt 2-mal geändert.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Benutzeravatar
nonesense
Beiträge: 500
Registriert: 15.07.2006 12:50:10
Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla
Wohnort: Köln
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#32 Beitrag von nonesense »

Hm. Hab ich diese Änderung denn tatsächlich nachträglich vorgenommen?
Naja, dann will ich nix gesagt haben. Sorry

Edit:
Sind denn sonst welche wichtigen Änderungen?
ich bekomme nämlich diesen Fehler:
Fehler 1 Die Signatur der Private Sub HandleIncomingData(dataSet As Zusi_Datenausgabe.DataSet(Of Single))-Methode ist mit dem Delegaten "Delegate Sub ReceiveEvent(Of Single)(sender As Object, data As Zusi_Datenausgabe.DataSet(Of Single))" nicht kompatibel. C:\Users\Jens\Documents\Visual Studio 2010\Projects\ZusiTCPDemoAppVBA-Arduino\ZusiTCPDemoAppVBA\CMainWindow.vb 52 47 ZusiTcpNachArduino
...für "HandleIncomingData"

Gruß
Jens
Zuletzt geändert von nonesense am 27.10.2012 22:07:52, insgesamt 1-mal geändert.

Benutzeravatar
F. Schn.
Beiträge: 6607
Registriert: 24.10.2011 18:58:26

Re: Zusi-TCP-Schnittstelle für .NET

#33 Beitrag von F. Schn. »

Das ist aber nicht das offizielle Beispiel, oder?

Da die neue DLL über Ereignisse läuft ist die neue DLL ein bischen anderst. Es werden keine Methoden mehr im New-Ereignis an die TCP-Schnittstelle übergeben, die Klasse hat vielmehr selbst Ereignisse (Events) die sich in VB.NET mittels Withevents und Handles recht kompfortabel nutzen lassen:

Zunächst benötigt die Varriablendeklarination das Schlüsselwort Withevents:
Private WithEvents MyTCPConnection As ZusiTcpConn
Die aufgerufenen Methoden zeigen nun über das Handles-Schlüsselwort an, dass sie zu MyTCPConnection gehören:
Private Sub MyTCPConnection_ErrorReceived(ByVal sender As Object, ByVal ex As Zusi_Datenausgabe.ZusiTcpException) Handles MyTCPConnection.ErrorReceived
Private Sub MyTCPConnection_BoolReceived(ByVal sender As Object, ByVal data As Zusi_Datenausgabe.DataSet(Of Boolean)) Handles MyTCPConnection.BoolReceived
Private Sub MyTCPConnection_FloatReceived(ByVal sender As Object, ByVal data As Zusi_Datenausgabe.DataSet(Of Single)) Handles MyTCPConnection.FloatReceived
...
Letzteres macht der Code-Editor jedoch eigentlich schon fast automatisch, wenn du die beiden ComboBoxen direkt über dem VisualStudo-Codeditor benutzt.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Benutzeravatar
nonesense
Beiträge: 500
Registriert: 15.07.2006 12:50:10
Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla
Wohnort: Köln
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#34 Beitrag von nonesense »

Ah, danke.
F. Schn. hat geschrieben:Das ist aber nicht das offizielle Beispiel, oder?
Nein, das war mein für meine Bedürfnisse bereits zugeschnittener alter Code und ich wollte die Sache mit der Uhrzeit mal Ausprobieren.
In einem Anderen Thread kam der Vorschlag die neue DLL hierfür zu nutzen. Also hatte ich auch nur die ausgetauscht.

Muss also das ganze Projekt umstricken.

Gruß
Jens

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#35 Beitrag von Andreas Karg »

Danke für die Korrektur des Links - ich habe die Datei mal einstweilen vom Netz genommen, weil noch einige Fehler drin sind. Ich war vorhin ziemlich in Eile, was man offenbar deutlich merkt. Unter anderem stimmt der deutsche Lizenzhinweis für die Beispiele nicht - es handelt sich bei den Beispielen nicht um die LGPL, sondern um die Creative Commons Zero. Der tatsächliche Text liegt (auf Englisch) bei.

Und eine Datei fehlt wohl auch noch. *kopfschüttel*

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#36 Beitrag von Andreas Karg »

*schieb* mit neuer neuer Version. :-D

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#37 Beitrag von Andreas Karg »

Eine kleine Anmerkung zum Arduino-Projekt:
Die Arduino-Entwicklungsumgebung erwartet, dass der Ordner eines Projektes genauso heißt wie die Projektdatei. Ergo muss der Ordner "Arduino-Code" umbenannt werden in "Associated_code_for_Arduino".

Vielen Dank an nonesense für den Hinweis. :-)

Benutzeravatar
Erik Semt
Beiträge: 111
Registriert: 11.08.2009 18:37:46
Aktuelle Projekte: Bau Führerstand 1216 | Taurus MFA
Wohnort: Lohsa/ Nürnberg

Re: Zusi-TCP-Schnittstelle für .NET

#38 Beitrag von Erik Semt »

Hallo an alle,

wie versprochen werd ich hier mal etwas zu meinem MFA schreiben.
Ich denke ein Bild sagt erstmal mehr als tausend Worte.

Bild

Wie man sieht ist noch nicht alles fertig.
Was noch gemacht werden muss:
-LZB-Anzeige
-Verbesserung an der "V-Ziel-Anzeige" sowie an der "Zugkraft-Prozent-Anzeige"
-Voltmeter
-Zug- Bremskraft-Anzeige
-zeichen "LM-Bremse angelegt" einfügen
-Helligkeitsregelung usw.
-andere kleine Programmiertechnische arbeiten

Falls jemandem noch was auffällt oder vielleicht jemand Wünsche/Fragen hat, können diese gerne geäußert/gestellt werden.

Gruß Erik
Zuletzt geändert von Erik Semt am 28.11.2012 18:04:29, insgesamt 1-mal geändert.
Aktuelles Projekt:
Fahrpult der BR 183/ Rh 1216 | Taurus MFA

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Zusi-TCP-Schnittstelle für .NET

#39 Beitrag von Andreas Karg »

Wow. Sieht schön aus! :-) Macht direkt Lust auf Nachtfahrten. Zeichnest du das immer noch mit User Controls?

Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Re: Zusi-TCP-Schnittstelle für .NET

#40 Beitrag von Dennis Bork »

Wow...! Schließe mich Andreas an. Da kann ich nicht mithalten mit meinem ZusiMeter :) Auch in 3 Jahren nicht ... was hast Du damit vor; Open Source / Freeware / Shareware / ...? Im Falle von Open Source würde mich bei gegebener Zeit der Quellcode interessieren.

Antworten