feat: serial CW keyer — add invert (active-LOW) polarity option
Some CW interfaces key on the opposite line level (transmit at rest / key backwards). New "Invert keying (active-LOW)" toggle flips the asserted level for both the CW and PTT lines, and the idle state drives both lines to their inactive level accordingly so an active-low rig isn't left keyed at rest. Default off = N1MM convention (line HIGH = active).
This commit is contained in:
@@ -218,6 +218,7 @@ const (
|
||||
keyWKEscClears = "winkeyer.esc_clears_call" // ESC also clears the callsign
|
||||
keyWKSendOnType = "winkeyer.send_on_type" // key characters live as typed
|
||||
keyWKCWLine = "winkeyer.cw_key_line" // serial engine: "dtr" (CW) / "rts" (PTT) or swapped
|
||||
keyWKCWInvert = "winkeyer.cw_invert" // serial engine: invert line polarity (active-LOW)
|
||||
|
||||
keyClusterAutoConnect = "cluster.auto_connect" // open every enabled server at app start
|
||||
|
||||
@@ -13053,7 +13054,7 @@ func (a *App) GetWinkeyerSettings() (WinkeyerSettings, error) {
|
||||
keyWKEnabled, keyWKPort, keyWKBaud, keyWKWPM, keyWKWeight, keyWKLeadIn,
|
||||
keyWKTail, keyWKRatio, keyWKFarnsworth, keyWKSidetone, keyWKMode,
|
||||
keyWKSwap, keyWKAutoSpace, keyWKUsePTT, keyWKSerialEcho, keyWKMacros,
|
||||
keyWKEngine, keyWKEscClears, keyWKSendOnType, keyWKCWLine)
|
||||
keyWKEngine, keyWKEscClears, keyWKSendOnType, keyWKCWLine, keyWKCWInvert)
|
||||
if err != nil {
|
||||
return out, err
|
||||
}
|
||||
@@ -13063,6 +13064,7 @@ func (a *App) GetWinkeyerSettings() (WinkeyerSettings, error) {
|
||||
if v := m[keyWKCWLine]; v != "" {
|
||||
out.CWKeyLine = v
|
||||
}
|
||||
out.CWInvert = m[keyWKCWInvert] == "1"
|
||||
if v := m[keyWKEscClears]; v != "" {
|
||||
out.EscClearsCall = v == "1"
|
||||
}
|
||||
@@ -13130,6 +13132,7 @@ func (a *App) SaveWinkeyerSettings(s WinkeyerSettings) error {
|
||||
keyWKEscClears: boolStr(s.EscClearsCall),
|
||||
keyWKSendOnType: boolStr(s.SendOnType),
|
||||
keyWKCWLine: strings.TrimSpace(s.CWKeyLine),
|
||||
keyWKCWInvert: boolStr(s.CWInvert),
|
||||
} {
|
||||
if err := a.settings.Set(a.ctx, k, v); err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user