Browse Source

Added WI-QSO-PARTY

master
not_anonymous 2 years ago
parent
commit
404493d02b
  1. 29
      defs/WI-QSO-NONWI.def
  2. 29
      defs/WI-QSO-PARTY.def
  3. 19
      subs/callinfo.pl
  4. 1
      subs/qsy.pl
  5. 58
      subs/scoreqso.pl
  6. 4
      yfktest

29
defs/WI-QSO-NONWI.def

@ -0,0 +1,29 @@
WI QSO Party - Non WI
wiqso-nonwi # multiplier 1
wiqso-nonwi # scoring
- # multiplier 2
2 # exchange fields
3 # length of exchange field 1
3 # length of exchange field 2
4 # length of exchange field 3
4 # length of exchange field 4
[0-9a-zA-Z] # regex for every single character in exchange field 1
[0-9][0-9a-zA-Z]+ # regex for complete valid exchange field 1
[a-zA-Z] # regex for every single character in exchange field 2
[A-Z]+ # regex for complete valid exchange field 2
[0-9] # regex for every single character in exchange field 3
# regex for complete valid exchange field 3
[0-9] # regex for every single character in exchange field 4
# regex for complete valid exchange field 4
QSO: %5s %s %s %s %-13s %-11s %-13s %-4s
freq mode date utc mycall exc1s call exc2
WI QSO Party - Non WI Station
exc1s
Location
CQ NM MYCALL MYCALL K # F1
EXC1S # F3
TU # F3
MYCALL # F4
HISCALL # F5
NAME ? # F6
? # F7

29
defs/WI-QSO-PARTY.def

@ -0,0 +1,29 @@
WI QSO Party
exc2-all-all # multiplier 1
wiqso # scoring
- # multiplier 2
2 # exchange fields
3 # length of exchange field 1
3 # length of exchange field 2
4 # length of exchange field 3
4 # length of exchange field 4
[0-9a-zA-Z] # regex for every single character in exchange field 1
[0-9][0-9a-zA-Z]+ # regex for complete valid exchange field 1
[a-zA-Z] # regex for every single character in exchange field 2
[A-Z]+ # regex for complete valid exchange field 2
[0-9] # regex for every single character in exchange field 3
# regex for complete valid exchange field 3
[0-9] # regex for every single character in exchange field 4
# regex for complete valid exchange field 4
QSO: %5s %s %s %s %-13s %-11s %-13s %-4s
freq mode date utc mycall exc1s call exc2
WI QSO Party
exc1s
County
CQ NM MYCALL MYCALL K # F1
EXC1S # F3
TU # F3
MYCALL # F4
HISCALL # F5
NAME ? # F6
? # F7

19
subs/callinfo.pl

