On 15/04/2017 06:02, Black Michael wrote:
So do you need me to do some of this or are you going to finish it?
I'm a little fuzzy on what the compound calls are. Are those the ones
with suffix/prefix not in the lookup tables so they end up not getting
compressed?
I knew there was more to that DE problem then the kludge I put in
there....
HI Mike,
I was not sure what the code you added in your patch:
@@ -73,7 +73,7 @@
ncall=NBASE + 2
return
else if(callsign(1:3).eq.'DE ') then
- ncall=267796945
+ ncall=267747660
return
endif
and
@@ -244,6 +244,13 @@
else if((n.ge.267747660) .and. (n.le.267796944)) then
! DE with suffix
+ ! Check for type 1 prefix/suffix special handling on "DE" messages
+ if ((n.ge.267748511 .and. n.le.267748522) .or. n.eq.267747660) then
+ word='DE ';
+ iv2=0;
+ return
+ endif
+ ! W9MDB Note: Why doesn't this work? e.g. "DE KA1ABC/P" doesn't unpack
correctly -- see kludge above
and
@@ -495,6 +502,8 @@
! Encode data into 6-bit words
20 continue
+ if(c1(1:3).eq.'DE ' .and. nv2a.eq.1 .and. nv2b.eq.3 .and. (.not.text3))
nc1=267747660 + k2
+
if(itype.ne.6) itype=max(nv2a,nv2b)
dat(1)=iand(ishft(nc1,-22),63) !6 bits
dat(2)=iand(ishft(nc1,-16),63) !6 bits
was doing, so I worked through the type 1 prefixes and suffixes in DE
messages and ended up with the last patch I posted. I think it stands
alone so I can check that in separately if you wish. I wasn't sure is
there was some other edge case that your changes addressed (aside from
the extra checks if word three forced a free text message). BTW the
biggest problem with your "kludge" seems to be that you changed the
encoding of DE messages which creates a backwards compatibility problem,
my patch only changes the interpretation of existing type 2
prefix/suffix DE messages like "DE W9MDB/P" and stops them coming out
like "DE W9MDB AR95".
FYI the compound calls come in two varieties, type 1 and type 2 each
having two sub-types prefix and suffix. The type 1 ones are those that
are either the predefined prefixes or predefined suffixes defined in
lib/pxf.f90. These are encoded into word 3 instead of a grid, report,
RO, RRR or 73.
Type 2 ones are only usable in CQ, QRZ or DE messages where the prefix
(up to 4 alpha-numeric characters) or suffix (up to three alpha-numeric
characters) is encoded into the first word, these are detected by the
special ranges of word 1 values, that do not collide with valid
callsigns (look at use of the variable nv2b in lib/packjt.f90 when
nv2b.eq.4 or nv2b.eq.5). They allow the sending of a grid, report, RRR,
RO, 73 (encoded in word 3) with compound calls that have a prefix or
suffix that is not in the predefined lists, like these examples from the
User Guide:
CQ W4/G0XYZ FM07
QRZ K1ABC/VE6 DO33
DE W4/G0XYZ FM18
DE W4/G0XYZ -22
DE W4/G0XYZ R-22
DE W4/G0XYZ RRR
DE W4/G0XYZ 73
73
Bill
G4WJS.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel