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

Reply via email to