Cleaning up the handling of goofy calls.

This commit is contained in:
Joe Taylor 2018-08-29 09:21:08 -04:00
parent da2c670c0b
commit 17beaf71de
5 changed files with 23 additions and 12 deletions

View File

@ -2833,7 +2833,7 @@ Right click for insert and delete options.</string>
</size> </size>
</property> </property>
<property name="title"> <property name="title">
<string>Special operating activity: FT8 and MSK144</string> <string>Special operating activity (FT8 and MSK144 only)</string>
</property> </property>
<widget class="QWidget" name="gridLayoutWidget"> <widget class="QWidget" name="gridLayoutWidget">
<property name="geometry"> <property name="geometry">

View File

@ -22,7 +22,8 @@ DecodedText::DecodedText (QString const& the_string)
{ {
if (message_.length() >= 1) if (message_.length() >= 1)
{ {
message_ = message_.left (36).remove (QRegularExpression {"[<>]"}); message0_ = message_.left(36);
message_ = message_.left(36).remove (QRegularExpression {"[<>]"});
int i1 = message_.indexOf ('\r'); int i1 = message_.indexOf ('\r');
if (i1 > 0) if (i1 > 0)
{ {
@ -41,7 +42,7 @@ DecodedText::DecodedText (QString const& the_string)
} }
// stdmsg is a Fortran routine that packs the text, unpacks it // stdmsg is a Fortran routine that packs the text, unpacks it
// and compares the result // and compares the result
auto message_c_string = message_.toLocal8Bit (); auto message_c_string = message0_.toLocal8Bit ();
message_c_string += QByteArray {37 - message_c_string.size (), ' '}; message_c_string += QByteArray {37 - message_c_string.size (), ' '};
is_standard_ = stdmsg_(message_c_string.constData(),37); is_standard_ = stdmsg_(message_c_string.constData(),37);
} }

View File

@ -79,6 +79,7 @@ private:
int padding_; int padding_;
bool contest_mode_; bool contest_mode_;
QString message_; QString message_;
QString message0_;
bool is_standard_; bool is_standard_;
}; };

View File

@ -55,15 +55,24 @@ PA9XYZ 590003 IO91NP
G4ABC/P R 570007 JO22DB G4ABC/P R 570007 JO22DB
PA9XYZ G4ABC/P RR73 PA9XYZ G4ABC/P RR73
8. Compound or goofy calls 8. Compound or nonstandard callsign calls CQ
----------------------------------------------------------- -----------------------------------------------------------
CQ PJ4/K1ABC CQ PJ4/K1ABC
<PJ4/K1ABC> W9XYZ PJ4/K1ABC <W9XYZ>
W9XYZ K1ABC -11 W9XYZ <PJ4/K1ABC> -11
K1ABC W9XYZ R-09 <PJ4/K1ABC> W9XYZ R-09
W9XYZ <PJ4/K1ABC> RRR <W9XYZ> PJ4/K1ABC RRR
<PJ4/K1ABC> W9XYZ 73 PJ4/K1ABC <W9XYZ> 73
9. Other stuff
9. Compound or nonstandard callsign answers a CQ
-----------------------------------------------------------
CQ W9XYZ EN37
<W9XYZ> YW18FIFA
<YW18FIFA> W9XYZ -11
W9XYZ <YW18FIFA> R-09
YW18FIFA <W9XYZ> RRR
<W9XYZ> YW18FIFA 73
10. Other stuff
----------------------------------------------------------- -----------------------------------------------------------
TNX BOB 73 GL TNX BOB 73 GL
CQ YW18FIFA CQ YW18FIFA

View File

@ -116,7 +116,6 @@ subroutine save_hash_call(c13,n10,n12,n22)
900 return 900 return
end subroutine save_hash_call end subroutine save_hash_call
subroutine pack77(msg0,i3,n3,c77) subroutine pack77(msg0,i3,n3,c77)
use packjt use packjt
@ -834,7 +833,6 @@ subroutine pack77_03(nwords,w,i3,n3,c77)
return return
end subroutine pack77_03 end subroutine pack77_03
subroutine pack77_1(nwords,w,i3,n3,c77) subroutine pack77_1(nwords,w,i3,n3,c77)
! Check Type 1 (Standard 77-bit message) and Type 2 (ditto, with a "/P" call) ! Check Type 1 (Standard 77-bit message) and Type 2 (ditto, with a "/P" call)
@ -860,6 +858,8 @@ subroutine pack77_1(nwords,w,i3,n3,c77)
if(w(1)(1:1).eq.'<' .and. index(w(1),'>').ge.5) ok1=.true. if(w(1)(1:1).eq.'<' .and. index(w(1),'>').ge.5) ok1=.true.
if(w(2)(1:1).eq.'<' .and. index(w(2),'>').ge.5) ok2=.true. if(w(2)(1:1).eq.'<' .and. index(w(2),'>').ge.5) ok2=.true.
if(.not.ok1 .or. .not.ok2) return if(.not.ok1 .or. .not.ok2) return
if(w(1)(1:1).eq.'<' .and. index(w(2),'/').gt.0) return
if(w(2)(1:1).eq.'<' .and. index(w(1),'/').gt.0) return
if(nwords.eq.2 .and. (.not.ok2 .or. index(w(2),'/').ge.2)) return if(nwords.eq.2 .and. (.not.ok2 .or. index(w(2),'/').ge.2)) return
if(nwords.eq.2) go to 10 if(nwords.eq.2) go to 10