NRF SDK 0.9

Référence

TrainServices

États, alertes et jointures des données de trains dans une capture.

Contexte d’utilisation

ModulePackageSource SDK
Kotlin/JVMfr.nimby.sdkkotlin-client/src/main/kotlin/fr/nimby/sdk/TrainServices.kt

API publique du SDK 0.9.0-alpha.2. Chaque entrée donne la signature Kotlin et son contrat : sens de la valeur, conditions d’utilisation et effets à connaître. Choisissez les imports du module indiqué ci-dessus.

Imports de cette page
import fr.nimby.sdk.TrainState
import fr.nimby.sdk.TrainAlert
import fr.nimby.sdk.TrainRecord

Choisir la lecture et interpréter les résultats

Dans un mod, utiliser ToolContext.trains(query). Dans une application JVM, utiliser game.trains.snapshot(query = query) ; sélectionner un train demande aussi son plan de ligne. Une requête groupe tous les trains : ne pas créer une capture par train. La lecture de l’horloge et la lecture ciblée d’un train sont séparées.

Option TrainQueryPar défautDonnées demandées
includeServicetrueÉtat, service et affectation observés.
includeLocationstruePositions et références de localisation nécessaires.
includeCharacteristicsfalseProfils du matériel configuré et actuel.
includeTimetablesfalseInformations d’horaires disponibles ; implique includeService.
includeTagsfalseTags déclarés et références pour leur héritage ; implique includeLines.
includePassengersfalseOccupants observés, distincts de la capacité.
includeLinesfalseCatalogue des lignes, y compris celles sans train affecté.
includeCompositionfalseVéhicules ordonnés des compositions configurée et actuelle et modèles référencés.
ValeurUnité et contrat
Train.speedMps / Train.speedKmhVitesse actuelle. Native : une mesure indisponible reste null. JVM : vérifier aussi speedDefaulted avant d’interpréter une valeur de secours comme une mesure.
maximumSpeedMps / maximumSpeedKmhVitesse maximale du matériel, en m/s ou km/h ; distincte de la vitesse actuelle et de la limite de voie.
lengthM / emptyMassKg / maximumAccelerationMps2Mètres, kilogrammes, mètres par seconde carrée.
powerW / tractiveForceNWatts et newtons.
passengers / passengerCapacity / carCountOccupants, capacité et nombre de véhicules : trois quantités distinctes.
configured / current / compositionProfils indépendants, sans remplacement des valeurs absentes. Composition null : inconnue ou non demandée ; liste vide : composition observée vide.
predictedArrivalDelayUs / predictedArrivalDelaySecondsEstimation signée, en microsecondes ou secondes ; négative pour une arrivée prévue en avance. Ni âge d’échéance ni priorité.
arrivalOffsetSeconds / departureOffsetSecondsOffsets validés, en secondes depuis l’origine du plan de ligne. Ne pas les convertir en date absolue d’un train.
arrivalTimeUs / departureTimeUs / dispatchRetryTimeUsMicrosecondes depuis l’origine de simulation, pas depuis 1970. Utiliser les helpers de calendrier ; une date reste null si l’origine est inconnue.
capturedAtMillis / ageMillisHeure UTC de l’ordinateur / âge monotone lors de la copie ; distincts du calendrier du jeu.

Les identifiants typés sont opaques. TimetableShiftId est unique seulement avec son TimetableId. LineType distingue uniquement Depot et Other ; aucune catégorie voyageurs/fret n’est inférée. Un nom d’horaire indisponible reste null. Les tags sont des libellés, sans priorité automatique ; un héritage incomplet ou cyclique reste inconnu. VehicleModel.nameEnglish conserve le nom anglais du catalogue.

TrainVehicle décrit un véhicule dans une composition. Le type nimby.Vehicle utilisé par le calcul de conduite est un autre contrat. Ne pas mélanger les classes homonymes des packages nimby et fr.nimby.sdk.

TrainState

fr.nimby.sdk · class
enum class TrainState {
    Unknown,
    Driving,
    StationStop,
    TimedStop,
    Depot,
    DispatchWait,
    SignalWait,
    Mothballed,
    NotPresent,
    Other
}

État de service observé. null signifie indisponible ; Unknown et Other sont des résultats observés, pas une absence de donnée.

TrainState.Unknown

fr.nimby.sdk · enum-entry
Unknown

Le jeu rapporte un état indéterminé.

TrainState.Driving

fr.nimby.sdk · enum-entry
Driving

État de conduite rapporté ; ne prouve pas une vitesse strictement positive.

