feat(motor antenna): amber at the order, not at the answer
The transmit gag starts when the move is commanded; the indicator waited for a status poll to say the elements were travelling, so the two disagreed by a second or more — and on an automatic follow (band change with tracking on) there was no sign at all until a poll landed. The backend now announces the order as it goes out, the interface shows it at once and re-reads the antenna immediately, and the real status takes over the moment it arrives. The WSJT-X "grey out stations already worked" switch is renamed "Mark stations already worked": with the colour now chosen by the operator the old name described the wrong thing, but the switch still answers a question the palette cannot — WHETHER dupes should be marked at all. On a well-filled log they are most of a period, and a window where nearly every line is coloured has stopped saying anything.
This commit is contained in:
@@ -18313,7 +18313,22 @@ func motorBandAllowed(bands []string, hz int64) bool {
|
||||
// refreshed every couple of seconds — so a fresh command opens a short grace
|
||||
// window during which TX stays inhibited even before the poll confirms motion,
|
||||
// closing the gap at the start of a move.
|
||||
func (a *App) noteMotorMoveCommanded() { a.motorMoveCmdNs.Store(time.Now().UnixNano()) }
|
||||
// noteMotorMoveCommanded records — and ANNOUNCES — that the antenna has just
|
||||
// been told to move.
|
||||
//
|
||||
// The transmit gag already started here; the screen did not. It waited for a
|
||||
// status poll to come round and say the elements were travelling, so the
|
||||
// indicator turned orange a second or more after the button was pressed, and on
|
||||
// an automatic follow (band change with tracking on) the operator had no warning
|
||||
// at all until the poll landed. The event lets the interface show it at the
|
||||
// instant the order goes out, which is also when the transmitter is gagged —
|
||||
// one moment, one appearance.
|
||||
func (a *App) noteMotorMoveCommanded() {
|
||||
a.motorMoveCmdNs.Store(time.Now().UnixNano())
|
||||
if a.ctx != nil {
|
||||
wruntime.EventsEmit(a.ctx, "motorant:move")
|
||||
}
|
||||
}
|
||||
|
||||
// applyMotorInhibit sets or clears the Flex transmit inhibit, but only when the
|
||||
// active CAT backend IS a FlexRadio — the inhibit is a Flex-API feature; with any
|
||||
|
||||
Reference in New Issue
Block a user