Référence
TrainServices
États, alertes et jointures des données de trains dans une capture.
Contexte d’utilisation
| Module | Package | Source SDK |
|---|---|---|
| Kotlin/JVM | fr.nimby.sdk | kotlin-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.
import fr.nimby.sdk.TrainState
import fr.nimby.sdk.TrainAlert
import fr.nimby.sdk.TrainRecordChoisir 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 TrainQuery | Par défaut | Données demandées |
|---|---|---|
| includeService | true | État, service et affectation observés. |
| includeLocations | true | Positions et références de localisation nécessaires. |
| includeCharacteristics | false | Profils du matériel configuré et actuel. |
| includeTimetables | false | Informations d’horaires disponibles ; implique includeService. |
| includeTags | false | Tags déclarés et références pour leur héritage ; implique includeLines. |
| includePassengers | false | Occupants observés, distincts de la capacité. |
| includeLines | false | Catalogue des lignes, y compris celles sans train affecté. |
| includeComposition | false | Véhicules ordonnés des compositions configurée et actuelle et modèles référencés. |
| Valeur | Unité et contrat |
|---|---|
| Train.speedMps / Train.speedKmh | Vitesse actuelle. Native : une mesure indisponible reste null. JVM : vérifier aussi speedDefaulted avant d’interpréter une valeur de secours comme une mesure. |
| maximumSpeedMps / maximumSpeedKmh | Vitesse maximale du matériel, en m/s ou km/h ; distincte de la vitesse actuelle et de la limite de voie. |
| lengthM / emptyMassKg / maximumAccelerationMps2 | Mètres, kilogrammes, mètres par seconde carrée. |
| powerW / tractiveForceN | Watts et newtons. |
| passengers / passengerCapacity / carCount | Occupants, capacité et nombre de véhicules : trois quantités distinctes. |
| configured / current / composition | Profils indépendants, sans remplacement des valeurs absentes. Composition null : inconnue ou non demandée ; liste vide : composition observée vide. |
| predictedArrivalDelayUs / predictedArrivalDelaySeconds | Estimation signée, en microsecondes ou secondes ; négative pour une arrivée prévue en avance. Ni âge d’échéance ni priorité. |
| arrivalOffsetSeconds / departureOffsetSeconds | Offsets validés, en secondes depuis l’origine du plan de ligne. Ne pas les convertir en date absolue d’un train. |
| arrivalTimeUs / departureTimeUs / dispatchRetryTimeUs | Microsecondes depuis l’origine de simulation, pas depuis 1970. Utiliser les helpers de calendrier ; une date reste null si l’origine est inconnue. |
| capturedAtMillis / ageMillis | Heure 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
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
UnknownLe jeu rapporte un état indéterminé.
TrainState.Driving
DrivingÉtat de conduite rapporté ; ne prouve pas une vitesse strictement positive.
TrainState.StationStop
StationStopArrêt en gare rapporté.
TrainState.TimedStop
TimedStopArrêt temporisé rapporté.
TrainState.Depot
DepotÉtat de dépôt rapporté.
TrainState.DispatchWait
DispatchWaitAttente de départ/dispatch rapportée.
TrainState.SignalWait
SignalWaitAttente de signal rapportée ; ce champ ne décrit pas à lui seul la règle du signal.
TrainState.Mothballed
MothballedTrain remisé hors exploitation selon l’état rapporté.
TrainState.NotPresent
NotPresentTrain rapporté non présent ; à distinguer d’un objet absent de la capture.
TrainState.Other
OtherÉtat observé non représenté par une autre valeur connue de cette enum.
TrainAlert
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
NoneAucune alerte rapportée.
TrainAlert.LineClosed
LineClosedLigne fermée rapportée.
TrainAlert.NoPath
NoPathAbsence de chemin rapportée.
TrainAlert.InvalidOrders
InvalidOrdersOrdres invalides rapportés.
TrainAlert.Collision
CollisionCollision rapportée par le jeu.
TrainAlert.SignalWait
SignalWaitAlerte d’attente à un signal.
TrainAlert.ScheduleClosed
ScheduleClosedHoraire fermé rapporté.
TrainAlert.DispatchTracksOccupied
DispatchTracksOccupiedVoies de dispatch occupées selon le jeu.
TrainAlert.NoServices
NoServicesAucun service disponible selon le jeu.
TrainAlert.ServicesAlreadyAssigned
ServicesAlreadyAssignedServices déjà affectés selon le jeu.
TrainAlert.Other
OtherAutre code d’alerte observé, non représenté par les valeurs connues.
TrainRecord
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
val train: TrainObservation de base du train.
TrainRecord.service
val service: Service?Service joint par identité de train, si disponible.
TrainRecord.details
val details: TrainDetails?Affectation/occupants joints par identité de train, si disponibles.
TrainRecord.positionStation
val positionStation: Station?Gare de la voie de position géométrique, si résolue.
TrainRecord.locationStation
val locationStation: Station?Gare du lieu de service, si résolue ; peut différer de positionStation.
TrainRecord.stopStation
val stopStation: Station?Gare de l’arrêt ciblé, si résolue ; pas nécessairement la position actuelle.
TrainRecord.metadata
val metadata: TrainMetadata? = nullMétadonnées enrichies du même train, si demandées et disponibles.
TrainRecord.line
val line: Line? = nullLigne du service jointe dans le catalogue demandé.