From 3318fa1005eaea84f6b36272daa80aa67e393ab1 Mon Sep 17 00:00:00 2001 From: Jordan Sherer Date: Mon, 6 Aug 2018 10:18:11 -0400 Subject: [PATCH] Updated decoded to use new alphabet. Updated frame packing to use new 72 bit messages --- lib/ft8/extractmessage174.f90 | 2 +- lib/ft8/genft8.f90 | 21 +++++---------------- lib/ft8_decode.f90 | 3 ++- mainwindow.cpp | 23 +++++++++++++++++++++++ 4 files changed, 31 insertions(+), 18 deletions(-) diff --git a/lib/ft8/extractmessage174.f90 b/lib/ft8/extractmessage174.f90 index 066591b..361a9a6 100644 --- a/lib/ft8/extractmessage174.f90 +++ b/lib/ft8/extractmessage174.f90 @@ -9,7 +9,7 @@ subroutine extractmessage174(decoded,msgreceived,ncrcflag) integer*1, target:: i1Dec8BitBytes(11) integer*4 i4Dec6BitWords(12) - alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-+/?. abcdefghijklmnopqrstuvwxyz' + alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+/?.' ! Write decoded bits into cbits: 75-bit message plus 12-bit CRC write(cbits,1000) decoded diff --git a/lib/ft8/genft8.f90 b/lib/ft8/genft8.f90 index 331408b..ccd561b 100644 --- a/lib/ft8/genft8.f90 +++ b/lib/ft8/genft8.f90 @@ -17,25 +17,14 @@ subroutine genft8(msg,mygrid,bcontest,i3bit,msgsent,msgbits,itone) integer icos7(0:6) data icos7/2,5,6,0,4,1,3/ !Costas 7x7 tone pattern - alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-+/?. abcdefghijklmnopqrstuvwxyz' - + alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+/?.' + itype=6 do i=1,12 - v=index(alphabet, msg(i:i)) - 1 - i4Msg6BitWords(i)=v + v=index(alphabet, msg(i:i)) + if(v.eq.0) exit + i4Msg6BitWords(i)=v - 1 enddo - !i4Msg6BitWords( 1)=index(alphabet, msg( 1: 2)) - !i4Msg6BitWords( 2)=index(alphabet, msg( 2: 3)) - !i4Msg6BitWords( 3)=index(alphabet, msg( 3: 4)) - !i4Msg6BitWords( 4)=index(alphabet, msg( 4: 5)) - !i4Msg6BitWords( 5)=index(alphabet, msg( 5: 6)) - !i4Msg6BitWords( 6)=index(alphabet, msg( 6: 7)) - !i4Msg6BitWords( 7)=index(alphabet, msg( 7: 8)) - !i4Msg6BitWords( 8)=index(alphabet, msg( 8: 9)) - !i4Msg6BitWords( 9)=index(alphabet, msg( 9:10)) - !i4Msg6BitWords(10)=index(alphabet, msg(10:11)) - !i4Msg6BitWords(11)=index(alphabet, msg(11:12)) - !i4Msg6BitWords(12)=index(alphabet, msg(12:13)) msgsent=' ' msgsent(1:12)=msg(1:12) diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index 3f6291f..94b98e5 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -62,7 +62,8 @@ contains write(datetime,1001) nutc !### TEMPORARY ### 1001 format("000000_",i6.6) - call ft8apset(mycall12,mygrid6,hiscall12,hisgrid6,bcontest,apsym,iaptype) + !call ft8apset(mycall12,mygrid6,hiscall12,hisgrid6,bcontest,apsym,iaptype) + dd=iwave ndecodes=0 allmessages=' ' diff --git a/mainwindow.cpp b/mainwindow.cpp index 5158e4f..58cd1d7 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1274,6 +1274,23 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, bool isPrefix = false; qDebug() << Varicode::packCallsignPrefixSuffix("VE3", true) << Varicode::unpackCallsignPrefixSuffix(Varicode::packCallsignPrefixSuffix("VE3", true), &isPrefix) << isPrefix; + + +#define BIT (quint64)1 + quint64 val = 0; + quint8 rem = 0; + quint64 j = (BIT<<40)-1; + quint64 k = (BIT<<5)-1; + + qDebug() << j << k << val << rem; + qDebug() << "packing" << Varicode::unpack72bits(Varicode::pack72bits(j, k), &val, &rem); + qDebug() << j << k << val << rem; + + m_valid = false; + + quint8 r = 0; + quint64 v = Varicode::unpack72bits(Varicode::pack72bits((((quint64)1)<<62)-1, (1<<7)-1), &r); + qDebug() << "packing" << Varicode::pack72bits((((quint64)1)<<62)-1, (1<<7)-1) << v << r; #endif // this must be the last statement of constructor @@ -4017,6 +4034,7 @@ void MainWindow::guiUpdate() // 0: [000] <- this is standard set // 1: [001] <- this is fox/hound //m_i3bit=0; + qDebug() << "genft8" << message; char ft8msgbits[75 + 12]; //packed 75 bit ft8 message plus 12-bit CRC genft8_(message, MyGrid, &bcontest, &m_i3bit, msgsent, const_cast (ft8msgbits), const_cast (itone), 22, 6, 22); @@ -5954,6 +5972,10 @@ QStringList MainWindow::buildFT8MessageFrames(QString const& text){ QString MainWindow::parseFT8Message(QString input, bool *isFree){ + if(isFree) *isFree = true; + return input; + +#if 0 char message[29]; char msgsent[29]; char volatile ft8msgbits[75 + 12]; @@ -5999,6 +6021,7 @@ QString MainWindow::parseFT8Message(QString input, bool *isFree){ } return output.trimmed(); +#endif } bool MainWindow::prepareNextMessageFrame()