Jump to content

Recommended Posts

Posted

Hallo,
ich habe da eine Frage bezüglich defer und deferredCall.
Ich habe ein Päckchen zurechtgemacht um mehrere Drehscheiben mit unterschiedlich vielen Zufahrten und Lokschuppen zu steuern.
Durch die unbestimmte Anzahl der Gleise liegen die Stammdaten der Drehscheiben in tables im zugehörigen Modulskript. Das funktioniert wunderbar.
Jetzt habe ich die zugehörigen Funktionen auch dorthin verschoben, um in den 'normalen' Ereignissen die jeweilige Funktion mit dem zugehörigen Table-Parameter aufrufen zu können.
Die sind jetzt auch prima universell verwendbar.
Nun haben aber die meisten dieser Funktionen auch Verzögerungen drin und nun denke ich, beißt sich da was. defer und deferredCall, so verstehe ich's, scheinen eine direkte Bindung mit dem Ereignis einzugehen, in dem sie gerufen werden. Lager ich's aus, ist die Fähigkeit weg. Im Modulskript rührt sich nämlich diesbezüglich nichts mehr. Muß ich den Funktionsaufrufen noch einen Parameter dafür mit auf den Weg geben und mit return wieder abholen? Oder muß ich in der Konfiguration doch auf Timer umstellen.
 

Modulskript:

Drehscheibe_1 = { ... }

function Drehscheibe_Einfahrt(drehs, track, vehicle)
  if not deferredCall then
     ...
     defer("Verzögerung (3)")
  elseif deferredCall == "Verzögerung (3)" then
     ...
  end
end
   
function...   auch mit defer
function...
function...

normales Ereignis:
Zug betritt ...
Aktion: Drehscheibe_Einfahrt(Drehscheibe_1, track, vehicle)

Gruß
   Andy

 

Posted

Hallo Andy,

vor 3 Minuten schrieb Andy:

Muß ich den Funktionsaufrufen noch einen Parameter dafür mit auf den Weg geben und mit return wieder abholen?

ja und nein:

  • Ja: Du musst den Funktionsaufrufen den Parameter deferredCall mitgeben, ansonsten kennen die Funktionen diesen Parameter nicht.
  • Nein: Du musst nichts mit return abholen. Was willst du denn abholen?

Viele Grüße,

Neo

Posted (edited)

 

vor 14 Minuten schrieb Neo:

Was willst du denn abholen?

tja, z.B. deferredCall. Hätte ich mir vorstellen können, wenn das Ereignis wirklich eine Bindung aufbaut. Ich hätte noch ein wenig herumkombiniert, aber ein offizielles Statement von Dir ist mir da doch lieber! Muß es gleich einbauen. Prima, wieder ein kritisches Ding im Griff.

vielen Dank
  Andy

ps: Klappt alles, Neo!

Edited by Andy
ps
Posted

Hallo @Neo

... wenn bei " deferredCall" die gleiche Beschreibung wie bei "defer" stehen würde, wäre die Sache vielleicht klarer dargestellt. (und eindeutig, dass beides zusammengehört)
Ich habe auch erst nach der Beschreibung bei "defer" verstanden, wie " deferredCall" einzusetzen ist.

Gruß
EASY

Posted

Hallo EASY,

vor 19 Stunden schrieb EASY:

wenn bei " deferredCall" die gleiche Beschreibung wie bei "defer" stehen würde, wäre die Sache vielleicht klarer dargestellt.

es ist meistens keine gute Idee, Dokumentation zu replizieren, weshalb ich bei deferredCall für weitere Informationen auf defer verweise.

Viele Grüße,

Neo

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...