ISDR - Symulator prowadzenia ruchu kolejowego
Forum Główne => ISDR - Tematy ogólne => Wątek zaczęty przez: robert051 w 06 Grudzień 2010, 22:08:28
-
Witam. Czy dało by radę dodać inną wersje.
Testowo Wschód, 88774 zgłasza się do próby łączności.
Chodzi mnie o:
Testowo Wschód 88774 jak słychać?
Testowo Wschód, 88774 zgłasza się do próby radia.
Te 2 teksty tylko że z innymi nazwami własnymi są zasłyszane z radia kolejowego.
-
Względnie TW XXXX zgłasza się do próby łączności po zmianie kanału ;)
PS Paweł, a na szlaku z TZ nie powinno być znaku, że obowiązuje inny kanał łączności ??
Bo chyba go nie ma w wizualizacji ;)
-
Oprócz tego czemu nie ma Pań Dyżurnych w ISDR ?? Często się je spotyka a sami mężczyźni są dyżurnymi. To tak jako dodatek do innej wersji tekstu.
-
Jak najbardziej mogę coś dodać lub zmienić, aktualnie używana lista tekstów wygląda następująco:
(numer) zgłasza się do próby łączności. (Proszę o wjazd./Wjazdowy na stój.)
(numer), próba łączności. (Proszę o wjazd./Wjazdowy na stój.)
(posterunek), wjazdowy na stój, (z kierunku).
(posterunek), wjazdowy na stój, (numer).
(posterunek), wjazdowy na stój, (z kierunku), (numer).
(posterunek), proszę o wjazd dla (numer).
(posterunek), proszę (numer).
(posterunek), wjazd dla (numer) proszę.
(posterunek), wjazd dla (numer).
(posterunek), wjazd (z kierunku) proszę, (numer).
(posterunek), wjazd (z kierunku), (numer).
(posterunek), (z kierunku) proszę, (numer).
(posterunek), (z kierunku), (numer).
(posterunek), wjazd (z kierunku) proszę.
(posterunek), wjazd (z kierunku).
(posterunek), będzie wjazd (z kierunku).
(posterunek), będzie wjazd (z kierunku)?
(posterunek), (z kierunku) proszę.
(posterunek), (z kierunku).
(posterunek), (numer).
Względnie TW XXXX zgłasza się do próby łączności po zmianie kanału ;)
PS Paweł, a na szlaku z TZ nie powinno być znaku, że obowiązuje inny kanał łączności ??
Bo chyba go nie ma w wizualizacji ;)
Niektóre wskaźniki sobie podarowałem, mogę to dodać. I tak ta "próba łączności" jest na niby, skład żadnego kanału nie zmienia, wcześniej też możesz go normalnie wywołać ;)
Co do pań dyżurnych ruchu - po prostu ściągnąłem listę najpopularniejszych nazwisk z jakiejś strony internetowej (no, i dodałem kilka bonusowych :P), i nazwiska te były w formie męskiej. Nazwisk w bazie jest ok. 300 (może to przerobić i zostawić max. kilkadziesiąt?). Trzeba by przerobić je na formę damską (sporo roboty) i dorobić do symulatora rozróżnienie płci uwzględniane przy niektórych telefonogramach (trochę mniej roboty). Poniżej pełna lista:
http://wklej.org/id/433142/txt/
-
Jak chcesz to te listę nazwisk można wspólnymi siłami (znaczy się tych co są na forum) przerobić na damską wersje. Jak coś to pomożecie przy tej modyfikacji ??
Paweł czy mógłbyś wyciągnąć z ISDR plik z telefonogramami żeby kto umiał mógł je programować na swój sposób a potem w wersji dostosowanej do programu podać na forum je??
-
Nie ma pliku telefonogramów, jest funkcja która je generuje na podstawie podanego rodzaju telefonogramu, numeru, godziny, toru i innych parametrów:
//wzory telefonogramow
function TForm1.WzorTel(wzor: string; posterunek,kto,numer,tor,godz,szlod,szldo,powod,opozn,numerbd,przez,semaf,km: string; nazmk: boolean): string;
var r,t: string; przed,po: boolean; rozn: single;
begin
r:='';
przed:=false;
po:=true;
if strtotimedef(godz,-1)=-1 then godz:='' else
begin
t:=timetostr(srk1.czas);
delete(t,6,3);
rozn:=strtotime(godz)-strtotime(t);
if rozn>0.5 then rozn:=rozn-1;
if rozn<-0.5 then rozn:=rozn+1;
przed:=rozn>0;
po:=rozn<0;
end;
if (pos('manewr',lowercase(numer))=1) and (length(numer)>6) and ((tor='') or (wzor='zmkp')) then
begin
if wzor='zmkp' then
begin
delete(numer,1,6);
numer:=inttostr(strtointdef(numer,-1));
if numer='-1' then numer:='';
end else
begin
tor:=numer;
delete(tor,1,6);
end;
end;
if (tor<>'') and (pos('lew',lowercase(tor))=0) and (pos('praw',lowercase(tor))=0) then
tor:='numer '+tor;
//slucham
if wzor='sluch' then
begin
if posterunek<>'' then r:=posterunek;
if kto<>'' then r:=r+', '+kto;
case random(3) of
0: if r='' then r:='Słucham.' else r:=r+', słucham.';
1: if r='' then r:='Proszę.' else r:=r+', proszę.';
2: if r='' then r:='Tak.' else r:=r+'.';
end;
end else
//przedstawienie sie
if wzor='przedst' then
begin
if posterunek<>'' then r:=posterunek;
if kto<>'' then r:=r+', '+kto;
r:=r+'.';
end else
//przyjalem
if wzor='ok' then
begin
case random(2) of
0: r:='Przyjąłem';
1: r:='Zrozumiałem';
end;
if length(numer)>0 then
if numer[1]=',' then delete(numer,1,1);
if length(numer)>0 then
if numer[length(numer)]=',' then delete(numer,length(numer),1);
numer:=StringReplace(numer,',',', ',[rfReplaceAll]);
numer:=StringReplace(numer,' ',' ',[rfReplaceAll]);
if numer<>'' then
r:=r+', '+numer;
r:=r+'.';
end else
//zadanie pozwolenia
if wzor='zpoz' then
begin
r:='Czy droga dla pociągu '+numer;
if tor<>'' then
begin
r:=r+' po';
if nazmk then r:=r+' zamkniętym';
r:=r+' torze '+tor;
end else
if nazmk then r:=r+' po torze zamkniętym';
r:=r+' jest wolna?';
end else
//zadanie pozwolenia - jazda do km
if wzor='zpozkm' then
begin
if pos('manewr',lowercase(numer))=1 then
begin
r:='Czy droga dla manewrów na';
if nazmk then r:=r+' zamknięty';
r:=r+' tor szlakowy';
if tor<>'' then r:=r+' '+tor;
if km<>'' then r:=r+' do '+km;
r:=r+' jest wolna?';
end else
begin
if km='' then km:='kilometra i z powrotem';
r:='Czy droga dla pociągu '+numer;
if tor<>'' then
begin
r:=r+' po';
if nazmk then r:=r+' zamkniętym';
r:=r+' torze '+tor;
end else
if nazmk then r:=r+' po torze zamkniętym';
r:=r+' do '+km+' jest wolna?';
end;
end else
//danie pozwolenia
if wzor='dpoz' then
begin
if pos('manewr',lowercase(numer))=1 then
begin
r:='Dla manewrów na';
if nazmk then r:=r+' zamknięty';
r:=r+' tor szlakowy';
if tor<>'' then r:=r+' '+tor;
r:=r+' droga jest wolna.';
end else
r:='Dla pociągu '+numer+' droga jest wolna.';
end else
//czekac
if wzor='czekac' then
r:='Czekać.' else
//odjazd
if wzor='odj' then
begin
if pos('manewr',lowercase(numer))=1 then
begin
r:='Manewr wyjechał na';
if nazmk then r:=r+' zamknięty';
r:=r+' tor szlakowy';
if tor<>'' then r:=r+' '+tor;
r:=r+'.';
end else
begin
r:='Pociąg '+numer;
if przed then r:=r+' odjedzie' else
if po then r:=r+' odjechał' else
r:=r+' odjeżdża';
if godz<>'' then r:=r+' o godzinie '+godz;
if tor<>'' then
begin
r:=r+' po';
if nazmk then r:=r+' zamkniętym';
r:=r+' torze '+tor;
end else
if nazmk then r:=r+' po torze zamkniętym';
if km<>'' then r:=r+' do '+km;
r:=r+'.';
end;
end else
//odjazd (wymuszone odjedzie)
if wzor='odje' then
begin
if pos('manewr',lowercase(numer))=1 then
begin
r:='Manewr wyjedzie na';
if nazmk then r:=r+' zamknięty';
r:=r+' tor szlakowy';
if tor<>'' then r:=r+' '+tor;
r:=r+'.';
end else
begin
r:='Pociąg '+numer;
r:=r+' odjedzie';
if godz<>'' then r:=r+' o godzinie '+godz;
if tor<>'' then
begin
r:=r+' po';
if nazmk then r:=r+' zamkniętym';
r:=r+' torze '+tor;
end else
if nazmk then r:=r+' po torze zamkniętym';
if km<>'' then r:=r+' do '+km;
r:=r+'.';
end;
end else
//przyjazd
if wzor='przyj' then
begin
if pos('manewr',lowercase(numer))=1 then
begin
if tor<>'' then r:='Manewry na tor szlakowy '+tor+' są ukończone i tor ten jest wolny.'
else r:='Manewry na tor szlakowy są ukończone i tor ten jest wolny.';
end else
begin
r:='Pociąg '+numer+' przyjechał';
if godz<>'' then r:=r+' o godzinie '+godz;
r:=r+'.';
end;
end else
//przejazd
if wzor='przej' then
begin
r:='Pociąg';
if numer<>'' then r:=r+' '+numer;
if przed then r:=r+' przejedzie' else
r:=r+' przejechał';
if przez<>'' then r:=r+' przez '+przez;
if godz<>'' then r:=r+' o '+godz;
r:=r+'.';
end else
//stoj
if wzor='stoj' then
begin
if pos('manewr',lowercase(numer))=1 then
begin
r:='Zatrzymać manewry na tor szlakowy';
if tor<>'' then r:=r+' '+tor+'.' else r:=r+'.';
end else
r:='Stój pociąg '+numer+'.';
end else
//zatrzymany
if wzor='zatrz' then
begin
if pos('manewr',lowercase(numer))=1 then
begin
r:='Manewry na tor szlakowy';
if tor<>'' then r:=r+' '+tor+' zatrzymane.' else r:=r+' zatrzymane.';
end else
r:='Pociąg '+numer+' zatrzymany.';
end else
//wstrzymanie wyprawiania pociagow
if wzor='wwp' then
begin
r:='Nie wyprawiać pociągów';
if tor<>'' then r:=r+' po torze '+tor;
if powod<>'' then r:=r+' z powodu '+powod;
if godz<>'' then r:=r+' od '+godz;
r:=r+' aż do odwołania.';
end else
if wzor='owwp' then
begin
r:='Wstrzymanie wyprawienia pociągów';
if tor<>'' then r:=r+' po torze '+tor;
r:=r+' odwołuję';
if godz<>'' then r:=r+' o '+godz;
r:=r+'.';
end else
//wprowadzenie tzp
if wzor='wtzp' then
begin
if godz<>'' then r:='O '+godz+' wprowadzam telefoniczne zapowiadanie pociągów po torze szlakowym'
else r:='Wprowadzam telefoniczne zapowiadanie pociągów po torze szlakowym';
if tor<>'' then r:=r+' '+tor;
if (szlod<>'') and (szldo<>'') then r:=r+' od '+szlod+' do '+szldo;
if powod<>'' then r:=r+' z powodu '+powod;
r:=r+'.';
end else
//odwolanie tzp
if wzor='otzp' then
begin
if godz<>'' then r:='O '+godz+' odwołuję telefoniczne zapowiadanie pociągów po torze szlakowym'
else r:='Odwołuję telefoniczne zapowiadanie pociągów po torze szlakowym';
if tor<>'' then r:=r+' '+tor;
if (szlod<>'') and (szldo<>'') then r:=r+' od '+szlod+' do '+szldo;
r:=r+'.';
end else
//wprowadzenie ruchu dwukierunkowego przy drugim torze zamknietym
if wzor='wr2k1' then
begin
if (szlod<>'') and (szldo<>'') then
r:='Od '+szlod+' do '+szldo+' wprowadzam ruch jednotorowy dwukierunkowy po torze szlakowym'
else r:='Wprowadzam ruch jednotorowy dwukierunkowy po torze szlakowym';
if tor<>'' then r:=r+' '+tor;
if (numer<>'') and (godz<>'') then r:=r+', po którym ostatni pociąg '+numer+' odjechał o '+godz;
r:=r+'.';
end else
//wprowadzenie ruchu dwukierunkowego przy drugim torze otwartym
if wzor='wr2k2' then
begin
r:='Przy czynnych obu torach wprowadzam';
if (szlod<>'') and (szldo<>'') then r:=r+' od '+szlod+' do '+szldo;
r:=r+' ruch dwukierunkowy po torze szlakowym';
if tor<>'' then r:=r+' '+tor;
if (numer<>'') and (godz<>'') then r:=r+', po którym ostatni pociąg '+numer+' odjechał o '+godz;
r:=r+'.';
end else
//odwolanie ruchu dwukierunkowego
if wzor='or2k' then
begin
r:='Przywracam ruch dwutorowy';
if (szlod<>'') and (szldo<>'') then r:=r+' od '+szlod+' do '+szldo;
if tor<>'' then r:=r+' po torach szlakowych '+tor;
if godz<>'' then r:=r+' o '+godz;
r:=r+'.';
end else
//polecenie wprowadzenia ruchu dwukierunkowego przy drugim torze zamknietym
if wzor='pwr2k1' then
begin
r:='Wprowadzić ruch jednotorowy dwukierunkowy';
if (szlod<>'') and (szldo<>'') then r:=r+' od '+szlod+' do '+szldo;
r:=r+' po torze szlakowym';
if tor<>'' then r:=r+' '+tor;
r:=r+'.';
end else
//polecenie wprowadzenia ruchu dwukierunkowego przy drugim torze otwartym
if wzor='pwr2k2' then
begin
r:='Przy czynnych obu torach wprowadzić ruch dwukierunkowy';
if (szlod<>'') and (szldo<>'') then r:=r+' od '+szlod+' do '+szldo;
r:=r+' po torze szlakowym';
if tor<>'' then r:=r+' '+tor;
r:=r+'.';
end else
//polecenie odwolania ruchu dwukierunkowego
if wzor='por2k' then
begin
r:='Przywrócić ruch dwutorowy';
if (szlod<>'') and (szldo<>'') then r:=r+' od '+szlod+' do '+szldo;
if tor<>'' then r:=r+' po torach szlakowych '+tor;
r:=r+'.';
end else
//zamkniecie toru
if wzor='zmk' then
begin
r:='Tor szlakowy';
if tor<>'' then r:=r+' '+tor;
if (szlod<>'') and (szldo<>'') then r:=r+' od '+szlod+' do '+szldo;
r:=r+' zamknięty';
if godz<>'' then r:=r+' od '+godz;
if powod<>'' then r:=r+' z powodu '+powod;
r:=r+'.';
end else
//otwarcie toru
if wzor='ozmk' then
begin
r:='Tor szlakowy';
if tor<>'' then r:=r+' '+tor;
if (szlod<>'') and (szldo<>'') then r:=r+' od '+szlod+' do '+szldo;
r:=r+' otwarty';
if godz<>'' then r:=r+' o '+godz;
r:=r+'.';
end else
//zamkniecie przejazdu
if wzor='zmkp' then
begin
r:='Zamknij przejazd';
if strtointdef(numer,0)>0 then
begin
if strtoint(numer)=1 then
r:=r+' na 1 jazdę manewrową'
else if numer[length(numer)] in ['2','3','4'] then
r:=r+' na '+numer+' jazdy manewrowe'
else r:=r+' na '+numer+' jazd manewrowych';
end;
r:=r+'.';
end else
//otwarcie przejazdu
if wzor='otwp' then
r:='Otwórz przejazd.' else
//nie przejechal
if wzor='nieprzej' then
r:='Pociąg '+numer+' nie przejechał.' else
//informacja o wjezdzie pociagu dla posterunku skp/droznika
if wzor='wjedzie' then
begin
if pos('manewr',lowercase(numer))=1 then
r:='Manewr' else
begin
r:='Pociąg';
if numer<>'' then r:=r+' '+numer;
end;
if przed then r:=r+' wjedzie' else r:=r+' wjeżdża';
if godz<>'' then r:=r+' o '+godz;
if tor<>'' then r:=r+' po torze '+tor;
r:=r+'.';
end else
//wprowadzenie zglaszania konca pociagu
if wzor='wskp' then
begin
r:='Wprowadzam zgłaszanie sygnałów końca pociągu';
if godz<>'' then r:=r+' od '+godz;
if tor<>'' then r:=r+' na torze szlakowym '+tor;
if powod<>'' then r:=r+' z powodu '+powod;
r:=r+'.';
end else
//odwolanie zglaszania konca pociagu
if wzor='oskp' then
begin
r:='Odwołuję zgłaszanie sygnałów końca pociągu';
if godz<>'' then r:=r+' od '+godz;
if tor<>'' then r:=r+' na torze szlakowym '+tor;
r:=r+'.';
end else
//telefonogramy uzywane zasadniczo tylko przez ai
if wzor='jakinr' then r:='Jaki numer?' else
if wzor='coz' then r:='Co z pociągiem '+numer+'?' else
if wzor='jakitor' then r:='Jaki tor?' else
if wzor='cowyj' then r:='Co wyjechało?' else
if wzor='opozn' then r:=numer+' opóźniony około '+opozn+' minut.' else
if wzor='stojbd' then r:='Stój '+numer+', brak dojścia '+numerbd+'.' else
if wzor='nmwypbd' then r:='Nie mogę wyprawić '+numer+', brak dojścia '+numerbd+'.' else
if wzor='zblok' then
begin
r:='Zablokuj blok początkowy';
//if tor<>'' then r:=r+' na torze '+tor;
r:=r+'.';
end else
if wzor='nmpwyj' then r:='Nie mogę wyprawić pociągu '+numer+'.' else
if wzor='przyjzskp' then r:='Pociąg '+numer+' przyjechał z sygnałem końca pociągu.' else
if wzor='przyjbskp' then r:='Pociąg '+numer+' przyjechał bez sygnału końca pociągu.' else
if wzor='zmkty' then r:='Przejazd zamknięty.' else
if wzor='awrrgsd' then r:='Usterka urządzeń na przejeździe.' else
if wzor='awrsem' then r:='Usterka semafora odstępowego '+semaf+'.' else
if wzor='awrbl' then
begin
if tor='' then
r:='Blokada liniowa działa nieprawidłowo.'
else
r:='Blokada liniowa w torze '+tor+' działa nieprawidłowo.';
end else
if wzor='wogrssp' then
begin
if tor<>'' then
begin
r:='Wprowadzam ograniczenie prędkości do 20 km/h w kilometrze '+km+' na torze '+tor+' z powodu usterki urządzeń SSP.';
end else
r:='Wprowadzam ograniczenie prędkości do 20 km/h w kilometrze '+km+' z powodu usterki SSP.';
end else
if wzor='oogrssp' then
begin
if tor<>'' then
begin
r:='Odwołuję ograniczenie prędkości w kilometrze '+km+' na torze '+tor+'.';
end else
r:='Odwołuję ograniczenie prędkości w kilometrze '+km+'.';
end else
raise Exception.Create('Błąd przy wywołaniu WzorTel: nieprawidłowy wzór "'+wzor+'". Proszę o kontakt i opis okoliczności wystąpienia błędu.');
result:=r;
end;
-
Mały OT, patrząc na kod źródłowy telefonogramów to, aż tak źle nie ma ;) jakiś mega komplikacji.
-
Owszem, tu akurat nie ma niczego skomplikowanego, gorzej jest z kodem AI - momentami ja sam już nie wiem co się tam dzieje :P