.NET-Library

Für Fragen zu Plugins und zur Plugin-Entwicklung.

Moderatoren: Stellwerk-Admin, Moderatoren

Antworten
BadWolf97
Beiträge: 81
Registriert: Sa Jun 23, 2018 10:19 pm
StiTz: 739847

.NET-Library

Beitrag von BadWolf97 »

Hallo,
JonasH und ich haben, hauptsächlich für ein gemeinsames Programm (FPH SpedV), eine .NET-Library für die Pluginschnittstelle erstellt. Diese kann mit allen .NET-Programmiersprachen (VB, C#) verwendet werden und bietet alle Funktionen der Pluginschnittstelle.
Source: https://git.fphst.de/jonas.h/STSPluginLib
NuGet-Paket: https://www.nuget.org/packages/STSPluginLib
Über Erfahrungen und eventuelle Fehlermeldungen würden wir uns freuen - viel Spaß und Erfolg beim Entwickeln!
Nico, Jonas
Stellwerkstester, Entwickler von FPH SpedV
Freefighter
Beiträge: 10
Registriert: So Dez 25, 2011 7:51 pm

Re: .NET-Library

Beitrag von Freefighter »

Ich finde eure Lib ganz spannend. Meine Idee dahinter ist, eventuell ein kleines Leitstellensystem zu entwickeln, in das Störungen etc. eingetragen werden.

Das erstmalige Auslesen der Daten hat ganz gut geklappt. Beim Aktualisieren der Daten hängt es aktuell. Dafür ist ja sicherlich das EreignisTriggered-Event da?

LG
BadWolf97
Beiträge: 81
Registriert: Sa Jun 23, 2018 10:19 pm
StiTz: 739847

Re: .NET-Library

Beitrag von BadWolf97 »

Hallo,
um die Ereignisse zu erhalten, musst du dich zuerst dafür registrieren. Dies tust du z.B. mit (in VB):

Code: Alles auswählen

                        For Each zug As STSZug In mw.STS.Zugliste().Züge
                            If registeredIDs.Contains(zug.ZID) = False Then
                                mw.STS.Ereignis(zug.ZID, STSEreignisArt.ABFAHRT)
                                mw.STS.Ereignis(zug.ZID, STSEreignisArt.ANKUNFT)
                                mw.STS.Ereignis(zug.ZID, STSEreignisArt.EINFAHRT)
                                mw.STS.Ereignis(zug.ZID, STSEreignisArt.AUSFAHRT)
                                mw.STS.Ereignis(zug.ZID, STSEreignisArt.ROTHALT)
                                mw.STS.Ereignis(zug.ZID, STSEreignisArt.WURDEGRUEN)
                                registeredIDs.Add(zug.ZID)
                            End If
                        Next
Bitte beachte dabei, dass du jede Zug-ID nur einmal registrierst, da du ansonsten jedes Event so oft bekommst, wie du dich registriert hast.
Dann wird erst das EreignisTriggered-Event ausgeworfen.
Beachte jedoch zusätzlich, dass nicht jedes Ereignis im Sim auch wirklich ein Event triggered, dies ist jedoch eine Einschränkung des Sims. So bekommst du kein Ereignis "EINFAHRT"/"AUSFAHRT" wenn ein Zug seinen Namen ändert, genauso wie "WURDEGRUEN" bei Rangierloks nicht funktioniert, die an einem Prellbock standen. Im Gegensatz dazu wird "ABFAHRT" solange gespammt, bis der Zug auch wirklich abfährt. Ergo solltest du die komplette Liste ca. einmal pro Minute neu anfordern um soetwas zu umgehen.
Nico
Stellwerkstester, Entwickler von FPH SpedV
Antworten