fix(cat): make the Kenwood/Elecraft link an explicit USB-or-network choice
The network option IS implemented — the same ASCII CAT over TCP instead of a cable, for a ser2net bridge, an Ethernet-serial adapter, or a radio exposing its raw CAT port. What was wrong is how it was offered: the COM port and the network address sat side by side with nothing to say that the address wins whenever it is not empty. Worse, the example address read 192.168.1.50:4532. That is Hamlib rigctld's port — a different protocol, and the one OpsLog SERVES under 'Share CAT'. Anyone copying the example was pointing the radio link at OpsLog's own server. Now one choice, then the fields that belong to it. And when the far end answers something that is not the radio's CAT, the error says that rather than 'check the baud rate', which over TCP is advice about a setting that cannot be the cause.
This commit is contained in:
@@ -273,6 +273,15 @@ func (k *Kenwood) Connect() error {
|
||||
// commands back produces the same). Say which of the two it is, and quote
|
||||
// what came back, because that is the fact that decides where to look.
|
||||
if seen := k.heard; seen != "" {
|
||||
// Over a NETWORK link, baud means nothing and saying "check the baud
|
||||
// rate" sends the operator to a setting that cannot be the cause.
|
||||
// The usual mistake there is a different protocol on the other end:
|
||||
// Hamlib's rigctld (4532) answers text, so it looks alive and never
|
||||
// replies to ID;. OpsLog itself serves that port under "Share CAT",
|
||||
// which makes it an easy number to reach for.
|
||||
if k.host != "" {
|
||||
return fmt.Errorf("kenwood: %s is sending data but no reply to ID; or IF; — got %q. That end is not speaking the radio's CAT: point this at a serial-over-network bridge or the radio's own raw CAT port, not at Hamlib rigctld (4532)", k.host, seen)
|
||||
}
|
||||
return fmt.Errorf("kenwood: %s is sending data but no reply to ID; or IF; — got %q. Check the baud rate (set to %d here) and that nothing else is echoing the port", k.where(), seen, k.baud)
|
||||
}
|
||||
if k.host != "" {
|
||||
|
||||
Reference in New Issue
Block a user