Daniel Friesel

NAME

Travel::Status::DE::IRIS::Result - Information about a single arrival/departure received by Travel::Status::DE::IRIS

SYNOPSIS

        for my $result ($status->results) {
                printf(
                        "At %s: %s to %s from platform %s\n",
                        $result->time,
                        $result->line,
                        $result->destination,
                        $result->platform,
                );
        }

VERSION

version 0.04

DESCRIPTION

Travel::Status::DE::IRIs::Result describes a single arrival/departure as obtained by Travel::Status::DE::IRIS. It contains information about the platform, time, route and more.

METHODS

ACCESSORS

$result->arrival

DateTime(3pm) object for the arrival date and time. undef if the train starts here. Contains realtime data if available.

$result->classes

List of characters indicating the class(es) of this train, may be empty. This is slighty related to type, but more generic. At this time, the following classes are known:

    D    Non-DB train. Usually local transport
    D,F  Non-DB train, long distance transport
    F    "Fernverkehr", long-distance transport
    N    "Nahverkehr", local and regional transport
    S    S-Bahn, rather slow local/regional transport
$result->date

Scheduled departure date if available, arrival date otherwise (e.g. if the train ends here). String in dd.mm.YYYY format. Does not contain realtime data.

$result->datetime

DateTime(3pm) object for departure if available, arrival otherwise. Does not contain realtime data.

$result->delay

Estimated delay in minutes (integer number). undef when no realtime data is available, negative if a train ends at the specified station and arrives / arrived early.

$result->delay_messages

Get all delay messages entered for this train. Returns a list of [datetime, string] listrefs sorted by newest first. The datetime part is a DateTime(3pm) object corresponding to the point in time when the message was entered, the string is the message. If a delay reason was entered more than once, only its most recent record will be returned.

$result->departure

DateTime(3pm) object for the departure date and time. undef if the train ends here. Contains realtime data if available.

$result->destination

Aleas for route_end.

$result->info

List of information strings. Contains both reasons for delays (which may or may not be up-to-date) and generic information such as missing carriages or broken toilets.

$result->is_cancelled

True if the train was cancelled, false otherwise. Note that this does not contain information about replacement trains or route diversions.

$result->is_transfer

True if the train changes its ID at the current station, false otherwise.

An ID change means: There are two results in the system (e.g. RE 10228 Münster -> Duisburg, RE 30028 Duisburg -> Düsseldorf), but they are the same train (RE line 2 from Münster to Düsseldorf in this case) and should be treated as such. In this case, Travel::Status::DE::IRIS merges the results and indicates it by setting is_transfer to a true value.

In case of a transfer, train_id and train_no are set to the "new" value, the old ones are available in old_train_id and old_train_no.

$result->line

Train type with line (such as S 1) if available, type with number (suc as RE 10126) otherwise.

$result->line_no

Number of the line, undef if unknown. Seems to be set only for S-Bahn and similar trains. Regional and long-distance trains such as RE 10126 usually do not have this field set, even if they have a common line number (RE 1 in this case).

Example: For the line S 1, line_no will return 1.

$result->messages

Get all qos and delay messages ever entered for this train. Returns a list of [datetime, string] listrefs sorted by newest first. The datetime part is a DateTime(3pm) object corresponding to the point in time when the message was entered, the string is the message. Note that neither duplicates nor superseded messages are filtered from this list.

$result->old_train_id

Numeric ID of the pre-transfer train. Seems to be unique for a year and trackable across stations. Only defined if a transfer took place, see also is_transfer.

$result->old_train_no

Number of the pre-tarnsfer train, unique per day. E.g. 2225 for IC 2225. See also is_transfer. Only defined if a transfer took place, see also is_transfer.

$result->origin

Alias for route_start.

$result->qos_messages

Get all current qos messages for this train. Returns a list of [datetime, string] listrefs sorted by newest first. The datetime part is a DateTime(3pm) object corresponding to the point in time when the message was entered, the string is the message. Contains neither superseded messages nor duplicates (in case of a duplicate, only the most recent message is present)

