SimTX API/Packets/TxUpdate
Appearance
| 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 |
| 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