TrainState.StationStop

fr.nimby.sdk · enum-entry
StationStop

Arrêt en gare rapporté.

TrainState.TimedStop

fr.nimby.sdk · enum-entry
TimedStop

Arrêt temporisé rapporté.

TrainState.Depot

fr.nimby.sdk · enum-entry
Depot

État de dépôt rapporté.

TrainState.DispatchWait

fr.nimby.sdk · enum-entry
DispatchWait

Attente de départ/dispatch rapportée.

TrainState.SignalWait

fr.nimby.sdk · enum-entry
SignalWait

Attente de signal rapportée ; ce champ ne décrit pas à lui seul la règle du signal.

TrainState.Mothballed

fr.nimby.sdk · enum-entry
Mothballed

Train remisé hors exploitation selon l’état rapporté.

TrainState.NotPresent

fr.nimby.sdk · enum-entry
NotPresent

Train rapporté non présent ; à distinguer d’un objet absent de la capture.

TrainState.Other

fr.nimby.sdk · enum-entry
Other

État observé non représenté par une autre valeur connue de cette enum.

TrainAlert

fr.nimby.sdk · class
enum class TrainAlert {
    None,
    LineClosed,
    NoPath,
    InvalidOrders,
    Collision,
    SignalWait,
    ScheduleClosed,
    DispatchTracksOccupied,
    NoServices,
    ServicesAlreadyAssigned,
    Other
}

Alerte observée du train. null signifie indisponible ; None signifie qu’aucune alerte n’est rapportée. Une alerte n’est pas une priorité.

TrainAlert.None

fr.nimby.sdk · enum-entry
None

Aucune alerte rapportée.

TrainAlert.LineClosed

fr.nimby.sdk · enum-entry
LineClosed

Ligne fermée rapportée.

TrainAlert.NoPath

fr.nimby.sdk · enum-entry
NoPath

Absence de chemin rapportée.

TrainAlert.InvalidOrders

fr.nimby.sdk · enum-entry
InvalidOrders

Ordres invalides rapportés.

TrainAlert.Collision

fr.nimby.sdk · enum-entry
Collision

Collision rapportée par le jeu.

TrainAlert.SignalWait

fr.nimby.sdk · enum-entry
SignalWait

Alerte d’attente à un signal.

TrainAlert.ScheduleClosed

fr.nimby.sdk · enum-entry
ScheduleClosed

Horaire fermé rapporté.

TrainAlert.DispatchTracksOccupied

fr.nimby.sdk · enum-entry
DispatchTracksOccupied

Voies de dispatch occupées selon le jeu.

TrainAlert.NoServices

fr.nimby.sdk · enum-entry
NoServices

Aucun service disponible selon le jeu.

TrainAlert.ServicesAlreadyAssigned

fr.nimby.sdk · enum-entry
ServicesAlreadyAssigned

Services déjà affectés selon le jeu.

TrainAlert.Other

fr.nimby.sdk · enum-entry
Other

Autre code d’alerte observé, non représenté par les valeurs connues.

TrainRecord

fr.nimby.sdk · class
data class TrainRecord(val train: Train, val service: Service?, val details: TrainDetails?,
                       val positionStation: Station?, val locationStation: Station?, val stopStation: Station?,
                       val metadata: TrainMetadata? = null, val line: Line? = null)

Vue jointe d’un train dans une capture. Les enregistrements manquants restent null ; une gare non résolue ne prouve pas un train hors gare.

TrainRecord.train

fr.nimby.sdk · val
val train: Train

Observation de base du train.

TrainRecord.service

fr.nimby.sdk · val
val service: Service?

Service joint par identité de train, si disponible.

TrainRecord.details

fr.nimby.sdk · val
val details: TrainDetails?

Affectation/occupants joints par identité de train, si disponibles.

TrainRecord.positionStation

fr.nimby.sdk · val
val positionStation: Station?

Gare de la voie de position géométrique, si résolue.

TrainRecord.locationStation

fr.nimby.sdk · val
val locationStation: Station?

Gare du lieu de service, si résolue ; peut différer de positionStation.

TrainRecord.stopStation

fr.nimby.sdk · val
val stopStation: Station?

Gare de l’arrêt ciblé, si résolue ; pas nécessairement la position actuelle.

TrainRecord.metadata

fr.nimby.sdk · val
val metadata: TrainMetadata? = null

Métadonnées enrichies du même train, si demandées et disponibles.

TrainRecord.line

fr.nimby.sdk · val
val line: Line? = null

Ligne du service jointe dans le catalogue demandé.