Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for ARRL Sweepstakes Contest #55

Closed
2 of 3 tasks
w7sst opened this issue Oct 11, 2022 · 10 comments · Fixed by #343
Closed
2 of 3 tasks

Add support for ARRL Sweepstakes Contest #55

w7sst opened this issue Oct 11, 2022 · 10 comments · Fixed by #343
Assignees
Labels
contest New contest request

Comments

@w7sst
Copy link
Owner

w7sst commented Oct 11, 2022

Contest information

Unique contest behaviors

  • This contest has a complex exchange.
  • Exchange:
  • Example exchange: 1234 A W7SST 72 OR
  • N1MM allows all exchange information to be entered in a single field. It would be nice to do the same with Morse Runner.
  • If N1MM finds the DxStn's call in the call history file, it will prepopulate the exchange with the last two parts of the exchange, <check> and <section> (e.g. 72 OR). The cursor is positioned at the end of this information and allows the user to enter the first two fields of the exchange (serial-number and precedence) as copied from the QSO (e.g. 1234 A). The result is 72 OR 1234 A. N1MM will the re-order this information and log the correct exchange as 1234 A W7SST 72 OR. It would be nice if Morse Runner's exchange handing could so something similar. At a minimum, the user would enter the exchange as copied.
  • We need to decide what this special behavior should be.

Additional information

This contest may be implemented in two phases:

  1. Read call history file and generate the entire exchange. The user will enter the complete exchange with no advanced handling similar to N1MM. There will be limited log checking to check for correct exchange copy.
  2. Implement remaining exchange checking and logging, including score of the log.

Can you help?

Please let us know if you are available to help. (replace '[ ]' with '[x]' to affirm)

  • Yes, I'm available to discuss questions or alternatives regarding the implementation of this contest.
  • Yes, I'd like to review and provide feedback on the proposed solution.
  • Yes, I'm available to help test this contest. Let me know when it is ready for early testing.
@w7sst w7sst added the contest New contest request label Oct 11, 2022
@w7sst w7sst self-assigned this Oct 12, 2022
@w7sst
Copy link
Owner Author

w7sst commented Oct 12, 2022

I have started to code this one. The exchange is complex. It consists of five parts (e.g. 1234 A W7SST 72 OR).

I had original envisioned having two generalized fields, Exch1 and Exch2. Most contests fit into this model. However, the SS Contest does not fit into this model very well.

So... Having looked at this for a little while now, I'm going to slow down on this to allow more time to be spent on design. I was hoping to get something out before Nov 2022 (in time for SS CW in November), but this is not practical at this time.

I will hold this code on a branch in my local repository called ss-dev.

@w7sst w7sst removed their assignment Oct 12, 2022
@w7sst
Copy link
Owner Author

w7sst commented Jun 10, 2024

From a groups.io/N1MM posting...

The entry function for the SS contests (both CW and SSB) is unique. It allows you to enter the exchange data in any order and make corrections on the fly to either the callsign or the exchange without needing to use the Backspace or Delete keys and without needing to jump back to the callsign box from the exchange box. The main trick to remember is to always enter the received serial number and precedence into the received exchange box in the Entry window as a joined pair without an intervening space, as in 123B.

Also see ARRL 2023 Contest Rules.

@w7sst
Copy link
Owner Author

w7sst commented Aug 26, 2024

Well, this has been a long time coming. I finally have a coded, working version of ARRL Sweepstakes. I will not get this code into code review and post a build so we can get some testing on it.

Here is a screen shot after 8 minutes or so. I realize my code copying skills have a lot to be desired and that I would probably not do very well in this contest as the exchange is long. Need to practice more I guess...

image

I will get this into code review in the next day or two.

@K6OK @scotthibbs

@w7sst w7sst added this to the v1.85 - next release milestone Aug 30, 2024
@w7sst w7sst self-assigned this Aug 30, 2024
w7sst added a commit that referenced this issue Aug 30, 2024
@w7sst w7sst linked a pull request Aug 30, 2024 that will close this issue
@w7sst
Copy link
Owner Author

w7sst commented Aug 30, 2024

Hi @relrod,
I noticed you place a thumbs-up earlier in this discussion. thank you.

Would you be interested in helping to test the implementation of this contest before the release? We would appreciate the help.

Thank you,
Mike W7SST

@relrod
Copy link

relrod commented Aug 30, 2024

@w7sst oh this is awesome, thanks for the ping. Unfortunately I don't currently have a windows VM or WINE set up on my system (Linux). I could change that, but I don't want to set expectations because I'm not sure when I will get to it, and I don't want to block a release on it.

If I get around to it before you do the release, I will update here with my findings and let you know!

I'm excited for this either way, whenever I get back to using MR!

@w7sst
Copy link
Owner Author

w7sst commented Aug 30, 2024

I have finally posted a pull request/code review for ARRL Sweepstakes Contest.

Here is a link to the development build.

Let me know if you have any time to test this.

Thanks,
Mike

@K6OK @scotthibbs

@w7sst
Copy link
Owner Author

w7sst commented Aug 30, 2024

