NRF SDK 0.9

Référence

TrainTypes · Kotlin/Native

Identifiants typés, options de lecture et caractéristiques du matériel.

Contexte d’utilisation

ModulePackageSource SDK
Kotlin/Nativenimbykotlin/src/nimby/TrainTypes.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 nimby.TrainQuery
import nimby.TrainId
import nimby.LineId
import nimby.StationId
import nimby.TrackId
import nimby.TimetableId
import nimby.TimetableShiftId
import nimby.TagId
import nimby.VehicleModelId
import nimby.LineType
import nimby.Timetable
import nimby.Tag
import nimby.TrainCharacteristics
import nimby.VehicleModel
import nimby.TrainVehicle
import nimby.TrainObservation
import nimby.TrainLine
import nimby.TrainStation
import nimby.TrainLineStop
import nimby.TrainLinePlan

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.

TrainQuery

nimby · class
data class TrainQuery(val includeService: Boolean = true, val includeLocations: Boolean = true,
    val includeCharacteristics: Boolean = false, val includeTimetables: Boolean = false,
    val includeTags: Boolean = false, val includePassengers: Boolean = false, val includeLines: Boolean = false,
    val includeComposition: Boolean = false)

Options d’une lecture de trains. Demander uniquement les groupes utiles ; les options sélectionnent des données, pas un sous-ensemble de trains.

TrainQuery.includeService

nimby · val
val includeService: Boolean = true

Demande l’état et le service des trains. Activé par défaut ; les horaires impliquent aussi cette lecture.

TrainQuery.includeLocations

nimby · val
val includeLocations: Boolean = true

Demande les données de localisation et leurs gares/voies. Activé par défaut. Les horaires impliquent aussi ces données ; false ne garantit pas leur absence dans une capture couvrante.

TrainQuery.includeCharacteristics

nimby · val
val includeCharacteristics: Boolean = false

Demande séparément les caractéristiques configurées et actuelles du matériel. Désactivé par défaut.

TrainQuery.includeTimetables

nimby · val
val includeTimetables: Boolean = false

Demande affectations et données d’horaires disponibles ; implique le service ainsi que les voies/gares, même si includeLocations vaut false. N’invente ni nom ni passages futurs.

TrainQuery.includeTags

nimby · val
val includeTags: Boolean = false

Demande les tags des trains et le catalogue des tags/lignes nécessaire aux jointures ; implique includeLines.

TrainQuery.includePassengers

nimby · val
val includePassengers: Boolean = false

Demande le nombre d’occupants ; indépendant de la capacité du matériel.

TrainQuery.includeLines

nimby · val
val includeLines: Boolean = false

Demande le catalogue des lignes, y compris celles sans train affecté. Ne demande pas les tags à lui seul.

TrainQuery.includeComposition

nimby · val
val includeComposition: Boolean = false

Demande les véhicules ordonnés et les modèles référencés des compositions configurée et actuelle. Les groupes restent facultatifs.

TrainId

nimby · class
data class TrainId(val value: Long)

Identifiant typé de train, copié du jeu. Son type empêche les jointures entre objets différents ; aucune catégorie métier n’est encodée pour le mod.

TrainId.value

nimby · val
val value: Long

Valeur opaque à comparer et transmettre telle quelle ; ne pas la découper ni la réutiliser dans une autre partie.

LineId

nimby · class
data class LineId(val value: Long)

Identifiant typé de ligne, copié du jeu. Son type empêche les jointures entre objets différents ; aucune catégorie métier n’est encodée pour le mod.

LineId.value

nimby · val
val value: Long

Valeur opaque à comparer et transmettre telle quelle ; ne pas la découper ni la réutiliser dans une autre partie.

StationId

nimby · class
data class StationId(val value: Long)

Identifiant typé de gare, copié du jeu. Son type empêche les jointures entre objets différents ; aucune catégorie métier n’est encodée pour le mod.

StationId.value

nimby · val
val value: Long

Valeur opaque à comparer et transmettre telle quelle ; ne pas la découper ni la réutiliser dans une autre partie.

