Référence
Observation
Trains, voies, signaux, services, horloge et collections observées.
Contexte d’utilisation
| Module | Package | Source SDK |
|---|---|---|
| Kotlin/JVM | fr.nimby.sdk | kotlin-client/src/main/kotlin/fr/nimby/sdk/Observation.kt |
Signatures extraites de la version 0.8.0-alpha.1. Les paramètres, leurs valeurs par défaut et les propriétés de constructeur sont conservés. Les corps des méthodes ne font pas partie de cette référence.
Train
fr.nimby.sdk · class
data class Train(val id: Long, val name: String, val position: Position?, val speedKmh: Double?, val speedDefaulted: Boolean)IDs are opaque. Unknown observations are null, never a manufactured clear state.
Position
fr.nimby.sdk · class
data class Position(val trackId: Long, val fraction: Double, val direction: Int)Track
fr.nimby.sdk · class
data class Track(val id: Long, val stationId: Long?, val speedLimitKmh: Double)Station
fr.nimby.sdk · class
data class Station(val id: Long, val name: String)TrackNode
fr.nimby.sdk · class
data class TrackNode(val id: Long, val linkA: Long?, val linkB: Long?, val x: Double, val y: Double)TrackJunction
fr.nimby.sdk · class
data class TrackJunction(val branchTrackId: Long, val mainTrackId: Long, val fraction: Double, val mainDirection: Int, val branchDirection: Int)TrackUsage
fr.nimby.sdk · class
data class TrackUsage(val trainId: Long, val trackId: Long, val from: Double, val to: Double)Signal
fr.nimby.sdk · class
data class Signal(val id: Long, val position: Position, val kind: Int, val textureState: Int?, val specificState: String?, val texturePath: String?)Service
fr.nimby.sdk · class
data class Service(
val trainId: Long, val lineName: String?, val status: Int?, val stationId: Long?, val flags: Int,
val lineId: Long? = null, val stopStationId: Long? = null, val stopIndex: Int? = null,
val gameEpochSeconds: Long? = null, val gameTimeUs: Long? = null,
val arrivalTimeUs: Long? = null, val departureTimeUs: Long? = null, val dispatchTimeUs: Long? = null,
)TrainDetails
fr.nimby.sdk · class
data class TrainDetails(val trainId: Long, val passengers: Int?, val scheduleId: Long?, val shiftId: Long?)Platform
fr.nimby.sdk · class
data class Platform(val trackId: Long, val stationId: Long?, val name: String?)LineStop
fr.nimby.sdk · class
data class LineStop(val lineId: Long, val trackId: Long, val stationId: Long?, val index: Int, val arrivalOffsetSeconds: Int?, val departureOffsetSeconds: Int?)SimulationClock
fr.nimby.sdk · class
data class SimulationClock(val epochSeconds: Long, val ticks: Long)SimulationClock.toInstant
fr.nimby.sdk · fun
fun toInstant(): java.time.InstantNative ticks are hundredths of a second; the epoch may precede 1970.
SimulationTimeChange
fr.nimby.sdk · class
data class SimulationTimeChange(val clock: SimulationClock, val interventions: Long)Observation
fr.nimby.sdk · class
data class Observation(
val capturedAtMillis: Long,
val processId: Int,
val gameHash: String,
val trains: List<Train>,
val tracks: List<Track>,
val stations: List<Station>,
val nodes: List<TrackNode>,
val junctions: List<TrackJunction>,
val signals: List<Signal>,
val services: List<Service>,
val details: List<TrainDetails>,
val platforms: List<Platform>,
val reservations: List<TrackUsage>?,
val occupations: List<TrackUsage>?,
val selectedPath: List<Long>?,
val lineStops: List<LineStop>?,
val clock: SimulationClock?,
/** Null: old DLL or unsupported capture/profile. Missing rows remain unknown. */
val trackMetrics: List<TrackMetric>? = null,
)ObservationClient
fr.nimby.sdk · interface
interface ObservationClient : AutoCloseableObservationClient.capture
fr.nimby.sdk · fun
fun capture(selectedTrainId: Long? = null): ObservationGameProcess
fr.nimby.sdk · class
data class GameProcess(val pid: Int, val executable: String)GameProcesses
fr.nimby.sdk · object
object GameProcessesGameProcesses.discover
fr.nimby.sdk · fun
fun discover(): List<GameProcess> = ProcessHandle.allProcesses().use { processes ->SdkException
fr.nimby.sdk · class
class SdkException(val status: Int, operation: String) : IllegalStateException("$operation : ${when (status) {
2 -> "accès au processus ou au fichier impossible"
7 -> "version du jeu non prise en charge par ce SDK"
8 -> "observation indisponible"
11 -> "jeu fermé"
else -> "erreur SDK $status"
}}")