$result->platform

Arrival/departure platform as string, undef if unknown. Note that this is not neccessarily a number, platform sections may be included (e.g. 3a/b).

$result->raw_id

Raw ID of the departure, e.g. -4642102742373784975-1401031322-6. The first part appears to be this train's UUID (can be tracked across multiple stations), the second the YYmmddHHMM departure timestamp at its start station, and the third the count of this station in the train's schedule (in this case, it's the sixth from thestart station).

About half of all departure IDs do not contain the leading minus (-) seen in this example. The reason for this is unknown.

This is a developer option. It may be removed without prior warning.

$result->realtime_xml

XML::LibXML::Node(3pm) object containing all realtime data. undef if none is available.

This is a developer option. It may be removed without prior warning.

$result->route

List of all stations served by this train, according to its schedule. Does not contain realtime data.

$result->route_end

Name of the last station served by this train.

$result->route_interesting

List of up to three "interesting" stations served by this train, subset of route_post. Usually contains the next stop and one or two major stations after that. Does not contain realtime data.

$result->route_pre

List of station names the train passed (or will have passed) befoe this stop.

$result->route_post

List of station names the train will pass after this stop.

$result->route_start

Name of the first station served by this train.

$result->sched_arrival

DateTime(3pm) object for the scheduled arrival date and time. undef if the train starts here.

$result->sched_departure

DateTime(3pm) object for the scehduled departure date and time. undef if the train ends here.

$result->sched_platform

Scheduled Arrival/departure platform as string, undef if unknown. Note that this is not neccessarily a number, platform sections may be included (e.g. 3a/b).

$result->sched_route

List of all stations served by this train, according to its schedule. Does not contain realtime data.

$result->sched_route_end

Name of the last station served by this train according to its schedule.

$result->sched_route_pre

List of station names the train is scheduled to pass before this stop.

$result->sched_route_post

List of station names the train is scheduled to pass after this stop.

$result->sched_route_start

Name of the first station served by this train according to its schedule.

$result->start

DateTime(3pm) object for the scheduled start of the train on its route (i.e. the departure time at its first station).

$result->stop_no

Number of this stop on the train's route. 1 if it's the start station, 2 for the stop after that, and so on.

$result->time

Scheduled departure time if available, arrival time otherwise (e.g. if the train ends here). String in HH:MM format. Does not contain realtime data.

$result->train

Alias for line.

$result->train_id

Numeric ID of this train. Seems to be unique for a year and trackable across stations.

$result->train_no

Number of this train, unique per day. E.g. 2225 for IC 2225.

$result->train_no_transfer

Number of this train after a following transfer, undefined if no such transfer exists. See is_transfer for a note about this.

Note that unlike old_train_no, this information is always based on realtime data (not included in any schedule) and only set for stations before the transfer station, not the transfer station itself.

$result->type

Type of this train, e.g. S for S-Bahn, RE for Regional-Express, ICE for InterCity-Express.

INTERNAL

$result = Travel::Status::DE::IRIS::Result->new(%data)

Returns a new Travel::Status::DE::IRIS::Result object. You usually do not need to call this.

MESSAGES

A dump of all messages entered for the result is available. Each message consists of a timestamp (when it was entered), a type (d for delay reasons, q for other train-related information) and a value (numeric ID).

At the time of this writing, the following messages are known:

d 2 : "Polizeiliche Ermittlung"
d 3 : "Feuerwehreinsatz neben der Strecke"
d 5 : "Ärztliche Versorgung eines Fahrgastes"
d 6 : "Betätigen der Notbremse"

Source: Correlation between IRIS and DB RIS (bahn.de).

d 7 : "Personen im Gleis"
d 8 : "Notarzteinsatz am Gleis"
d 10 : "Ausgebrochene Tiere im Gleis"
d 11 : "Unwetter"
d 15 : "Beeinträchtigung durch Vandalismus"
d 16 : "Entschärfung einer Fliegerbombe"
d 17 : "Beschädigung einer Brücke"
d 18 : "Umgestürzter Baum im Gleis"
d 19 : "Unfall an einem Bahnübergang"
d 20 : "Tiere im Gleis"
d 21 : "Warten auf weitere Reisende"
d 22 : "Witterungsbedingte Störung"
d 23 : "Feuerwehreinsatz auf Bahngelände"
d 24 : "Verspätung aus dem Ausland"
d 25 : "Warten auf verspätete Zugteile"
d 28 : "Gegenstände im Gleis"
d 31 : "Bauarbeiten"
d 32 : "Verzögerung beim Ein-/Ausstieg"
d 33 : "Oberleitungsstörung"
d 34 : "Signalstörung"
d 35 : "Streckensperrung"
d 36 : "Technische Störung am Zug"
d 38 : "Technische Störung an der Strecke"
d 39 : "Anhängen von zusätzlichen Wagen"
d 40 : "Stellwerksstörung/-ausfall"
d 41 : "Störung an einem Bahnübergang"
d 42 : "Außerplanmäßige Geschwindigkeitsbeschränkung"
d 43 : "Verspätung eines vorausfahrenden Zuges"
d 44 : "Warten auf einen entgegenkommenden Zug"
d 45 : "Überholung durch anderen Zug"
d 46 : "Warten auf freie Einfahrt"
d 47 : "Verspätete Bereitstellung"
d 48 : "Verspätung aus vorheriger Fahrt"
d 55 : "Technische Störung an einem anderen Zug"

Source: Correlation between IRIS and DB RIS (bahn.de).

d 57 : "Zusätzlicher Halt"

Source: Correlation between IRIS and DB RIS (bahn.de). Only one entry so far, so may be wrong.

d 64 : "Weichenstörung"

Source: correlation between IRIS and DB RIS (bahn.de).

q 80 : "Abweichende Wagenreihung"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 82 : "Mehrere Wagen fehlen"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 83 : "Fehlender Zugteil"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 84 : "Zug verkehrt richtig gereiht"

Obsoletes messages 80, 82, 83, 85. Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 85 : "Ein Wagen fehlt"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 86 : "Keine Reservierungsanzeige"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 87 : "Einzelne Wagen ohne Reservierungsanzeige"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 88 : "Keine Qualitätsmängel"

Obsoletes messages 80, 82, 83, 85, 86, 87, 90, 91, 92, 93, 96, 97, 98. Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 89 : "Reservierungen sind wieder vorhanden"

Obsoletes messages 86, 87. Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 90 : "Kein Bordrestaurant/Bordbistro"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 91 : "Eingeschränkte Fahrradmitnahme"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

Might also mean "Keine Fahrradmitnahme" (source: frubi).

q 92 : "Klimaanlage in einzelnen Wagen ausgefallen"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

Might also mean "Rollstuhlgerechtes WC in einem Wagen ausgefallen" (source: frubi).

q 93 : "Fehlende oder gestörte behindertengerechte Einrichtung"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration. Might also mean "Kein rollstuhlgerechtes WC" (source: frubi).

q 94 : "Ersatzbewirtschaftung"

Estimated from a comparison with bahn.de/ris messages. Needs to be verified.

q 95 : "Ohne behindertengerechtes WC"

Estimated from a comparison with bahn.de/iris messages.

q 96 : "Der Zug ist überbesetzt"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 97 : "Der Zug ist überbesetzt"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration.

q 98 : "Sonstige Qualitätsmängel"

Verified by https://iris.noncd.db.de/irisWebclient/Configuration. Might also mean "Kein rollstuhlgerechter Wagen" (source: frubi).

d 99 : "Verzögerungen im Betriebsablauf"

DIAGNOSTICS

None.

DEPENDENCIES

Class::Accessor(3pm)

BUGS AND LIMITATIONS

Unknown.

SEE ALSO

Travel::Status::DE::IRIS(3pm).

AUTHOR

Copyright (C) 2013-2014 by Daniel Friesel <derf@finalrewind.org>

LICENSE

This module is licensed under the same terms as Perl itself.




Hosting generously
sponsored by Bytemark