TrackId

nimby · class
data class TrackId(val value: Long)

Identifiant typé de voie, copié du jeu. Son type empêche les jointures entre objets différents ; aucune catégorie métier n’est encodée pour le mod.

TrackId.value

nimby · val
val value: Long

Valeur opaque à comparer et transmettre telle quelle ; ne pas la découper ni la réutiliser dans une autre partie.

TimetableId

nimby · class
data class TimetableId(val value: Long)

Identifiant typé de horaire, copié du jeu. Son type empêche les jointures entre objets différents ; aucune catégorie métier n’est encodée pour le mod.

TimetableId.value

nimby · val
val value: Long

Valeur opaque à comparer et transmettre telle quelle ; ne pas la découper ni la réutiliser dans une autre partie.

TimetableShiftId

nimby · class
data class TimetableShiftId(val timetableId: TimetableId, val value: Long)

Identité d’un service dans son horaire. La valeur seule n’est pas unique : comparer le couple timetableId et value.

TimetableShiftId.timetableId

nimby · val
val timetableId: TimetableId

Horaire auquel appartient ce service.

TimetableShiftId.value

nimby · val
val value: Long

Clé opaque du service, unique seulement au sein de timetableId.

TagId

nimby · class
data class TagId(val value: Long)

Identifiant typé de tag, copié du jeu. Son type empêche les jointures entre objets différents ; aucune catégorie métier n’est encodée pour le mod.

TagId.value

nimby · val
val value: Long

Valeur opaque à comparer et transmettre telle quelle ; ne pas la découper ni la réutiliser dans une autre partie.

VehicleModelId

nimby · class
data class VehicleModelId(val value: Long)

Identifiant typé de modèle de véhicule, copié du jeu. Son type empêche les jointures entre objets différents ; aucune catégorie métier n’est encodée pour le mod.

VehicleModelId.value

nimby · val
val value: Long

Valeur opaque à comparer et transmettre telle quelle ; ne pas la découper ni la réutiliser dans une autre partie.

LineType

nimby · class
enum class LineType {
    Depot,
    Other
}

Classification limitée aux lignes de dépôt et aux autres lignes ; aucune catégorie voyageurs/fret n’est déduite.

LineType.Depot

nimby · enum-entry
Depot

Ligne identifiée comme dépôt.

LineType.Other

nimby · enum-entry
Other

Ligne observée autre que dépôt ; sa catégorie commerciale n’est pas déterminée.

Timetable

nimby · class
data class Timetable(val id: TimetableId, val name: String? = null)

Horaire identifié depuis l’affectation d’un train. Ce type ne contient pas un programme complet de passages.

Timetable.id

nimby · val
val id: TimetableId

Identité de l’horaire observé.

Timetable.name

nimby · val
val name: String? = null

Le SDK expose actuellement l’identité de l’horaire, sans résoudre son nom ; null n’est pas un nom vide.

Tag

nimby · class
data class Tag(val id: TagId, val name: String?)

Libellé de classement. Comparer l’identifiant ; le nom peut changer. Aucun tag ne déclenche une priorité ou une régulation automatique.

Tag.id

nimby · val
val id: TagId

Identité du tag, indépendante de son libellé.

Tag.name

nimby · val
val name: String?

Nom observé, éventuellement absent ; ne pas l’utiliser comme clé stable.

TrainCharacteristics

nimby · class
data class TrainCharacteristics(val maximumSpeedMps: Double?, val lengthM: Double?, val emptyMassKg: Double?,
    val passengerCapacity: Int?, val carCount: Int?, val maximumAccelerationMps2: Double?, val powerW: Double?, val tractiveForceN: Double?,
    val composition: List<TrainVehicle>? = null)

Caractéristiques copiées d’un profil du matériel, en unités SI. Chaque champ peut être inconnu indépendamment des autres ; ni vitesse instantanée, ni priorité.

TrainCharacteristics.maximumSpeedMps

nimby · val
val maximumSpeedMps: Double?

