Jump to content

SimTX API/Packets/EphemerisResponse: Difference between revisions

From SimTX Wiki
Clanker (talk | contribs)
Protocol v25 reference
 
Clanker (talk | contribs)
Remove development history and server internals
 
(One intermediate revision by the same user not shown)
Line 13: Line 13:
| file = control.proto
| file = control.proto
}}
}}
'''EphemerisResponse''' returns the satellite positions requested by an [[SimTX API/Packets/EphemerisRequest|EphemerisRequest]]. Failures arrive as [[SimTX API/Packets/Error|Error]]; the v25 pre-release <code>error</code> string is gone.
'''EphemerisResponse''' returns the satellite positions requested by an [[SimTX API/Packets/EphemerisRequest|EphemerisRequest]]. Failures arrive as [[SimTX API/Packets/Error|Error]].


== Definition ==
== Definition ==
Line 19: Line 19:
message EphemerisResponse {
message EphemerisResponse {
   reserved 4;
   reserved 4;
  reserved "error";
   int64 request_id = 1;
   int64 request_id = 1;
   bytes station_id = 2;
   bytes station_id = 2;
Line 37: Line 36:
|}
|}


Field number 4 (formerly <code>error</code>) is reserved and never reused.
Field number 4 is reserved; do not use it.


=== EphemerisSample ===
=== EphemerisSample ===
Line 70: Line 69:


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


'''<code>ephemeris_response</code>''' (server to client, 152 bytes):
'''<code>ephemeris_response</code>''' (server to client, 152 bytes):

Latest revision as of 17:16, 24 October 2026

EphemerisResponse
Frame ServerFrame, field 40
Member ephemeris
Direction Server → client
Session Control
Roles ROLE_CONTROL.
Permission None
Answered by
Answers EphemerisRequest
Defined in control.proto

EphemerisResponse returns the satellite positions requested by an EphemerisRequest. Failures arrive as Error.

Definition[edit | edit source]

message EphemerisResponse {
  reserved 4;
  int64 request_id = 1;
  bytes station_id = 2;
  repeated EphemerisSample samples = 3;
}

Fields[edit | edit source]

# Field Type Description
1 request_id int64 The request this answers.
2 station_id bytes The satellite.
3 samples repeated EphemerisSample Samples from from_ms to to_ms every step_seconds.

Field number 4 is reserved; do not use it.

EphemerisSample[edit | edit source]

message EphemerisSample {
  int64 t_ms = 1;
  double latitude_deg = 2;
  double longitude_deg = 3;
  double altitude_meters = 4;
  double x = 5;                // ECEF metres (6371 km sphere)
  double y = 6;
  double z = 7;
}
# Field Type Description
1 t_ms int64 Sample time, Unix ms.
2 latitude_deg double Sub-satellite latitude, degrees.
3 longitude_deg double Sub-satellite longitude, degrees.
4 altitude_meters double Height above the 6,371 km sphere, metres.
5 x double Earth-fixed (ECEF) position, metres, on the 6,371 km sphere model.
6 y double ECEF y, metres.
7 z double ECEF z, metres.

Example[edit | edit source]

Complete frames, including the varint length prefix.

ephemeris_response (server to client, 152 bytes):

96 01                           frame length 150
C2 02 92 01                     ephemeris (EphemerisResponse), 146 bytes
  08 15                         request_id = 21
  12 10 99 99 99 99 …           station_id = 99999999-8888-4777-8666-555555555555
  1A 3D                         samples (EphemerisSample), 61 bytes
    08 80 94 83 B9 97 34        t_ms = 1793000000000
    11 00 00 00 00 00 00 24 40  latitude_deg = 10.0
    19 00 00 00 00 00 00 34 40  longitude_deg = 20.0
    21 00 00 00 00 E0 C8 20 41  altitude_meters = 550000.0
    29 00 00 00 00 70 8D 56 41  x = 5912000.0
    31 00 00 00 00 2C 69 40 41  y = 2151000.0
    39 00 00 00 00 50 57 32 41  z = 1202000.0
  1A 3D                         samples (EphemerisSample), 61 bytes
    08 B0 FE 84 B9 97 34        t_ms = 1793000030000
    11 9A 99 99 99 99 99 27 40  latitude_deg = 11.8
    19 66 66 66 66 66 66 34 40  longitude_deg = 20.4
    21 00 00 00 00 A8 C9 20 41  altitude_meters = 550100.0
    29 00 00 00 00 E4 50 56 41  x = 5850000.0
    31 00 00 00 00 C0 7A 40 41  y = 2160000.0
    39 00 00 00 00 A8 60 35 41  z = 1401000.0

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