Référence
DrivingObservation
Lecture ciblée d’un train et caractéristiques déclarées du matériel.
Contexte d’utilisation
| Module | Package | Source SDK |
|---|---|---|
| Kotlin/JVM | fr.nimby.sdk | kotlin-client/src/main/kotlin/fr/nimby/sdk/DrivingObservation.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.TrainDynamics
import fr.nimby.sdk.DrivingObservationTrainDynamics
data class TrainDynamics(
val maxSpeedMps: Double, val maxAccelerationMps2: Double,
val serviceBrakingMps2: Double, val emergencyBrakingMps2: Double,
val tractiveEffortN: Double, val powerW: Double, val emptyMassKg: Double, val lengthM: Double,
)Paramètres de conduite d’un profil matériel, en unités SI. Une lecture ciblée retourne ce profil seulement si exploitable ; les valeurs ne sont pas des performances mesurées.
TrainDynamics.maxSpeedMps
val maxSpeedMps: DoubleVitesse maximale du matériel en mètres par seconde.
TrainDynamics.maxAccelerationMps2
val maxAccelerationMps2: DoubleAccélération maximale déclarée en mètres par seconde carrée.
TrainDynamics.serviceBrakingMps2
val serviceBrakingMps2: DoubleParamètre de freinage de service en mètres par seconde carrée.
TrainDynamics.emergencyBrakingMps2
val emergencyBrakingMps2: DoubleParamètre de freinage d’urgence en mètres par seconde carrée.
TrainDynamics.tractiveEffortN
val tractiveEffortN: DoubleEffort de traction déclaré en newtons.
TrainDynamics.powerW
val powerW: DoublePuissance déclarée en watts.
TrainDynamics.emptyMassKg
val emptyMassKg: DoubleMasse à vide en kilogrammes, pas masse chargée.
TrainDynamics.lengthM
val lengthM: DoubleLongueur déclarée du profil en mètres.
DrivingObservation
data class DrivingObservation(
val trainId: Long, val sessionGeneration: Long, val capturedAtMillis: Long,
val elapsedBeginMillis: Long, val elapsedEndMillis: Long,
val purchasedDynamics: TrainDynamics?, val currentDynamics: TrainDynamics?,
val position: Position?, val speedMps: Double?, val speedDefaulted: Boolean,
val motionAvailable: Boolean,
)Résultat d’une lecture ciblée de conduite. Les profils acheté et actuel sont indépendants ; l’intervalle de temps simulé encadre la lecture, sans garantir un tick atomique.
DrivingObservation.trainId
val trainId: LongValeur opaque à comparer et transmettre telle quelle ; ne pas la découper ni la réutiliser dans une autre partie.
DrivingObservation.sessionGeneration
val sessionGeneration: LongGénération locale à cette connexion ; réinitialiser l’état dérivé après changement et après toute reconnexion.
DrivingObservation.capturedAtMillis
val capturedAtMillis: LongHorodatage UTC de l’ordinateur, en millisecondes depuis 1970. Il ne mesure pas le temps simulé.
DrivingObservation.elapsedBeginMillis
val elapsedBeginMillis: LongTemps simulé écoulé au début de la lecture, en millisecondes.
DrivingObservation.elapsedEndMillis
val elapsedEndMillis: LongTemps simulé écoulé à la fin de la lecture, en millisecondes.
DrivingObservation.purchasedDynamics
val purchasedDynamics: TrainDynamics?Paramètres du profil acheté/configuré, si disponibles ; ne remplacent pas currentDynamics.
DrivingObservation.currentDynamics
val currentDynamics: TrainDynamics?Paramètres du profil actuel, si disponibles ; indépendants du profil acheté.
DrivingObservation.position
val position: Position?Position ciblée observée ; null si inconnue.
DrivingObservation.speedMps
val speedMps: Double?Vitesse mesurée en mètres par seconde ; null si inconnue ou de secours.
DrivingObservation.speedDefaulted
val speedDefaulted: BooleanIndique une vitesse de secours du jeu. Ce cas laisse la vitesse mesurée inconnue ; il ne prouve pas un arrêt.