Zdarzenia

reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Zdarzenia

Post autor: reticulan »

Wszystko działa. Można także używać wyrażenia "lub"

this.ActiveTrain.Speed_Km() < 20 || this.ActiveTrain.Speed_Km() > 39

czyli z prędkościami poniżej 20 i powyżej 39 wykonaj działanie.
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Zdarzenia

Post autor: reticulan »

gbbsoft pisze: 10 lip 2022, 17:25 Teoretycznie powinien wykonywać jedno po drugim. Zakończenie pierwszego wywołuje rozpoczęcie wykonywania drugiego.

Jeżeli nie program zmienia prędkości, to sprawdza (nie częściej niż) co 0.5s stan lokomotywy w centralce. Może tu jest problem.
Jednak jak wrzucę pod jedną pętle, także zajmuje programowi sporo czasu aż przeleci całą pętle, a jest tam tylko 12 składników. Chodzi o testowanie nastawionej prędkości w programie, a nie sprawdzenie stanu dekodera. Nie wiem skąd te opóźnienia. Czasem całkiem przywiesi się zdarzenie i pomaga tylko restart programu. Program żadnych błędów nie podaje. Te opóźnienia występują tylko w zdarzeniach w menu lokomotywy. Jeśli zdarzenia są pod przyciskiem urządzenie takich opóźnień nie ma. Tak jakby próbkowanie jest za rzadkie, nie wiem jak to nazwać, zbyt rzadko program sprawdza stan nastawy. Gdy się wolno zmienia prędkość to jest ok, ale jak się często zmienia lub zbyt szybko pojawiają się opóźnienia. Po ok 20-30 sekundach szybkich zmian program w sumie dogania "rzeczywistość" ale miedzy czasie informacja się gubi i zdążę wykonać kilka manewrów, zanim sytuacja się ustabilizuje.

Jest 12 takich pętelek pod jednym zdarzeniem i każda sprawdza różne zakresy prędkości i odpala tylko urządzenie przycisk, coś na zasadzie kontrolek na pulpicie. Szczegóły na rysunkach, w czerwonym kółku jest jak powinno być. jak zmienię prędkość powinno przeskoczyć na 40 albo na 80 ale czasem działa natychmiast a czasem z dużym opóźnieniem. Według zamysłu ma to działać jako wskaźnik prędkości aktualnej.
Załączniki
speed.jpg
set.jpg
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Zdarzenia

Post autor: reticulan »

Dadam jeszcze ze te opóźnienia to nie wina wolnego kompa. Zarówno na moim i5 9600k jak i na 10 letnim notebooku z prockiem Intel atom opóźnienia są takie same. Wychodzi na to że program wpada w jakieś puste pętle.
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Zdarzenia

Post autor: gbbsoft »

Spróbuj stworzyć nową planszę, najmniejsza możliwą, gdzie ten efekt można by zaobserwować i wrzuć na forum.
Np: jedna lokomotywa + jedno zdarzenie.

PS. Zdarzenie "device change" wymaga komunikacji z centralką, a to trwa...
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Zdarzenia

Post autor: reticulan »

Juz to sprawdzałem. Jedna lokomotywa i jedno zdarzenie działa momentalnie nawet na aktualnej planszy. Problem pojawia sie podczas gdy program musi sprawdzać kilka warunków jednocześnie dla jednej lokomotywy, niektóre pomija wracając do nich później lub wykonuje je w innej niż oczekiwana kolejności. Z dwoma lub trzema też jest ok. Opóźnienia w granicach 1 do 2 sekund. Ale przy pięciu czy sześciu to już robi się nawet 30 sekund albo w ogóle się nie odpala zawieszając się. Ale tak jak mówię testuje bez łączenia się z dcc. Może jak będę połaczony to będzie działać szybciej. Sprawdzę to jutro.
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Zdarzenia

Post autor: gbbsoft »

Ale tu chodzi o to, abym ja mógł to powtórzyć, jeśli mam coś poprawić.
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Zdarzenia

Post autor: reticulan »

Ok. Przygotuje plik i podeślę. Wraz z instrukcją co zrobić żeby wywołać opóźnienie
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Zdarzenia

Post autor: reticulan »

Wstawiłem te pliki, ale do nich krótki opis:

plik exp1 jest wersją gdzie jest jedno zdarzenie z wieloma obiektami
plik exp2 jest wersją gdzie zrobiłem osobne zdarzenia do każdego obiektu

efekt jest ten sam tylko w pliku exp2 obserwuję ciut większe opóźnienia

no i wreszcie plik 6.4 czyli ten aktualny ze wszystkimi możliwymi przeze mnie używanymi opcjami taki oryginalny.

Ogólnym założeniem było stworzyć taki wskaźnik prędkości

Poniżej opis jak sprawdzić i wywołać opóźnienia.

Lok jest sprofilowany, przy rozpędzaniu i zwalnianiu lokomotywy powinny się zapalać okienka (urządzenia) odpowiadające prędkości loka w/g schematu

Przy prędkości:

0 - przycisk stop
1-20 okienko 20 reszta wygaszona
21-40 okienko 40 reszta wygaszona
41-60 okienko 60 reszta wygaszona
61-80 okienko 80 reszta wygaszona
81-90 okienko 90 reszta wygaszona

Gdy się wolno przełącza prędkości to jakoś działa, ale jak się szybko zmienia, raz 30 raz 50 raz 70 potem znów40 i znów 80 km/h to głupieje i gubi wątek. Obawiam się że związane jest to z działaniem samego zdarzenia "po zmianie prędkości" gdzie jak sama nazwa mówi że pętla zdarzenia wywoływana jest w momencie zmiany prędkości. Więc gdy prędkość się nie zmienia to zdarzenie nie jest wywoływane. Dlatego na początku po otwarciu planszy nie świeci się okienko STOP. bo program nie wie że ma coś zrobić bo nie ma zmiany prędkości. ale wystarczy ruszyć lokiem i zahamować i STOP się zapali. Podejrzewam że tak jest resztą pętli. Jak się nie trafi w punkt to źle zmienia albo z opóźnieniem. Sam nie wiem.


PS. Dodatkowo na planszy 6.4 można się pobawić scenariuszami losowo wybieranych prędkości na losowy okres czasu używając przycisków na drugiej planszy opisanej jako automatyzacja. Przyciski do obsługi lokomotywy BR112 to LOW3, MID3 oraz HIG3, żeby zakończyć losowość danego scenariusza trzeba wyłączyć spowrotem któryś z przycisków, lub on sam się wyłącz po ok 3-8 minutach. ale do testowania ręcznego lepiej wyłączyć je.
Załączniki
exp1.plansza
(180.22 KiB) Pobrany 30 razy
exp2.plansza
(229.92 KiB) Pobrany 30 razy
6.4.plansza
(6.97 MiB) Pobrany 28 razy
Awatar użytkownika
gbbsoft
Admin
Posty: 2179
Rejestracja: 09 lip 2008, 23:19
Miasto: Warszawa
System DCC: Lenz + Roco

Re: Zdarzenia

Post autor: gbbsoft »

Miałeś rację. Był błąd w obsłudze urządzeń ze zdarzeń, co powodowało, że program niepotrzebnie czekał 20sek po każdej próbie zmiany zdarzenia.
reticulan
Posty: 237
Rejestracja: 29 maja 2018, 21:37
Miasto: Częstochowa
System DCC: Roco 10764

Re: Zdarzenia

Post autor: reticulan »

Da radę to zmodyfikować??
ODPOWIEDZ