diff options
-rw-r--r-- | lib/Travel/Status/DE/IRIS/Result.pm | 173 |
1 files changed, 89 insertions, 84 deletions
diff --git a/lib/Travel/Status/DE/IRIS/Result.pm b/lib/Travel/Status/DE/IRIS/Result.pm index 74f109f..9cb3ddb 100644 --- a/lib/Travel/Status/DE/IRIS/Result.pm +++ b/lib/Travel/Status/DE/IRIS/Result.pm @@ -16,6 +16,83 @@ use List::MoreUtils qw(none uniq firstval); our $VERSION = '0.07'; +my %translation = ( + 2 => 'Polizeiliche Ermittlung', + 3 => 'Feuerwehreinsatz neben der Strecke', + 5 => 'Ärztliche Versorgung eines Fahrgastes', + 6 => 'Betätigen der Notbremse', + 7 => 'Personen im Gleis', + 8 => 'Notarzteinsatz am Gleis', + 9 => 'Streikauswirkungen', + 10 => 'Ausgebrochene Tiere im Gleis', + 11 => 'Unwetter', + 13 => 'Pass- und Zollkontrolle', + 15 => 'Beeinträchtigung durch Vandalismus', + 16 => 'Entschärfung einer Fliegerbombe', + 17 => 'Beschädigung einer Brücke', + 18 => 'Umgestürzter Baum im Gleis', + 19 => 'Unfall an einem Bahnübergang', + 20 => 'Tiere im Gleis', + 21 => 'Warten auf weitere Reisende', + 22 => 'Witterungsbedingte Störung', + 23 => 'Feuerwehreinsatz auf Bahngelände', + 24 => 'Verspätung aus dem Ausland', + 25 => 'Warten auf verspätete Zugteile', + 28 => 'Gegenstände im Gleis', + 31 => 'Bauarbeiten', + 32 => 'Verzögerung beim Ein-/Ausstieg', + 33 => 'Oberleitungsstörung', + 34 => 'Signalstörung', + 35 => 'Streckensperrung', + 36 => 'Technische Störung am Zug', + 38 => 'Technische Störung an der Strecke', + 39 => 'Anhängen von zusätzlichen Wagen', + 40 => 'Stellwerksstörung/-ausfall', + 41 => 'Störung an einem Bahnübergang', + 42 => 'Außerplanmäßige Geschwindigkeitsbeschränkung', + 43 => 'Verspätung eines vorausfahrenden Zuges', + 44 => 'Warten auf einen entgegenkommenden Zug', + 45 => 'Überholung durch anderen Zug', + 46 => 'Warten auf freie Einfahrt', + 47 => 'Verspätete Bereitstellung', + 48 => 'Verspätung aus vorheriger Fahrt', + 55 => 'Technische Störung an einem anderen Zug', # ? + 56 => 'Warten auf Fahrgäste aus einem Bus', + 57 => 'Zusätzlicher Halt', + 58 => 'Umleitung', # ? + 59 => 'Schnee und Eis', + 60 => 'Reduzierte Geschwindigkeit wegen Sturm(?)', + 61 => 'Türstörung', + 62 => 'Behobene technische Störung am Zug', + 63 => 'Technische Untersuchung am Zug', + 64 => 'Weichenstörung', + 65 => 'Erdrutsch', + 73 => 'Mehrzweckabteil vorne', + 74 => 'Mehrzweckabteil hinten', + 75 => '1. Klasse vorne', + 76 => '1. Klasse hinten', + 77 => 'Ohne 1. Klasse', + 80 => 'Abweichende Wagenreihung', + 82 => 'Mehrere Wagen fehlen', + 83 => 'Fehlender Zugteil', + 84 => 'Zug verkehrt richtig gereiht', # r 80 82 83 85 + 85 => 'Ein Wagen fehlt', + 86 => 'Keine Reservierungsanzeige', + 87 => 'Einzelne Wagen ohne Reservierungsanzeige', + 88 => 'Keine Qualitätsmängel', # r 80 82 83 85 86 87 90 91 92 93 96 97 98 + 89 => 'Reservierungen sind wieder vorhanden', + 90 => 'Kein Bordrestaurant/Bordbistro', + 91 => 'Eingeschränkte Fahrradmitnahme', + 92 => 'Klimaanlage in einzelnen Wagen ausgefallen', + 93 => 'Fehlende oder gestörte behindertengerechte Einrichtung', + 94 => 'Ersatzbewirtschaftung', + 95 => 'Ohne behindertengerechtes WC', + 96 => 'Der Zug ist überbesetzt', + 97 => 'Der Zug ist überbesetzt', + 98 => 'Sonstige Qualitätsmängel', + 99 => 'Verzögerungen im Betriebsablauf', +); + Travel::Status::DE::IRIS::Result->mk_ro_accessors( qw(arrival classes date datetime delay departure is_cancelled is_transfer line_no train_no_transfer old_train_id old_train_no platform raw_id @@ -117,7 +194,7 @@ sub set_ar { } else { $self->{arrival} = $self->{sched_arrival}; - $self->{delay} = 0; + $self->{delay} = 0; } if ( $attrib{platform} ) { @@ -132,7 +209,7 @@ sub set_ar { $self->{route_start} = $self->{route_pre}[0]; } else { - $self->{route_pre} = $self->{sched_route_pre}; + $self->{route_pre} = $self->{sched_route_pre}; $self->{route_start} = $self->{sched_route_start}; } @@ -176,7 +253,7 @@ sub set_dp { } else { $self->{departure} = $self->{sched_departure}; - $self->{delay} = 0; + $self->{delay} = 0; } if ( $attrib{platform} ) { @@ -192,7 +269,7 @@ sub set_dp { } else { $self->{route_post} = $self->{sched_route_post}; - $self->{route_end} = $self->{sched_route_end}; + $self->{route_end} = $self->{sched_route_end}; } # also only for unscheduled departures @@ -357,6 +434,12 @@ sub delay_messages { return @ret; } +sub dump_message_codes { + my ($self) = @_; + + return %translation; +} + sub qos_messages { my ($self) = @_; @@ -366,7 +449,8 @@ sub qos_messages { ); my @keys = sort keys %{ $self->{messages} }; - my @msgs = grep { $_->[1] ~~ [qw[f q]] } map { $self->{messages}{$_} } @keys; + my @msgs + = grep { $_->[1] ~~ [qw[f q]] } map { $self->{messages}{$_} } @keys; my @ret; for my $msg (@msgs) { @@ -408,7 +492,6 @@ sub raw_messages { return @ret; } - sub messages { my ($self) = @_; @@ -557,84 +640,6 @@ sub superseded_messages { sub translate_msg { my ( $self, $msg ) = @_; - my %translation = ( - 2 => 'Polizeiliche Ermittlung', - 3 => 'Feuerwehreinsatz neben der Strecke', - 5 => 'Ärztliche Versorgung eines Fahrgastes', - 6 => 'Betätigen der Notbremse', - 7 => 'Personen im Gleis', - 8 => 'Notarzteinsatz am Gleis', - 9 => 'Streikauswirkungen', - 10 => 'Ausgebrochene Tiere im Gleis', - 11 => 'Unwetter', - 13 => 'Pass- und Zollkontrolle', - 15 => 'Beeinträchtigung durch Vandalismus', - 16 => 'Entschärfung einer Fliegerbombe', - 17 => 'Beschädigung einer Brücke', - 18 => 'Umgestürzter Baum im Gleis', - 19 => 'Unfall an einem Bahnübergang', - 20 => 'Tiere im Gleis', - 21 => 'Warten auf weitere Reisende', - 22 => 'Witterungsbedingte Störung', - 23 => 'Feuerwehreinsatz auf Bahngelände', - 24 => 'Verspätung aus dem Ausland', - 25 => 'Warten auf verspätete Zugteile', - 28 => 'Gegenstände im Gleis', - 31 => 'Bauarbeiten', - 32 => 'Verzögerung beim Ein-/Ausstieg', - 33 => 'Oberleitungsstörung', - 34 => 'Signalstörung', - 35 => 'Streckensperrung', - 36 => 'Technische Störung am Zug', - 38 => 'Technische Störung an der Strecke', - 39 => 'Anhängen von zusätzlichen Wagen', - 40 => 'Stellwerksstörung/-ausfall', - 41 => 'Störung an einem Bahnübergang', - 42 => 'Außerplanmäßige Geschwindigkeitsbeschränkung', - 43 => 'Verspätung eines vorausfahrenden Zuges', - 44 => 'Warten auf einen entgegenkommenden Zug', - 45 => 'Überholung durch anderen Zug', - 46 => 'Warten auf freie Einfahrt', - 47 => 'Verspätete Bereitstellung', - 48 => 'Verspätung aus vorheriger Fahrt', - 55 => 'Technische Störung an einem anderen Zug', # ? - 56 => 'Warten auf Fahrgäste aus einem Bus', - 57 => 'Zusätzlicher Halt', - 58 => 'Umleitung', # ? - 59 => 'Schnee und Eis', - 60 => 'Reduzierte Geschwindigkeit wegen Sturm(?)', - 61 => 'Türstörung', - 62 => 'Behobene technische Störung am Zug', - 63 => 'Technische Untersuchung am Zug', - 64 => 'Weichenstörung', - 65 => 'Erdrutsch', - 73 => 'Mehrzweckabteil vorne', - 74 => 'Mehrzweckabteil hinten', - 75 => '1. Klasse vorne', - 76 => '1. Klasse hinten', - 77 => 'Ohne 1. Klasse', - 80 => 'Abweichende Wagenreihung', - 82 => 'Mehrere Wagen fehlen', - 83 => 'Fehlender Zugteil', - 84 => 'Zug verkehrt richtig gereiht', # r 80 82 83 85 - 85 => 'Ein Wagen fehlt', - 86 => 'Keine Reservierungsanzeige', - 87 => 'Einzelne Wagen ohne Reservierungsanzeige', - 88 => - 'Keine Qualitätsmängel', # r 80 82 83 85 86 87 90 91 92 93 96 97 98 - 89 => 'Reservierungen sind wieder vorhanden', - 90 => 'Kein Bordrestaurant/Bordbistro', - 91 => 'Eingeschränkte Fahrradmitnahme', - 92 => 'Klimaanlage in einzelnen Wagen ausgefallen', - 93 => 'Fehlende oder gestörte behindertengerechte Einrichtung', - 94 => 'Ersatzbewirtschaftung', - 95 => 'Ohne behindertengerechtes WC', - 96 => 'Der Zug ist überbesetzt', - 97 => 'Der Zug ist überbesetzt', - 98 => 'Sonstige Qualitätsmängel', - 99 => 'Verzögerungen im Betriebsablauf', - ); - return $translation{$msg} // "?($msg)"; } |