From 971a2c80eecb153f8d7f2dddc46509482f07d056 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 28 Sep 2012 20:00:05 +0000 Subject: [PATCH] Trying to make fano decoder work in genjt9... git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@2606 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- libm65/genjt9.f90 | 53 ++++++++++++++++++++++++++++++++++++++--------- mainwindow.cpp | 2 +- 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/libm65/genjt9.f90 b/libm65/genjt9.f90 index 5ce8160a8..97779f195 100644 --- a/libm65/genjt9.f90 +++ b/libm65/genjt9.f90 @@ -6,6 +6,8 @@ subroutine genjt9(message,minutes,msgsent,d6) character*22 message !Message to be generated character*22 msgsent !Message as it will be received + integer*4 mettab(0:255,0:1) + integer*4 d0(13) !72-bit message as 6-bit words integer*1 d1(13) !72 bits and zero tail as 8-bit bytes integer*1 d2(206) !Encoded information-carrying bits @@ -21,6 +23,7 @@ subroutine genjt9(message,minutes,msgsent,d6) integer*4 t4(69) !Symbols from d3, values 0-7 integer*4 t5(69) !Gray-coded symbols, values 0-7 integer*4 t6(85) !Channel symbols including sync, values 0-8 + integer*1 tmp(72) integer isync(85) data isync/ & @@ -52,18 +55,48 @@ subroutine genjt9(message,minutes,msgsent,d6) endif enddo -! t6=d6 -! j=0 -! do i=1,85 -! if(isync(i).eq.1) cycle -! j=j+1 -! t5(j)=t6(i)-1 -! enddo + if(j.ne.999) return -! call graycode(t5,69,-1,t4) -! call unpackbits(t4,nsym2,3,t3) -! call interleave9(t3,-1,t2) + t6=d6 + j=0 + do i=1,85 + if(isync(i).eq.1) cycle + j=j+1 + t5(j)=t6(i)-1 + enddo + + call graycode(t5,69,-1,t4) + call unpackbits(t4,nsym2,3,t3) + call interleave9(t3,-1,t2) ! print*,'A',d2-t2 +! Get the metric table + bias=0.37 + scale=10 !Optimize? + open(19,file='met8.21',status='old') + + do i=0,255 + read(19,*) xjunk,x0,x1 + mettab(i,0)=nint(scale*(x0-bias)) + mettab(i,1)=nint(scale*(x1-bias)) !### Check range, etc. ### + enddo + print*,'b' + + ndelta=17 + ntimeout=0 + limit=1000 + call fano232(t2,72+31,mettab,ndelta,limit,t1,ncycles,metric,ierr) + print*,t1 +! if(ncycles/(72+31).ge.limit) ntimeout=1 +! nbytes=(nbits+7)/8 +! do i=1,nbytes +! n=t1(i) +! t4(i)=iand(n,255) +! enddo +! call unpackbits(t1,9,8,tmp) +! call packbits(tmp,12,6,t0) +! print*,'z',t0 + + return end subroutine genjt9 diff --git a/mainwindow.cpp b/mainwindow.cpp index 2df44ab0f..d1d67f2ab 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,4 +1,4 @@ -//---------------------------------------------------------------- MainWindow +//--------------------------------------------------------------- MainWindow #include "mainwindow.h" #include "ui_mainwindow.h" #include "devsetup.h"