Soft do zmiany

Większość zamieszczanych przeze mnie opisów, dotyczy konstrukcji fizycznych części pulpitu, podłączania elementów, okablowania lub elektroniki. Trochę wspominam o oprogramowaniu ale jest to ta część, która dotyczy mikrokontrolerów obsługujących różne elementy pulpitu lub komunikacji z symulatorem. Nie mam ambicji dokonywać zmian w oprogramowaniu samego symulatora, choć taka możliwość oczywiście istnieje w związku z otwartością projektu, którego źródła każdy może znaleźć na GitHub’ie. Opis ten dotyczy jedynie drobnych zmian, aczkolwiek dość istotnych z mojego punktu widzenia jako użytkownika symulatora w połączeniu z fizycznym pulpitem. Zmiany te w większości powtarzam wraz z publikacją każdej nowej paczki całościowej, a przynajmniej muszę sprawdzić czy istotne pliki nie zawierają zmian, które utrudniłyby korzystanie z pulpitu. Zmiany te podzieliłem na kilka grup, które opisuję poniżej.

Komunikacja UART

Jednym z najważniejszych elementów oprogramowania są pliki konfiguracyjne znajdujące się w głównym katalogu symulatora:

  • eu07.ini
  • eu07_input-keyboard.ini
  • eu07_input-uart.ini

Zawierają one najważniejsze ustawienia zarówno pracy samego symulatora jak i komunikacji z pulpitem. Większość ustawień zawartych w pliku eu07.ini dokonać można za pośrednictwem nowego startera ale dla pewności zawsze trzymam kopię bezpieczeństwa tych plików. Najważniejszymi wpisami dotyczącymi komunikacji z Arduino MEGA, a tym samym pozwalającymi na jakąkolwiek interakcję pulpitu z symulatorem są poniższe linie:

uart COM3 115200 0.03 0.03
uarttune 26 225 71 236 1.4 255 0.8 255 0.8 255 0.8 255 4000 255 800 255 150 255
uartfeature yes yes yes yes
uartdebug no

Ostatnie zmiany w exe wprowadziły rozszerzoną obsługę radiotelefonu (bezpośredni odczyt kanału i poziomu głośności) co pociągnęło za sobą konieczność zmian we wpisie uartfeature. Obecny wpis, który działa od paczki 23.04 wygląda tak:

uartfeature main|scnd|train|local|radiovolume|radiochannel

Niestety na razie Starter potrafi nadpisać ten wiersz jego starszą wersją (yes/no) więc trzeba na to uważać ale jest szansa, że i on zostanie wkrótce dostosowany do nowych wymagań.

Wpis uarttune zawiera oczywiście wartości charakterystyczne dla mojego pulpitu i nie można go wprost wykorzystać w innych konstukcjach. Podobnie dwa kolejne pliki .ini zawierają ustawienia charakterystyczne dla mojego pulpitu i zastosowanych w nim połączeń. Zawartość musi odpowiadać specyfice oprogramowania Arduino MEGA tak aby dane manipulatorów wejściowych takich jak przyciski i przełączniki pracowały zgodnie z założeniem. Bardzo istotne jest zatem aby zawartość nie uległa niekontrolowanej zmianie np. podczas wykonywania aktualizacji. Przechodząc na kolejne paczki całościowe zwykle muszę podmienić oryginalne pliki moimi wersjami odpowiadającymi aktualnej wersji oprogramowania elektroniki pulpitu.

Widok z kabiny

Standardowy widok z kabin maszynisty zakłada, że poza przednim oknem będą również widoczne główne wskaźniki w postaci mierników elektrycznych i manometrów, a także prędkościomierz. Z mojego punktu widzenia są to całkowicie zbędne elementy. Moim domyślnym widokiem jest po prostu okno przed fotelem maszynisty i to wszystko co widać za nim. W związku z tym muszę dokonać kilku zmian w pliku .mmd wykorzystywanej lokomotywy. Moją ulubioną maszyną jest EU07-336 czyli typ 303e, zatem muszę znaleźć plik 303e.mmd i zmienić fragment dotyczący granic obszaru kabin oraz położenia kamer.

