SimTX API/Packets/EphemerisResponse: Difference between revisions
Appearance
Reconcile with the frozen v25 schema |
Remove development history and server internals |
||
| 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]] | '''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; | ||
int64 request_id = 1; | int64 request_id = 1; | ||
bytes station_id = 2; | bytes station_id = 2; | ||
| Line 37: | Line 36: | ||
|} | |} | ||
Field number 4 is reserved; do not use it. | |||
=== EphemerisSample === | === EphemerisSample === | ||
| Line 70: | Line 69: | ||
== Example == | == Example == | ||
Complete frames, including the varint length prefix | 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
| Frame | ServerFrame, field 40
|
|---|---|
| Member | ephemeris
|
| Direction | Server → client |
| Session | Control |
| Roles | ROLE_CONTROL.
|
| Permission | None |
| 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