Updated decoded to use new alphabet. Updated frame packing to use new 72 bit messages

This commit is contained in:
Jordan Sherer 2018-08-06 10:18:11 -04:00
parent ba0a2fe52d
commit 3318fa1005
4 changed files with 31 additions and 18 deletions

View File

@ -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

View File

@ -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)

View File

@ -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=' '

View File

@ -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<char *> (ft8msgbits),
const_cast<int *> (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()