Jump to content

Empfohlene Beiträge

Geschrieben

Hallo an alle,

es ist nicht wirklich ein feature wunsch (yet), und ich behaupte auch nicht dass das vollstaendig durchdacht ist, ich schreibe einfach mal eine beobachtung auf und was ich in der situation getan habe und.. was vielleicht wuenschenswert waere. 
Beim testen fuer meine scripte RoLa und Spedition kam es oefter vor, dass ich einige fahrzeuge immer wieder in eine ausgangsposition setzen muss, um einen test durchzufuehren.
Es sind nicht nur ein oder zwei sondern in einigen faellen 10+ und das nicht nur einmal.
Ich kann nun ein script schreiben mit dem ich alle beteiligten fahrzeuge oder beteiligten modelle auf eine anfangsposition zuruecksetze, ich habe mich dazu entschieden meinem programm beizubringen fuer eine selektion (alles eindeutige namen) einen stand (positionen) abzuspeichern und immer wieder abzurufen. Das spart enorm zeit. Hat aber immer noch das problem, dass alle objekt eindeutige namen haben muessen.
Ich dachte nun, wenn man im MBS eine ebene nimmt und alle diese beweglichen test modelle zuordnet, und dann einen snapshot machen kann, und am ende des tests den ursprungszustand wieder abrufen kann, dann waere das ein riesen fortschritt fuer aufwendige tests. Es kann dann auch zum ruecksetzen einer demo verwendet werden usw. 

Ich rede hier nicht von versionen von anlagen, oder aehnlichem, man kann das ja beliebig kompliziert machen. Eine einfache moeglichkeit auf einen status zurueckzusetzen, der ueber das einfache CTRL Z hinausgeht.  Neo kann da besser entscheiden was einfach machbar ist, aber fuer wiederholtes testen aller moeglichen art von bewegung ist das ungeheuer hilfreich.

Gruss
Gmd


 

 

Geschrieben

Hallo Gmd,

beim Testen geht es ja nicht nur um das Umpositionieren von Objekten, sondern auch um das Zurücksetzen von Zuständen. Das läuft am Ende immer auf eine Zustandsspeicherung der gesamten Anlage hinaus.

Viele Grüße,

Neo

Geschrieben (bearbeitet)
9 minutes ago, Neo said:

Hallo Gmd,

beim Testen geht es ja nicht nur um das Umpositionieren von Objekten, sondern auch um das Zurücksetzen von Zuständen. Das läuft am Ende immer auf eine Zustandsspeicherung der gesamten Anlage hinaus.

Viele Grüße,

Neo

Da muss ich dir widersprechen.. ich komme ohne aenderungen von variablen etc aus, weil meine scripte so eingerichtet sind. Es ist richtig dass zustaende fuer die meisten eine groessere rolle spielen, aber das ist oft mit einem einfachen loeschen aller temporarer variablen geregelt. Es kommt halt darauf an, was und wie man programmiert. Ich bin mir bewusst, dass nicht jeder ein solches feature zu schaetzen weiss, aber lassen wir doch mal andere hier ein pro oder contra ausdruecken. Vielleicht sehen wir beide vielleicht noch nicht alle aspekte.
Gruss
Gmd

 

Bearbeitet von gmd
Geschrieben
vor 19 Minuten schrieb gmd:

Vielleicht sehen wir beide vielleicht noch nicht alle aspekte.

Hallo Gmd,

was hindert dich daran, die Anlage im Anfangszustand (vor dem Start eines Testdurchlaufs) zu speichern?
Mit der Methode (die allerdings ein wenig Disziplin erfordert) fahre ich gut. Man muss nur der Versuchung widerstehen, nach Einrichtung aller Parameter sofort den Testlauf zu starten. Das das nicht immer einfach ist, weiß ich aus eigener Erfahrung.

Viele Grüße
Götz

Geschrieben

Goetz,

es kommt wirklich darauf an was zu testen ist. Ich halte versionen der gleichen Anlage fuer das testen von unterschiedlichen teilen und fuehre dann die scripte zusammen. Das problem ist wenn man einen teilaspekt tested, z.b. das einfahren von 12 lkw mit anhaenger ueber verschiedene spuren mit einer reihe von konfliktloesungen. Der test is relativ kurz, aber das ruecksetzen von 12 lkw mit anhaenger ist es nicht. Das laden der anlage dauert noch viel laenger also ist das speichern eines anfangszustandes hier auch nicht hilfreich. Ich habe mir in meinem programm eine loesung gebastelt, allerdings dachte ich dass auch andere in aehnlichen situation ein solches feature moegen wuerden. Ich habe mich ja auch vorsichtig ausgedrueckt und das nicht wirklich als featurewunsch definiert, bin aber einfach mal neugierig was andere dazu zu sagen haben oder ob nur ich dieses problem habe oder sehe. 
Gruss
Gmd

 