cab1definition:
-1.67 1.5 5.61 1.67 1.5 6.7
driver1angle:
0 0
driver1pos:
-0.82 3.05 6.21 //okno - head
driver1sitpos:
-0.82 3.05 6.21 //okno - head

cab2definition:
-1.67 1.5 -6.7 1.67 1.5 -5.51
driver2angle:
0 0
driver2pos:
0.84 3.05 -6.23 //okno - rear
driver2sitpos:
0.84 3.05 -6.23 //okno - head

Powyższe wartości są odpowiednie dla pola widzenia kamer fieldofview 45 ustawionego w pliku eu07.ini.

Jak widać wpisy dotyczące pozycji stojącej i siedzącej są identyczne. Musiałem zastosować taki zabieg ze względu na wprowadzenie przycisków na emulatorze przedziału maszynowego pozwalających na przechodzenie między kabinami. Przyciśnięcie przycisku z przeciwnej kabiny powoduje wejście do przedziału maszynowego (pierwsze przyciśnięcie), a następnie wejście do drugiej kabiny (drugie przyciśnięcie) i zajęcie od razu pozycji siedzącej przed nastawnikiem.

Alternatywnie można pozostawić położenie kamery i tylko zmodyfikować kąt widzenia

fieldofview 24

Obecnie nie trzeba nawet ręcznie modyfikować pliku eu07.ini bo jest to też możliwe w ustawieniach grafiki nowego startera.

Zmieniłem również położenie kamery w korytarzu tak aby od razu mieć widok na kurek trójdrogowy i manometr małej sprężarki mimo tego, że mam już podłączony emulator przedziału maszynowego.

cab0definition:
-0.3 1.5 -4.6 0.3 1.5 4.6
driver0angle:
70 -1
driver0pos:
-0.3 2.8 -2.1

Hasler

Pliki z oryginalnymi teksturami

Od chwili pojawienia się prawdziwego Haslera na pulpicie, ten wyświetlany na ekranie stał się zbędny, a w zasadzie trochę przeszkadzający. Oczywiście odpowiednie położenie kamery minimalizuje widoczność obudowy prędkościomierza jednak może ona być nadal częściowo widoczna na ekranie. Na szczęście Hasler jest oddzielnym modelem, który można zmodyfikować niezależnie od pozostałych elementów pulpitu. Aby to zrobić należy odszukać katalog components, znajdujący się wewnątrz katalogu z modelami lokomotyw, czyli w moim przypadku wewnątrz katalogu 303e_v1. Tam znajdziemy 10 plików .dds zawierających tekstury różnych modeli prędkościomierza Hasler RT-9 i A-16.

Zalecane ustawienia programu paint.net

Można je zmodyfikować programem graficznym (np paint.net) wycinając całą grafikę i pozostawiając wyłącznie przezroczysty obszar. Oczywiście należy zachować oryginalne nazwy plików .dds przy ustawionych parametrach programu pokazanych na zrzucie ekranowym. Różne modele lokomowyw mają swoje wersje tekstur, więc chcąc usunąć je również z innych kabin należy wykonać podobną modyfikację dla plików znajdujących się w katalogu components dla danego modelu lokomotywy.

Ja zrobiłem to raz, więc przy chęci użycia nowej paczki wystarczy zamienić oryginalne pliki ich przezroczystymi odpowiednikami. Po tej operacji wnętrze kabiny zostanie pozbawione widoku prędkościomierza.

Pulpit po usunięciu Haslera

Dźwięki

Ostatnią zmianą, którą robię jest usunięcie zbędnych dźwięków wydawanych przez elementy pulpitu. Pozostawiając ten etap w oryginalnej wersji, każde przyciśnięcie przycisku lub przełączenie hebelka spowodowałoby odtworzenie podobnego dźwięku z lekkim opóźnieniem przez sam symulator. Podobna sytuacja dotyczy również dźwięków pracy prędkościomierza. Nie ma potrzeby dublować tych odgłosów, które niepotrzebnie pogarszałyby również wrażenia całej symulacji. Nie jest to zmiana niezbędna do współpracy pulpitu z symulatorem, podobnie jak ukrycie obudowy prędkościomierza jednak poprawia estetykę. Ta zmiana bywa dość czasochłonna i najlepiej byłoby po prostu podmienić plik wcześniej zmodyfikowany. Zdaża się jednak, że nowe paczki wprowadzają coś do obsługi mojej lokomotywy więc staram się porównać wcześniej zmodyfikowany plik 303e.mmd z jego najnowszą wersją i dokonać tylko niezbędnych zmian. Pomocny w tym przypadku jest program WinMerge, za pomocą którego można łatwo porównywać zawartość różnych plików. Podobnie jak w przypadku ukrywania widoku haslera poprzez zastąpienie kolorowych tekstur przezroczystymi warstwami, to w przypadku dźwięków zastępuję odwołania do konkretnych plików dźwiękowych odwołaniem do krótkiego pliku z… ciszą. Plik silence1.ogg jest domyślnie dostępny w każdej paczce i znajduje się w katalogu sounds, więc nie ma potrzeby tworzenia własnej wersji ciszy.

Zmian tych trzeba zrobić dość sporo bo dotyczą wielu elementów pulpitu dlatego poniżej pokazuję jedynie przykładową linię dotyczącą przycisku czuwaka

security_reset_bt: { przycisk-czuwak mov -0.006 0 0.1 soundinc: silence1.ogg sounddec: silence1.ogg }

Standardowo w sekcji syreny jest wiele wpisów dźwięków, które podczas uruchamiania symulacji są losowane i powoduje to możliwość wykorzystania za każdym razem innych dźwięków syren nisko i wysokotonowej. Aby tego uniknąć, bo w końcu prowadzę zawsze tę samą lokomotywę EU07-336, to wybrałem sobie taki zestaw, który najbardziej mi się podoba i pozostawiłęm go jako jedyną możliwość.
Teraz ten fragment pliku 303e.mmd wygląda tak:

horn1: { soundset: [ 4873_ep07-start-2.wav|4873_ep07-trwa-2.wav|4873_ep07-stop-2.wav ] range: 900 } 
horn2: { soundset: [ 14745_41syrwys_start.wav|14745_41syrwys_trwa.wav|14745_41syrwys_stop.wav ] range: 950 }

Najnowsza wersja symulatora 22.08 wniosła pewną modyfikację dotyczącą dźwięków syren. Nie są one już przechowywane bezpośrednio w pliku .mmd, a są tam teraz dołączane poprzez include z zewnętrznych plików horn_setX.inc. W związku z tym, dotychczasowa modyfikacja musi się zmienić.

Aktualny wpis:

include [ horn_set1.inc horn_set2.inc horn_set3.inc horn_set4.inc horn_set5.inc horn_set6.inc horn_set7.inc horn_set8.inc horn_set9.inc horn_set10.inc horn_set11.inc horn_set12.inc horn_set13.inc ] end

zamieniłem na:

include [ horn_setMB.inc ] end

i dodałem swój plik horn_setMB.inc zawierający wybrane dźwięki, tak aby efekt pozostał bez zmian:

horn1: { soundbegin: 4873_ep07-start-2.wav soundmain: 4873_ep07-trwa-2.wav soundend: 4873_ep07-stop-2.wav range: 1000 }
horn2: { soundbegin: 14745_41syrwys_start.wav soundmain: 14745_41syrwys_trwa.wav soundend: 14745_41syrwys_stop.wav range: 1000 }

One thought on “Soft do zmiany

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.