Jump to content

Empfohlene Beiträge

Geschrieben

Hall Experten,

contact.connection = signal  funktioniert nicht ( beschreibung sagt nur lesend)
signal.connection = contact  veknuepft den kontakt mit dem signal, aber wie kann ich die eigenschaften des kontakts fuer die Ampelstellungen konfigurieren in Lua, so wie ich das mit dem eigenschaftsfenster kann ..
Geht das ueberhaupt ?
Gruss
Gmd
 

Geschrieben (bearbeitet)

Ja die frage ist eine andere..
Ich kann auf die eigenschaften zugreifen .. wie im obigen thread erklaert aber ich kann nicht die verknuepfung mit konfiguration der werte bei der entsprechenden ampelstellung herstellen ..
gruss
Gmd
 

Edit: zur weiteren erklaerung :  contact.trackContact.connection = $("")   wie aus obigem beispiel .. 
In der EV bekomme ich kein signal angeboten fuer die veknuepfung, also nehme ich an dass es nicht geht .. sondern nur ueber das eigenschaftsfenster .

 

Bearbeitet von gmd
Geschrieben
--[[
Einrichtung der connection
--]]

$("Ampeln 1 (Standard)").connection = $("Gleiskontakt")

-- später dann
if $("Ampeln 1 (Standard)").state == 1 then
   $("Ampeln 1 (Standard)").connection.autoAcceleration = false
   $("Ampeln 1 (Standard)").connection.autoDeceleration = true
end

Meinst Du so?

Geschrieben (bearbeitet)

Ich will vermeiden die werte manuell in abhaengigkeit der stellung zu setzen

Hier mal in  pseudocode (nicht Lua)

kontakt.connection = signal      -- das wird nur im eigenschaftsfenster unterstuetzt .. in Lua kein effekt
kontakt[signalstate=1]."Abbremsen auf" =5
kontakt[signalstate=3]."Beschleunigen auf" = 35

Das kann ich mit dem Eigenschaftsfenster einstellen, ich moechte das aber in der initialisierung nur einmal machen muessen.
gruss
Gmd


 

Bearbeitet von gmd
Geschrieben
3 minutes ago, prinz said:

Hallo gmd ,

Sorry, bin raus. Muss etwas erledigen. Vielleicht kann jemand anderes übernehmen.

Viele Grüße,
    Wolfgang

 

Bloss keinen stress :) .. danke fuer die antwort 
gruss
Gmd

 

Geschrieben

Vielleicht hilft Dir das: Vergleiche mal

2025-04-0716_03_32-3DTrainStudioV9.jpg.6ffd007498b99d2f947438952cfcde4a.jpg

mit dem Lua-Code, der dabei rauskommt:

dummy.trackContact.connection = $("")
dummy.connection = $("")
dummy.connection = $("")

dann siehst Du, dass die "connection" eine tückische Sache ist. Dass die in der graphischen EV unterschieden werden, ist neu in V9. Jedenfalls muss man begreifen, dass connection nicht gleich connection ist.

vor 1 Stunde schrieb gmd:

contact.connection

gibt es nicht! Das heißt:

contact.trackContact.connection = $("")

Das Verhältnis eines Signales zu seinem Kontakt ist ein kompliziertes. Da stolpere ich auch immer mal wieder drüber.

Geschrieben

Hallo @gmd,

Nur zur Kontrolle, ob ich Deine Aufgabenstellung richtig verstanden habe: Du möchtest für Ampel eine automatisierte Initialisierung (etwa für alle Objekte mit Schlagwort Ampel) durchführen. Zu einer Ampel gehört genau ein Kontakt, der die Verkehrsbeeinflussung durchführt. Dazu soll der Kontakt für jede Ampelstellung mit den passenden Eigenschaften "gefüttert" werden.

Wenn dies nicht der Fall ist, brauchst Du nicht weiterlesen.

Ansonsten:

AmpelmitVerkehrsbeeinflussung.jpg.94005fc08bcc52e3cb8ac2050fe54945.jpg

Hier ist symbolisch eine Ampel (Ampel 1 (Standard) und ein (ACHTUNG) Schaltkontakt zu sehen. Ein Schaltkontakt deswegen, da er je Status mit unterschiedlichen Eigenschaften versorgt werden kann/muss.

Für ein Paar (Ampel, Schaltkontakt) bietet sich hier eine Funktion an, die als Parameter eben die Ampel und den Schaltkontakt erhält:

-- Verbinden Ampel mit Schaltkontakt
Ampel.connection = Schaltkontakt

-- Einstellungen für Rot
Schaltkontakt.state = 1
Schaltkontakt.trackContact.autoAcceleration = false
Schaltkontakt.trackContact.autoDeceleration = true

-- Einstellungen für Rot-Gelb
Schaltkontakt.state = 2
Schaltkontakt.trackContact.autoAcceleration = false
Schaltkontakt.trackContact.autoDeceleration = true

-- Einstellungen für Grün
Schaltkontakt.state = 3
Schaltkontakt.trackContact.autoDeceleration = false
Schaltkontakt.trackContact.autoAcceleration = true
Schaltkontakt.trackContact.autoAccelerationSpeed = 50

-- Einstellungen für Gelb (nicht ernst gemeint)
Schaltkontakt.state = 4
Schaltkontakt.trackContact.autoDeceleration = false
Schaltkontakt.trackContact.autoAcceleration = true
Schaltkontakt.trackContact.autoAccelerationSpeed = 70

-- Initial: Rot
Schaltkontakt.state = 1                    

Viele Grüße,
    Wolfgang

 

Geschrieben
vor 57 Minuten schrieb prinz:

Ein Schaltkontakt deswegen, da er je Status mit unterschiedlichen Eigenschaften versorgt werden kann/muss.

Dazu braucht es keinen Schaltkontakt.
Jeder Kontakt, der mit einem Signal verknüpft wird, erhält dadurch so viele Konfigurationen, wie das Signal Stellungen hat.

Der Schaltkontakt ist insofern eine Besonderheit, weil er auch ohne die Verbindung zu einem Signal 10 Stellungen hat.

Geschrieben (bearbeitet)
Schaltkontakt.state = 1

[8:47:11 AM] Die Ereignisverarbeitung ist aufgrund von Skriptfehlern deaktiviert: Unknown property name state

Die verknuepfung wird hergestellt .. ist aber falsch rum gegenueber dem Eigenschaftsfenster

Ein schaltkontakt hat state und bekommt nicht diesen fehler.

So wie ich das verstehe muss die veknuepfung
kontakt.connection = signal lauten und das geht nach dokumentation nicht .. "nur lesbar"
So waere das richtig fuer alle kontakte, isbesondere wenn man mehr als einen konatkt zuweisen will.
Diese einschraenkung ist fuer mich ein "Fehler" auch wenn dokumentiert.
 

In diesem fall funktioniert nur schaltkontakt und das ist der richtige hinweis
und kontakt.state = , das habe ich nicht erraten.

Ist aber nicht logisch fuer mich weil man mit dem eigenschaftsfenster anders herum verknuepft (jeden kontakt) und dadurch
mehrere kontakte einem signal/ampel zuweisen kann.

 

Vielen Dank fuer deine Antwort Wolfgang, war der entscheidende punkt.


Gruss
Gmd
 

 

 

Bearbeitet von gmd
Geschrieben
vor 5 Stunden schrieb gmd:

Diese einschraenkung ist fuer mich ein "Fehler" auch wenn dokumentiert.

Sagen wir so: Das ist der historischen Entwicklung geschuldet sowie dem Umstand, dass es viele Nutzer gibt, welche nicht mit der EV arbeiten. Für die ist es hilfreich, wenn Neo die Begriffe des Signals in eine Combo des Kontaktes faket. Diese Combo taucht beim Kontakt nur auf, solange und soweit er mit einem Signal verbunden ist. Hebt man die Verbindung auf, ist die ganze Combo wieder weg. Daran kann man erkennen dass sie gefaket ist. Dieser fake führt natürlich nicht dazu, dass der Kontakt plötzlich eine Eigenschaft (state) dazubekommt, die er von Haus aus nicht hat.

Auch wer die graphische EV benutzt, wird korrekt geführt: Ein Kontakt hat keinen state:

2025-04-0808_03_04-250403_SelbstBlock_-3DTrainStudioV9.jpg.e39522494ae2d96aa9eea5c31c2eed9e.jpg

ein Signal (und ein Schaltkontakt, der ein Signal ist)  aber schon:

2025-04-0808_04_41-250403_SelbstBlock_-3DTrainStudioV9.jpg.d53454ce49ff96124cc6e4feb7535870.jpg

Und wer die Lua-Hilfe benutzt, sieht auch, dass der trackcontact keinen state hat.
2025-04-0808_14_11-3DTrainStudioV9.jpg.7b8345091c87e5dfdbe16cbc9d7ed37e.jpg

Genau wegen dieses Problems hat @BahnLand auf meine Anregung den "Schaltkontakt" (der in Wahrheit ein Signal und kein Kontakt ist, auch wenn er so aussieht, was Neo gefakt hat, das kann der Modellbauer nämlich nicht) vor einem knappen Jahr erstellt. Bis dahin musste man ein Eisenbahnsignal mit einer Verkehrsampel verbinden um eine vernünftige Ampelsteuerung erstellen zu können.

Geschrieben

Sie passt überhaupt nicht, denn der Kontakt "erhält" selbstverständlich keine "Konfigurationen" (was auch immer damit gemeint sein soll). Vielmehr kann man nur in den Eigenschaften des Kontaktes das verbundene Signal umstellen, mehr nicht. Aber halt praktisch für die vielen Nutzer, die nur in den Eigenschaften herumklicken und die EV nicht benutzen und schon gar nicht Lua.

Geschrieben

Doch. Ich wusste das auch nicht. Hier ein Beispiel:

Ampel und Gleiskontakt sind aufgestellt. Der Gleiskontakt kennt keine verschiedenen Zustände:

Ampel-Kontakt1.thumb.jpg.1c057a27aee487deb2e9646a815930a6.jpg

Jetzt wird der Gleiskontakt mit der Ampel verbunden, und siehe da:Ampel-Kontakt2.thumb.jpg.b264d08b464082f3fa88f24cec9fb121.jpg

Viele Grüße,
    Wolfgang

 

Geschrieben
13 minutes ago, prinz said:

Doch. Ich wusste das auch nicht. Hier ein Beispiel:

Ampel und Gleiskontakt sind aufgestellt. Der Gleiskontakt kennt keine verschiedenen Zustände:

Ampel-Kontakt1.thumb.jpg.1c057a27aee487deb2e9646a815930a6.jpg

Jetzt wird der Gleiskontakt mit der Ampel verbunden, und siehe da:Ampel-Kontakt2.thumb.jpg.b264d08b464082f3fa88f24cec9fb121.jpg

Viele Grüße,
    Wolfgang

 

das geht nur in der gezeigten richtung aber nicht in Lua (da geht es nur umgekehrt und nur mit schaltkontakt)  wie die aussage von Goetz impliziert.
Gruss
Gmd
 

Geschrieben
vor 7 Stunden schrieb prinz:

Doch. Ich wusste das auch nicht. Hier ein Beispiel:

Nein, falsch, jetzt lasse Dich doch nicht in die Irre führen! Die Combo ist ein Fake und hat nichts mit den Eigenschaften des Kontaktes zu tun! Es ist wie ich geschrieben hatte:

vor 13 Stunden schrieb Phrontistes:

Diese Combo taucht beim Kontakt nur auf, solange und soweit er mit einem Signal verbunden ist. Hebt man die Verbindung auf, ist die ganze Combo wieder weg. Daran kann man erkennen dass sie gefaket ist. Dieser fake führt natürlich nicht dazu, dass der Kontakt plötzlich eine Eigenschaft (state) dazubekommt, die er von Haus aus nicht hat.

Daraus konntest Du ersehen, dass ich die Combo aus Deinem Bild natürlich kenne.

vor 9 Stunden schrieb Phrontistes:

Vielmehr kann man nur in den Eigenschaften des Kontaktes das verbundene Signal umstellen, mehr nicht.

Es gibt keine Eigenschaft trackcontact.state, auch nicht wenn ein Signal verbunden ist. Diese wird richtigerweise deshalb auch weder in der graphischen EV noch in der Lua-Hilfe angeboten; siehe meine Bilder oben.

vor 11 Stunden schrieb gmd:

halbgar (fake eben :) )

(y) und wie man sieht irreführend wenn selbst Leute darauf reinfallen, die sich gut mit der EV auskennen.

 

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...