Jump to content

SimTX API/Packets/TxUpdate

From SimTX Wiki
TxUpdate
Frame ClientFrame, field 14
Member tx_update
Direction Client → server
Session Transmitter
Roles ROLE_TX_AUDIO, ROLE_TX_GENERATED, after TxAccept.
Permission None
Answered by TxUpdateAck
Answers
Defined in session.proto

TxUpdate changes transmitter settings while the station is on air, without reconnecting. Every field except request_id is optional; send only the fields that change. The server answers each TxUpdate with a TxUpdateAck.

Definition[edit | edit source]

message TxUpdate {
  int64 request_id = 1;
  optional double frequency_hz = 2;
  optional float power_watts = 3;
  optional float bandwidth_hz = 4;
  optional float audio_low_cut_hz = 5;
  optional float final_drive_db = 6;
  optional float pa_headroom_db = 7;
  optional float audio_compression_db = 8;
  optional float audio_gain = 9;
}

Fields[edit | edit source]

# Field Type Description
1 request_id int64 Chosen by the client; echoed in the TxUpdateAck. Use a new value for each update.
2 frequency_hz optional double Live field FREQUENCY. 1,000 Hz to 3 GHz; at most one frequency change per second.
3 power_watts optional float Live field POWER. ≥ 0; reduced to at most 1,000,000 W and to the PA cap.
4 bandwidth_hz optional float Live field BANDWIDTH. 10 Hz to 10 MHz.
5 audio_low_cut_hz optional float Live field LOW_CUT. ≥ 0; values above 5,000 Hz are reduced to 5,000 Hz.
6 final_drive_db optional float Live field FINAL_DRIVE. Clamped to −40 to 40.
7 pa_headroom_db optional float Live field PA_HEADROOM. Clamped to 0 to 40.
8 audio_compression_db optional float Live field AUDIO_COMPRESSION. Clamped to 0 to 40.
9 audio_gain optional float Live field AUDIO_GAIN. Clamped to 0 to 100.

Rate limits[edit | edit source]

  • If any update was applied less than 250 ms earlier, every field of the update is refused.
  • A frequency change is refused if the previous frequency change was less than 1 second earlier.
  • Refused fields are reported in the ack with accepted = false. They are not queued; send them again later.
  • Changing the modulation, sample rate, source, site or antenna needs a new session. Antenna pointing changes use AntennaPointingUpdate.

Examples[edit | edit source]

Complete frames, including the varint length prefix.

tx_update (client to server, 19 bytes):

12                            frame length 18
72 10                         tx_update (TxUpdate), 16 bytes
  08 07                       request_id = 7
  11 00 00 00 20 A6 E9 5A 41  frequency_hz = 7055000.5
  1D 00 00 48 42              power_watts = 50

tx_update_audio_gain (client to server, 10 bytes):

09                frame length 9
72 07             tx_update (TxUpdate), 7 bytes
  08 08           request_id = 8
  4D 00 00 40 3F  audio_gain = 0.75

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