diff --git a/lib/decoder.f90 b/lib/decoder.f90 index e2692d459..b532c9d67 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -390,7 +390,7 @@ contains end select end subroutine jt9_decoded - subroutine ft8_decoded (this,sync,snr,dt,freq,iap,iera,decoded) + subroutine ft8_decoded (this,sync,snr,dt,freq,decoded,nap,qual) use ft8_decode implicit none @@ -399,12 +399,18 @@ contains integer, intent(in) :: snr real, intent(in) :: dt real, intent(in) :: freq - integer, intent(in) :: iap - integer, intent(in) :: iera character(len=22), intent(in) :: decoded - - write(*,1000) params%nutc,snr,dt,nint(freq),decoded,iap,iera -1000 format(i6.6,i4,f5.1,i5,' ~ ',1x,a22,2x,i2,i2) + integer, intent(in) :: nap + real, intent(in) :: qual + character*3 annot + + annot=' ' + if(nap.ne.0) then + if(qual.ge.0.17) write(annot,'(a1,i1,a1)') 'a',nap,' ' + if(qual.lt.0.17) write(annot,'(a1,i1,a1)') 'a',nap,'?' + endif + write(*,1000) params%nutc,snr,dt,nint(freq),decoded,annot +1000 format(i6.6,i4,f5.1,i5,' ~ ',1x,a22,3x,a3) write(13,1002) params%nutc,nint(sync),snr,dt,freq,0,decoded 1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a22,' FT8') call flush(6) diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index dc8b0f95a..9fd2b8403 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -7,7 +7,7 @@ module ft8_decode end type ft8_decoder abstract interface - subroutine ft8_decode_callback (this,sync,snr,dt,freq,iap,iera,decoded) + subroutine ft8_decode_callback (this,sync,snr,dt,freq,decoded,nap,qual) import ft8_decoder implicit none class(ft8_decoder), intent(inout) :: this @@ -15,9 +15,9 @@ module ft8_decode integer, intent(in) :: snr real, intent(in) :: dt real, intent(in) :: freq - integer, intent(in) :: iap - integer, intent(in) :: iera character(len=22), intent(in) :: decoded + integer, intent(in) :: nap + real, intent(in) :: qual end subroutine ft8_decode_callback end interface @@ -107,7 +107,14 @@ contains ! xdt,nint(f1),message ! flush(81) if(.not.ldupe .and. associated(this%callback)) then - call this%callback(sync,nsnr,xdt,f1,iap,iera,message) +! nap: 0=no ap, 1=CQ; 2=MyCall; 3=DxCall; 4=MyCall,DxCall + if(iap.eq.0) then + nap=0 + else + nap=(iaptype-1)*2+iap + endif + qual=1.0-(nharderrors+dmin)/60.0 ! scale qual to [0.0,1.0] + call this%callback(sync,nsnr,xdt,f1,message,nap,qual) endif else write(19,1004) nutc,ncand,icand,ipass,iaptype,iap,iera, &