fix(tci): subscribe to the radio's meters; fix the new-spot count; explain an SMTP refusal
TCI meters: the S-meter came only from RX_SMETER and the transmit meters from TX_POWER / TX_SWR — commands ExpertSDR3 does not send. The protocol's answer is a subscription (RX_SENSORS_ENABLE / TX_SENSORS_ENABLE, §4.4 of the TCI PDF), after which the radio pushes RX_CHANNEL_SENSORS and TX_SENSORS. Nobody had asked, so the console's meters sat empty in RX and in TX while everything else worked. Cluster: the held-spot counter looked for the row it froze on. A station spotted again REPLACES its row, so that row vanishes in the ordinary course of things and the count fell through to 'everything is new' — 4, 5, then 500. Counted by timestamp now, which survives both the replacement and the ring buffer. SMTP: '535 5.7.139 basic authentication is disabled' is a policy, not a typo. The message now says so, and says what actually helps, without claiming a policy when the server simply rejected the password.
This commit is contained in:
@@ -155,6 +155,13 @@ func (t *TCI) Connect() error {
|
||||
t.mu.Unlock()
|
||||
debugLog.Printf("TCI: connected to %s", url)
|
||||
go t.reader(conn)
|
||||
// Ask for the meters. Nothing measures anything until this goes out: the
|
||||
// S-meter, the transmit power and the SWR are all pushed by the radio, and
|
||||
// only to a client that has subscribed. 200 ms is the rate the protocol's own
|
||||
// examples use — fast enough for a needle, slow enough not to flood a socket
|
||||
// that also carries audio.
|
||||
_ = t.send("rx_sensors_enable:true,200;")
|
||||
_ = t.send("tx_sensors_enable:true,200;")
|
||||
if t.spotsEnabled {
|
||||
// Forget what we thought was on the panorama at the same moment the radio
|
||||
// is told to drop it. Kept, the memory would suppress the next spot for
|
||||
|
||||
Reference in New Issue
Block a user