@ -392,6 +392,25 @@ sub callinfo {
addstr($win, " ") unless ($d =~ /EDD|MCK|SFE/);
}
refresh($win);
}
elsif (($contest eq 'WI-QSO-PARTY') || ($contest eq 'WI-QSO-NONWI')) { # WI-QSO-PARTY: Shows Sections
my $mults = $main::s_mult1{'All'};
my @districts = qw/ADA ASH BAR BAY BRO BUF BUR CAL CHI CLA COL CRA DAN DOD DOO DOU DUN EAU FLO FON FOR GRA GRE GRL IOW IRO JAC JEF JUN KEN KEW LAC LAF LAN LIN MAN MAR MRN MRQ MEN MIL MON OCO ONE OUT OZA PEP PIE POL POR PRI RAC RIC ROC RUS SAI SAU SAW SHA SHE TAY TRE VER VIL WAL WSB WAS WAU WAP WSR WIN WOO /;
move($win, 0,0);
foreach my $d (@districts) {
if ($mults =~ / $d /) {
attron($win, COLOR_PAIR(2));
}
else {
attron($win, COLOR_PAIR(4));
}
addstr($win, $d);
attron($win, COLOR_PAIR(4));
addstr($win, " ") unless ($d =~ /CRA|GRL|MAN|PIE|SHE|WOO/);
}
refresh($win);
}
else { # Show generic callsign info.

1
subs/qsy.pl

@ -61,6 +61,7 @@ sub qsyband {
my @bands = qw/160 80 60 40 30 20 17 15 12 10 6 2/;
if ($contest eq"ARRL-FD"){ @bands = qw/160 80 40 20 15 10 6 2/; }
if ($contest eq"NM-QSO-PARTY"){ @bands = qw/160 80 40 20 15 10 6/; }
if ($contest eq"WI-QSO-PARTY"){ @bands = qw/160 80 40 20 15 10 6/; }
if ($contest eq 'QRP-TTF') { @bands = qw/160 80 40 20 15 10/; }
my $pos=0;

58
subs/scoreqso.pl

@ -630,6 +630,29 @@ sub scoreqso {
}
}
}
elsif ($main::defqsopts eq 'wiqso') {
if ($qso{mode} eq 'SSB') {
$s_qsopts->{$qso{'band'}} += 1;
}
else { # Just a 2x "digital" contact
$s_qsopts->{$qso{'band'}} += 2;
}
}
elsif ($main::defqsopts eq 'wiqso-nonwi') { # WI QSO Party - Non-WI
my $qsopts=$qso{'exc2'};
if (defined($qsopts)) {
if (&iswicounty($qsopts)) {
if ($qso{mode} eq 'SSB') {
$s_qsopts->{$qso{'band'}} += 1;
}
else { # Just a 2x "digital" contact
$s_qsopts->{$qso{'band'}} += 2;
}
}
}
}
#############################################
# Mult 1 - can be one of the following:
@ -950,6 +973,24 @@ sub scoreqso {
}
}
elsif ($main::defmult1 eq 'wiqso-nonwi') { # WI QSO Party - Non-WI
my $mult=$qso{'exc2'};
if (defined($mult)) {
my $cty = (&dxcc($qso{'call'}, 'wae'))[7];
if ($cty =~ /^(K)$/) { # state = mult
unless (&iswicounty($mult)) {
$mult = ''; # Not a valid exchange!
}
if (!($s_mult1->{All} =~ / $mult /)) {
$s_mult1->{All} .= " $mult ";
}
}
}
}
elsif ($main::defmult1 =~ /fobb/) { # Unique numbers for bumble-bees
if ($qso{call} =~ /\/(BB)/i) {
my $mult = $qso{'exc3'};
@ -1181,6 +1222,11 @@ sub scoreqso {
elsif ($main::power eq 'LOW') { $multall = 2; }
else { $multall = 5; }
}
if ($main::defqsopts =~ /wiqso/) {
if ($main::power eq 'HIGH') { $multall = 1; }
elsif ($main::power eq 'LOW') { $multall = 1.5; }
else { $multall = 2; }
}
if ($main::defmult2 =~ /qrpttf/) {
if ($main::transmitter eq 'HOME') { $multall = 1; }
elsif ($main::transmitter eq 'HILL') { $multall = 2; }
@ -1285,6 +1331,18 @@ sub isnvcounty {
}
}
sub iswicounty {
my $test = shift;
if ($test =~
/^(ADA|ASH|BAR|BAY|BRO|BUF|BUR|CAL|CHI|CLA|COL|CRA|DAN|DOD|DOO|DOU|DUN|EAU|FLO|FON|FOR|GRA|GRE|GRL|IOW|IRO|JAC|JEF|JUN|KEN|KEW|LAC|LAF|LAN|LIN|MAN|MAR|MRN|MRQ|MEN|MIL|MON|OCO|ONE|OUT|OZA|PEP|PIE|POL|POR|PRI|RAC|RIC|ROC|RUS|SAI|SAU|SAW|SHA|SHE|TAY|TRE|VER|VIL|WAL|WSB|WAS|WAU|WAP|WSR|WIN|WOO)$/
) {
return 1;
}
else {
return 0;
}
}
return 1;

4
yfktest

@ -329,7 +329,7 @@ refresh($winfo);
our $wshowscore = newwin(10,21,14,59);
our $wpartialcheck = newwin(9,40,0,39);
if ($contest eq "ARRL-FD"){
if (($contest eq "ARRL-FD") || ($contest =~ /WI-QSO/)){
$winfo = newwin(6,47,8,0);
attron($winfo, COLOR_PAIR(4));
addstr($winfo, 0,0, ' 'x(6*47));
@ -359,7 +359,7 @@ my $ch='';
if (length ($ops) > 13) {$ops = substr $ops, 0, 13;}
if ($ops) {addstr($wmain, 9, 62, "Op: $ops");}
unless (($contest eq 'DXPED') || ($contest eq 'ARRL-FD')) {addstr($wmain, 9, 46, "$contest");}
unless (($contest eq 'DXPED') || ($contest eq 'ARRL-FD') || ($contest =~ /WI-QSO/)) {addstr($wmain, 9, 46, "$contest");}
my $oldband = $qso{'band'}; # used to insure cqrepeats are requested anew
my $oldmode = $qso{'mode'}; # after band or mode changes

Loading…
Cancel
Save