Geschrieben

Hallo,

vor 6 Stunden schrieb Neo:

beim Testen geht es ja nicht nur um das Umpositionieren von Objekten, sondern auch um das Zurücksetzen von Zuständen. Das läuft am Ende immer auf eine Zustandsspeicherung der gesamten Anlage hinaus.

vor 6 Stunden schrieb gmd:

Da muss ich dir widersprechen.. ich komme ohne aenderungen von variablen etc aus, weil meine scripte so eingerichtet sind. Es ist richtig dass zustaende fuer die meisten eine groessere rolle spielen, aber das ist oft mit einem einfachen loeschen aller temporarer variablen geregelt.

... in Deiner Antwort liegt liegt ein wichtiger Aspekt. Ich nehme an, daß Neo mit "Zuständen" wohl mehr auf den Zustand von z.B. Weichen, Signalen... angesprochen hat und das läßt sich nicht "mit einem einfachen loeschen aller temporarer variablen regeln" und da beginnt die Schwierigkeit für @Neo, Deinen "Spezialfall" zu berücksichtigen bei dem dies (anscheinend) keine Rolle spielt.

P.S.

vor 7 Stunden schrieb gmd:

ich habe mich dazu entschieden meinem programm beizubringen fuer eine selektion (alles eindeutige namen) einen stand (positionen) abzuspeichern und immer wieder abzurufen. Das spart enorm zeit. Hat aber immer noch das problem, dass alle objekt eindeutige namen haben muessen.

... es ist zwar etwas mehr Aufwand aber mit STRG+C (markierte Objekte) und STRG+V läßt sich auch einfach eine Objektliste in einer z.B. Modulvariablen füllen. Dann bist Du unabhängig von eindeutigen Namen. Mit zwei Tastern und den dazugehörigen Ereignissen kannst Du dann die Anfangs-position / -rotation z.B. als Objektvariablen abspeichern und die Objekte wieder auf die Anfangs-position / -rotation bringen... so habe ich dieses "Problem" schon einmal für mich gelöst.

Gruß
EASY

Geschrieben
8 hours ago, EASY said:

Hallo,

... in Deiner Antwort liegt liegt ein wichtiger Aspekt. Ich nehme an, daß Neo mit "Zuständen" wohl mehr auf den Zustand von z.B. Weichen, Signalen... angesprochen hat und das läßt sich nicht "mit einem einfachen loeschen aller temporarer variablen regeln" und da beginnt die Schwierigkeit für Neo, Deinen "Spezialfall" zu berücksichtigen bei dem dies (anscheinend) keine Rolle spielt.

 

Irgendetwas verstehe ich hier nicht, oder sehe ich nicht. Auch weichen und signale spielen nicht wirklich eine rolle wenn scripte robust programmiert sind. Lediglich einige variablen koennten da relevant werden, wenn ein test abgebrochen wird oder wegen fehlern nicht zu ende laeuft.

Beispiel Variable: Wenn ich zustaende in variablen in fahrzeugen speichere, dann so dass am ende eines zyklus (block etc. ) immer ein zustand verbleibt, der bei einem erneuten ausloesen eines kontaktes zurueckgesetzt wird, da er nur an einem "zielkontakt" existieren kann.
Beispiel Signale und Weichen: Am beginn eines scenarios (folge von fahrstrassen etc.) ist es in meinen scripten egal wie weichen und signale, oder auch animationen gesetzt sind. I sorge immer dafuer, dass alle benoetigten elemente aktiv geschaltet werden. Bei mir betritt ein fahrzeug ein gebiet mit einem "auftrag" und einem "ziel".  Der auftrag haengt an einem keyword und nicht an einem bestimmten fahrzeug. Der auftrag legt fest ob zum beispiel ein bahnhofshalt erfolgt oder nicht. Wenn ein solches fahrzeug einen "eingangskontakt" ausloest, und die freigabe bekommt,  (wo auch immer), dann werden alle element bis zum ausgang "reserviert" einschliesslich zustand, und aktiviert je nach bedingungen am jeweiligen abschnitt. Am ende des letzten abschnitts wird der auftrag geleoscht. Ich kann ein fahrzeug mit auftrag and den eingangspunkt zuruecksetzen ohne dass signale oder weichen gestetzt werden muessen, das geschieht automatisch. Natuerlich werde ich beim testen auftrage nicht immer loeschen vor dem zuruecksetzen.

Fuer mich ist das kein "Spezialfall", aber es ist wohl die art wie ich programmiere, dass das so ist. Wenn ich auch noch weichen und signale zuruecksetzen muesste um ein scenario immer wieder zu testen, wuerde ich verrueckt werden, bzw. dann mache ich was gruendlich falsch und meine steuerung ist nicht sehr robust.

Gruss
Gmd

 

Geschrieben
vor 6 Stunden schrieb gmd:

Wenn ich auch noch weichen und signale zuruecksetzen muesste um ein scenario immer wieder zu testen

Das ist aber der Normalfall für dein beschriebenes Feature. Oder Fahrzeuge sollen zurück in ein Depot, Ampeln auf einen Ausgangszustand etc. Ich kann deine Gedanken nachvollziehen, aber wenn ich mir ein neues Feature überlege, dann muss das so allgemeingültig sein wie möglich, keine Sonderlösung. Wenn ein Nutzer eine Anlage ein paar Monate später wieder öffnet, weiß er nicht mehr, welche Zustände genau zurückgesetzt werden müssen, um einen Test zu wiederholen, er verlässt sich darauf, "dass das einfach funktioniert".

Es gibt nur eine wirklich stabile Lösung, und die ist das Zurücksetzen der gesamten Anlage auf einen vorherigen Stand. Das könnte man usability-technisch noch vereinfachen, um nicht ständig Anlagen zu speichern/zu laden, aber letztendlich läuft es darauf hinaus. Wenn du für deinen speziellen Einsatzfall mit dem Zurücksetzen von Positionen auskommst, dann hast du mit Lua und/oder der Steuerschnittstelle bereits gute Lösungen.

Viele Grüße,

Neo

Geschrieben (bearbeitet)

Hallo @gmd,

Neo hat es eigentlich schon beschrieben. Noch ergänzend dazu ein Wort zu "Spezialfall". Du hast eine Szene mit Straßenverkehr, bei dem es z.B. keine Weichen im eigentlichen Sinn gibt. Bedenke bitte, daß es im MBS auch noch den Schienenverkehr gibt und da spielen für den Anfangszustand die Stellungen von z.B. Weichen und Signalen eine bedeutende Rolle (wenn diese im Test in ihrer Stellung verändert werden, sollten sie schon zurückgesetzt werden...)

Gruß
EASY

Bearbeitet von EASY
Geschrieben
3 hours ago, Neo said:

aber wenn ich mir ein neues Feature überlege, dann muss das so allgemeingültig sein wie möglich, keine Sonderlösung.

100% .. kein argument dagegen.. Ich habe nichts gegen einen snapshot der gesamten anlage.

 

2 hours ago, EASY said:

Hallo gmd,

Bedenke bitte, daß es im MBS auch noch den Schienenverkehr gibt und da spielen für den Anfangszustand die Stellungen von z.B. Weichen und Signalen eine bedeutende Rolle (wenn diese im Test in ihrer Stellung verändert werden, sollten sie schon zurückgesetzt werden...)

In meinem beispiel hatte ich schienenverkehr angesprochen und da gilt fuer mich das gleiche. In einer "Einfahrtsituation mit Auftrag", wird ALLES auf einen definierten zustand gesetzt, IMMER. Ich versuche auch soweit wie moeglich variablen zu vermeiden, die nicht automatisch zurueckgesetzt werden koennen, aber das geht nicht immer.
Depots koennen hier eine besondere rolle spielen, das ist wohl ein gutes gegenbeispiel. OK, versteht mich nicht falsch, ich diskutiere hier nicht um recht zu behalten, weit entfernt davon, aber es ist manchmal einfach gut ideen austauschen. 

Viele demos haben das problem dass man sie nicht unterbrechen kann, sie muessen zu ende laufen etc. Man kann nur die anlage neu starten und wehen man hat sie gespeichert. Es ware halt schon zu einer demoanlage immer einen "Ursprungszustand" zu haben, der immer erhalten bleibt bis er neu gesetzt wird. 
Und da gebe ich Neo absolut recht, das macht nur sinn mit allen zustaenden. Aber auch das waere fuer meine zwecke phantastisch und wuerde viel zeit sparen.

Just an idea.

Gruss
Gmd

 

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...