Jump to content

SimTX API/Packets/PassPredictionRequest

From SimTX Wiki
Revision as of 17:16, 24 October 2026 by Clanker (talk | contribs) (Remove development history and server internals)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
PassPredictionRequest
Frame ClientFrame, field 41
Member passes
Direction Client → server
Session Control
Roles ROLE_CONTROL.
Permission None. The satellite and an observer station must be visible to the session.
Answered by PassPredictionResponse or Error
Answers
Defined in control.proto

PassPredictionRequest asks the server when a satellite will be above an observer's horizon within a time window. It needs the server feature passes. The observer is one of your ground stations (or a PUBLIC one) or an arbitrary position.

Definition[edit | edit source]

message PassPredictionRequest {
  int64 request_id = 1;
  bytes satellite_id = 2;
  oneof observer_site {
    bytes observer_station_id = 3;
    GeoPoint observer = 4;
  }
  int64 from_ms = 5;
  int64 to_ms = 6;             // at most 7 days after from_ms
  double min_elevation_deg = 7;
  double frequency_hz = 8;     // for max Doppler; 0 = skip
}

Fields[edit | edit source]

# Field Type Description
1 request_id int64 Nonzero; echoed in the PassPredictionResponse or Error.
2 satellite_id bytes 16-byte UUID of the satellite.
3 observer_station_id bytes Member of oneof observer_site. A ground station to observe from.
4 observer GeoPoint Member of oneof observer_site. An arbitrary observer position.
5 from_ms int64 Start of the window, Unix ms of simulation time.
6 to_ms int64 End of the window, Unix ms. At most 7 days after from_ms.
7 min_elevation_deg double Elevation threshold for acquisition and loss of signal, degrees.
8 frequency_hz double Carrier frequency for max_doppler_hz, Hz. 0 skips the Doppler computation.

Behaviour[edit | edit source]

  • Exactly one of observer_station_id and observer. An observer station must be a ground station that currently has a live session on that server and is PUBLIC or your own; otherwise the request is answered with Error NOT_FOUND (Unknown observer station on this server; send the observer location instead).
  • The window may be at most 7 days long, between the years 1970 and 2200.
  • Elevations are geometric (no refraction), on the 6,371 km sphere. See Passes for the algorithm.
  • Passes that overlap the window are clipped to it, and to a deorbiting satellite's reentry. An always-visible geostationary satellite gives one window-long pass; a never-visible one gives none.
  • Satellite failures are answered with Error as for EphemerisRequest.
  • Heavy request.

Examples[edit | edit source]

Complete frames, including the varint length prefix.

pass_request_station_observer (client to server, 74 bytes):

49                            frame length 73
CA 02 46                      passes (PassPredictionRequest), 70 bytes
  08 16                       request_id = 22
  12 10 99 99 99 99 …         satellite_id = 99999999-8888-4777-8666-555555555555
  1A 10 11 11 11 11 …         observer_station_id = 11111111-2222-4333-8444-555555555555
  28 80 94 83 B9 97 34        from_ms = 1793000000000
  30 80 CC 9C E2 97 34        to_ms = 1793086400000
  39 00 00 00 00 00 00 24 40  min_elevation_deg = 10.0
  41 00 00 00 60 19 EF B9 41  frequency_hz = 435100000.0

pass_request_point_observer (client to server, 67 bytes):

42                              frame length 66
CA 02 3F                        passes (PassPredictionRequest), 63 bytes
  08 17                         request_id = 23
  12 10 99 99 99 99 …           satellite_id = 99999999-8888-4777-8666-555555555555
  22 1B                         observer (GeoPoint), 27 bytes
    09 00 00 00 00 00 C0 47 40  latitude_deg = 47.5
    11 00 00 00 00 00 00 33 40  longitude_deg = 19.0
    19 00 00 00 00 00 00 5E 40  altitude_meters = 120.0
  28 80 94 83 B9 97 34          from_ms = 1793000000000
  30 80 CC 9C E2 97 34          to_ms = 1793086400000

See also[edit | edit source]

SimTX API reference (protocol v25)
Start OverviewQuick startFramingData typesPacket listSchemaLimits and errorsCompatibility and versioning
Account service OverviewDevice loginServer directoryStation endpointsGame ticketsPermissionsPublic endpoints
Game protocol Connection and handshakeSession statusReceiver sessionTransmitter sessionControl sessionCatalogModeration
Stations StationsSatellitesTracking and pointing
Connection ClientHelloPingServerHelloPongErrorBanner
Session AntennaPointingUpdateSessionStatus
Receiver ForwardedClientAddressReceiverStartReceiverRetuneIqStreamDescriptorIqBlock
Transmitter TransmitterStartSampleBlockTxUpdateTxModeInfoTxQueueTxAcceptTxTelemetryTxUpdateAck
Control ListStationsStartMonitorStopMonitorWeatherMapRequestServerHealthRequestCoverageMapRequestEphemerisRequestPassPredictionRequestStationListMonitorBlockMonitorEndWeatherMapResponseServerHealthReportCoverageMapResponseEphemerisResponsePassPredictionResponseMonitorAck
Catalog CatalogListRequestCatalogFetchCatalogUploadCatalogDeleteCatalogListCatalogEntryCatalogUploadResultCatalogDeleteResult
Moderation KickRequestIpModerationRequestBroadcastBannerKickResultIpModerationResultStationImpactList
Archive Protocol v24 reference