Jump to content

SimTX API/Packets/PassPredictionResponse

From SimTX Wiki
Revision as of 16:27, 24 October 2026 by Clanker (talk | contribs) (Protocol v25 reference)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
PassPredictionResponse
Frame ServerFrame, field 41
Member passes
Direction Server → client
Session Control
Roles ROLE_CONTROL.
Permission None
Answered by
Answers PassPredictionRequest
Defined in control.proto

PassPredictionResponse lists the passes found for a PassPredictionRequest. Failures arrive as Error.

Definition

message PassPredictionResponse {
  reserved 4;
  reserved "error";
  int64 request_id = 1;
  bytes satellite_id = 2;
  repeated Pass passes = 3;
}

Fields

# Field Type Description
1 request_id int64 The request this answers.
2 satellite_id bytes The satellite.
3 passes repeated Pass Passes in time order. Passes that overlap the window are clipped to it.

Field number 4 (formerly error) is reserved and never reused.

Pass

message Pass {
  int64 aos_ms = 1;
  int64 tca_ms = 2;
  int64 los_ms = 3;
  double max_elevation_deg = 4;
  double aos_azimuth_deg = 5;
  double los_azimuth_deg = 6;
  double max_doppler_hz = 7;
}
# Field Type Description
1 aos_ms int64 Acquisition of signal: elevation rises through the threshold, Unix ms.
2 tca_ms int64 Time of closest approach (highest elevation), Unix ms.
3 los_ms int64 Loss of signal, Unix ms.
4 max_elevation_deg double Highest elevation, degrees.
5 aos_azimuth_deg double Azimuth at AOS, degrees from north through east.
6 los_azimuth_deg double Azimuth at LOS, degrees.
7 max_doppler_hz double Largest absolute Doppler shift between AOS and LOS at frequency_hz, Hz, ≥ 0. 0 when no frequency was given.

Example

Complete frames, including the varint length prefix, from the protocol's golden test vectors (protocol/simtx/v25/testdata/frames.json).

pass_response (server to client, 83 bytes):

52                              frame length 82
CA 02 4F                        passes (PassPredictionResponse), 79 bytes
  08 16                         request_id = 22
  12 10 99 99 99 99 …           satellite_id = 99999999-8888-4777-8666-555555555555
  1A 39                         passes (Pass), 57 bytes
    08 C0 98 C0 B9 97 34        aos_ms = 1793001000000
    10 A0 C0 D2 B9 97 34        tca_ms = 1793001300000
    18 80 E8 E4 B9 97 34        los_ms = 1793001600000
    21 00 00 00 00 00 40 4F 40  max_elevation_deg = 62.5
    29 00 00 00 00 00 E0 75 40  aos_azimuth_deg = 350.0
    31 00 00 00 00 00 40 65 40  los_azimuth_deg = 170.0
    39 00 00 00 00 00 24 C3 40  max_doppler_hz = 9800.0

See also

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