Add the name, comment and lights from N1MM's entry window
Three more things off the screenshot of N1MM's entry window. A Name box and a Comment box beside the exchange. Neither is part of the exchange, so an empty one does not hold up a contact and ESM does not wait for it; both fill the log columns of those names, and a contest that exchanges a name keeps what was exchanged. Tab now walks the callsign, the exchange, the name and the comment before coming round again, which is what the boxes being there implies. The name is filled from the call history file, and what that file says in its UserText column is written under the entry boxes, where N1MM writes it. Two lights beside the run switch: green while a radio is answering, red while something is going out on the air. The transmit light follows the keyer, so with cwdaemon it goes out when the message has actually finished rather than when the text was handed over. The window is wider to fit the two new boxes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -37,6 +37,13 @@ public sealed class RadioPosition
|
||||
/// searching. Each radio runs or searches on its own.
|
||||
public bool IsRunning { get; set; }
|
||||
|
||||
/// The other operator's name and a note about the contact. Neither is part
|
||||
/// of any exchange — N1MM keeps both beside the exchange boxes and writes
|
||||
/// them into the log — so neither counts towards a complete exchange.
|
||||
public string OtherName { get; set; } = "";
|
||||
|
||||
public string Comment { get; set; } = "";
|
||||
|
||||
public Contest Contest => Session.Contest;
|
||||
|
||||
public ContestInstance Instance => Session.Instance;
|
||||
@@ -83,8 +90,10 @@ public sealed class RadioPosition
|
||||
{
|
||||
throw new InvalidOperationException($"the exchange for {Entry.Call} is not complete");
|
||||
}
|
||||
Qso stored = Session.Add(BuildQso(Entry.Call.Trim()));
|
||||
Qso stored = Session.Add(Noted(BuildQso(Entry.Call.Trim())));
|
||||
Entry.Clear();
|
||||
OtherName = "";
|
||||
Comment = "";
|
||||
return stored;
|
||||
}
|
||||
|
||||
@@ -119,9 +128,20 @@ public sealed class RadioPosition
|
||||
public void Wipe()
|
||||
{
|
||||
Entry.Clear();
|
||||
OtherName = "";
|
||||
Comment = "";
|
||||
Session.NotifyChanged();
|
||||
}
|
||||
|
||||
/// The name and comment boxes fill the log columns of the same names. A
|
||||
/// contest that exchanges a name has already filled that column, and what
|
||||
/// was exchanged wins.
|
||||
private Qso Noted(Qso qso) => qso with
|
||||
{
|
||||
Name = qso.Name.Length > 0 ? qso.Name : OtherName.Trim(),
|
||||
Comment = qso.Comment.Length > 0 ? qso.Comment : Comment.Trim(),
|
||||
};
|
||||
|
||||
/// The report an operator sends without thinking about it: 599 on CW and
|
||||
/// digital modes, 59 on phone.
|
||||
public string DefaultReport() => Mode.Category switch
|
||||
|
||||
Reference in New Issue
Block a user