The Readme.txt file description of the ARRL Sweepstakes Contest reads:

    ARRL Sweepstakes
    When: First full weekend in November
    How: Stations in US/Canada exchange information with other US/Canada stations.
    Exchange: <serial number> <Precedence> <Callsign> <Check> <Section>
    where:
      Serial number: sequential serial number for each contact
      Precedence: A, B, Q, M, S, U
      Callsign: your call sign
      Check: last two digits of the year the operator or station was first licenced
      Section: ARRL/RAC Section
      for example: "123 A 72 OR"
    Rules: https://contests.arrl.org/ContestRules/SS-Rules.pdf
    Entering your Exchange:
    - This contest uses a single field to enter the four parts of the SS-Rules
      exchange. The exchange parts can be entered in any order as long as the
      'numeric part' is followed by its corresponding 'character part.'
    - For example, the two exchange parts can be entered in either order:
        a) "123 A 72 OR"
        b) "72 OR 123 A"
    - If a correction needs to be made, just type it at the end. For example,
      while copying you realize a mistake (123 should be 124). In this case,
      simply type the correction at the end:
        "123 A 72 OR  124 A"
      This allows corrections to be made while you are copying the exchange
      without using any arrow, delete or backspace keys.
    - The spaces between the numeric and characters parts are optional.
      The following are equivalent:
        "123 A 72 OR"
        "123A 72OR"
        "72 OR 123 A"
        "72OR 123A"
    - Callsigns corrections can be optionally entered into the Exchange field.
      If the caller sends a corrected callsign, you can enter the updated call
      anywhere in the exchange field without changing focus to the original
      callsign entry field.  For example, entering "W1AW 123 A 38 CT" will
      update the callsign when storing the QSO into the log.
    - For added realism, the simulation will populate the exchange field
      with the Check and Section entries for the entered callsign. This
      behavior matches current N1MM behavior. However, the simulation will
      occasionally modify the Section to simulate that the operator is
      operating from a different location.

The last item above, is an random behavior where the Check-Section of the calling station is inserted into the Exchange field. The randomness of this is controlled with the following MorseRunner.ini file setting. The value can be between 0 and 100, and represents the percentage of occurrence. By default, this exchange field is pre-populated with the Check-Section about 50% of the time. Set the value of the ShowCheckSection= keyword in the MorseRunner.ini file to change the frequency of occurrence:

[Settings]
ShowCheckSection=50

Set this value to zero to disable the feature.

@K6OK @scotthibbs

Update:
I have updated the last item of the Readme.txt file to read:

    - For added realism, the simulation will populate the exchange field
      with the Check and Section entries for the entered callsign. This
      behavior matches current N1MM behavior. In addition, the simulation will
      occasionally modify the Section to simulate when an operator is operating
      from a different location.

      By default, the Check/Section value will be pre-populated in the Exchange
      field about 50% of the time. This behavior can be adjusted between 0% and
      100% by setting the following keyword in the MorseRunner.ini file:
        [Settings]
        ShowCheckSection=50
      Valid values range between 0 and 100, representing 0% and 100%.
      Note that a zero value will disable this feature.

Note - this change is not in the .zip file (v1.85-dev-4)

@w7sst
Copy link
Owner Author

w7sst commented Aug 31, 2024

Below is a copy of Jim's (@K6OK) feedback after testing the development build v1.85-dev.4...

I ran 1.85-dev.4 in both Pileup and Single Call mode. Works great! Only have a couple of comments:

The label for the rightmost entry field says Nr Prec Call CK Sect. Suggest delete "Call" because it implies the call is a mandatory part of the exchange to be entered, which is not the case. I understand call correction can happen here but that can be explained in a help file or wiki.

For the log, maybe programmatically reduce the font size so there aren't so many "..." column headers? 73 Jim K6OK

@w7sst
Copy link
Owner Author

w7sst commented Aug 31, 2024

@K6OK
Hi Jim,
(I'm moving our conversation into this issue rather than the Code Review/Pull Request)

I was wondering if you had any feedback on the automatic populating of the Check Section portion of the exchange into the exchange entry field. You should have noticed this was occurring about 50% of the time. You also may have noticed that the Section field was modified about 50% of the time. Inserting the Check/Section into the entry field follows N1MM behavior when using a Call History file.

Did you find this beneficial to the simulation and your practice time? Is the default (50%) reasonable? Should we turn this off (by setting the .ini keyword to zero)?

Just wondering what your thoughts were on this feature and whether we should leave it enabled by default. For me, if someone is practicing and is intending to use N1MM logger, then this behavior would be beneficial during practice.

Thank you,
Mike W7SST

@K6OK
Copy link
Collaborator

K6OK commented Aug 31, 2024

Hi Mike -- Initially I was a little bit surprised by it but I quickly went "Aha! History file mode!" I'm fine with the 50% mix. It's good practice for this contest. Forces you to keep a close eye on the entry field, you have to be prepared to either decode and type the whole exchange or decode-to-verify. Keeps you on your toes. -- Jim

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contest New contest request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants