Seite 1 von 1

.NET-Library

Verfasst: Fr Okt 12, 2018 9:16 pm
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

Re: .NET-Library

Verfasst: Mi Okt 02, 2019 10:51 pm
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

Re: .NET-Library

Verfasst: Mi Okt 02, 2019 11:21 pm
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