Limite du matériel en mètres par seconde, optionnelle ; différente de la vitesse mesurée et de la limite de voie.

TrainCharacteristics.lengthM

nimby · val
val lengthM: Double?

Longueur du matériel en mètres ; null si non prouvée.

TrainCharacteristics.emptyMassKg

nimby · val
val emptyMassKg: Double?

Masse à vide en kilogrammes ; ne représente pas la masse chargée.

TrainCharacteristics.passengerCapacity

nimby · val
val passengerCapacity: Int?

Capacité en voyageurs de ce profil, optionnelle ; différente des occupants actuellement transportés.

TrainCharacteristics.carCount

nimby · val
val carCount: Int?

Nombre de véhicules de ce profil, optionnel ; ne déduire ni capacité ni longueur de ce nombre seul.

TrainCharacteristics.maximumAccelerationMps2

nimby · val
val maximumAccelerationMps2: Double?

Accélération maximale déclarée, en mètres par seconde carrée ; pas une accélération mesurée.

TrainCharacteristics.powerW

nimby · val
val powerW: Double?

Puissance déclarée en watts, optionnelle ; pas une consommation électrique observée.

TrainCharacteristics.tractiveForceN

nimby · val
val tractiveForceN: Double?

Force de traction déclarée en newtons, optionnelle.

TrainCharacteristics.composition

nimby · val
val composition: List<TrainVehicle>? = null

Véhicules dans leur ordre observé. null : inconnus ou non demandés ; liste vide : composition observée vide. Les répétitions d’un modèle sont significatives.

TrainCharacteristics.maximumSpeedKmh

nimby · val
val maximumSpeedKmh: Double?

maximumSpeedMps multiplié par 3,6 ; null reste null.

VehicleModel

nimby · class
data class VehicleModel(val id: VehicleModelId, val code: String?, val nameEnglish: String?, val sourceName: String?)

Modèle référencé par une composition. Le catalogue est limité aux modèles observés ; il ne classe pas les trains en voyageurs ou fret.

VehicleModel.id

nimby · val
val id: VehicleModelId

Identité du modèle de véhicule.

VehicleModel.code

nimby · val
val code: String?

Code observé du modèle, optionnel.

VehicleModel.nameEnglish

nimby · val
val nameEnglish: String?

Nom anglais du catalogue ; ne suit pas automatiquement la langue de l’outil.

VehicleModel.sourceName

nimby · val
val sourceName: String?

Nom de la source du modèle rapporté par le catalogue, optionnel.

TrainVehicle

nimby · class
data class TrainVehicle(val index: Int, val model: VehicleModel)

Un véhicule à un emplacement précis d’une composition ; plusieurs véhicules peuvent partager le même modèle.

TrainVehicle.index

nimby · val
val index: Int

Position à partir de zéro dans la composition observée.

TrainVehicle.model

nimby · val
val model: VehicleModel

Modèle associé à ce véhicule ; ses libellés peuvent rester inconnus.

TrainVehicle.modelId

nimby · val
val modelId: VehicleModelId

Identifiant du modèle, identique à model.id.

TrainObservation

nimby · typealias
typealias TrainObservation = Train

Autre nom du type Train, avec les mêmes propriétés et contrats ; aucune copie ou conversion supplémentaire.

TrainLine

nimby · typealias
typealias TrainLine = Line

Autre nom du type Line, avec les mêmes propriétés et contrats ; aucune copie ou conversion supplémentaire.

TrainStation

nimby · typealias
typealias TrainStation = Station

Autre nom du type Station, avec les mêmes propriétés et contrats ; aucune copie ou conversion supplémentaire.

TrainLineStop

nimby · typealias
typealias TrainLineStop = Stop

Autre nom du type Stop, avec les mêmes propriétés et contrats ; aucune copie ou conversion supplémentaire.

TrainLinePlan

nimby · typealias
typealias TrainLinePlan = LinePlan

Autre nom du type LinePlan, avec les mêmes propriétés et contrats ; aucune copie ou conversion supplémentaire.