Updated decoded to use new alphabet. Updated frame packing to use new 72 bit messages
This commit is contained in:
parent
ba0a2fe52d
commit
3318fa1005
@ -9,7 +9,7 @@ subroutine extractmessage174(decoded,msgreceived,ncrcflag)
|
|||||||
integer*1, target:: i1Dec8BitBytes(11)
|
integer*1, target:: i1Dec8BitBytes(11)
|
||||||
integer*4 i4Dec6BitWords(12)
|
integer*4 i4Dec6BitWords(12)
|
||||||
|
|
||||||
alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-+/?. abcdefghijklmnopqrstuvwxyz'
|
alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+/?.'
|
||||||
|
|
||||||
! Write decoded bits into cbits: 75-bit message plus 12-bit CRC
|
! Write decoded bits into cbits: 75-bit message plus 12-bit CRC
|
||||||
write(cbits,1000) decoded
|
write(cbits,1000) decoded
|
||||||
|
@ -17,25 +17,14 @@ subroutine genft8(msg,mygrid,bcontest,i3bit,msgsent,msgbits,itone)
|
|||||||
integer icos7(0:6)
|
integer icos7(0:6)
|
||||||
data icos7/2,5,6,0,4,1,3/ !Costas 7x7 tone pattern
|
data icos7/2,5,6,0,4,1,3/ !Costas 7x7 tone pattern
|
||||||
|
|
||||||
alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-+/?. abcdefghijklmnopqrstuvwxyz'
|
alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+/?.'
|
||||||
|
|
||||||
itype=6
|
itype=6
|
||||||
do i=1,12
|
do i=1,12
|
||||||
v=index(alphabet, msg(i:i)) - 1
|
v=index(alphabet, msg(i:i))
|
||||||
i4Msg6BitWords(i)=v
|
if(v.eq.0) exit
|
||||||
|
i4Msg6BitWords(i)=v - 1
|
||||||
enddo
|
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=' '
|
||||||
msgsent(1:12)=msg(1:12)
|
msgsent(1:12)=msg(1:12)
|
||||||
|
|
||||||
|
@ -62,7 +62,8 @@ contains
|
|||||||
write(datetime,1001) nutc !### TEMPORARY ###
|
write(datetime,1001) nutc !### TEMPORARY ###
|
||||||
1001 format("000000_",i6.6)
|
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
|
dd=iwave
|
||||||
ndecodes=0
|
ndecodes=0
|
||||||
allmessages=' '
|
allmessages=' '
|
||||||
|
@ -1274,6 +1274,23 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
|
|
||||||
bool isPrefix = false;
|
bool isPrefix = false;
|
||||||
qDebug() << Varicode::packCallsignPrefixSuffix("VE3", true) << Varicode::unpackCallsignPrefixSuffix(Varicode::packCallsignPrefixSuffix("VE3", true), &isPrefix) << isPrefix;
|
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
|
#endif
|
||||||
|
|
||||||
// this must be the last statement of constructor
|
// this must be the last statement of constructor
|
||||||
@ -4017,6 +4034,7 @@ void MainWindow::guiUpdate()
|
|||||||
// 0: [000] <- this is standard set
|
// 0: [000] <- this is standard set
|
||||||
// 1: [001] <- this is fox/hound
|
// 1: [001] <- this is fox/hound
|
||||||
//m_i3bit=0;
|
//m_i3bit=0;
|
||||||
|
qDebug() << "genft8" << message;
|
||||||
char ft8msgbits[75 + 12]; //packed 75 bit ft8 message plus 12-bit CRC
|
char ft8msgbits[75 + 12]; //packed 75 bit ft8 message plus 12-bit CRC
|
||||||
genft8_(message, MyGrid, &bcontest, &m_i3bit, msgsent, const_cast<char *> (ft8msgbits),
|
genft8_(message, MyGrid, &bcontest, &m_i3bit, msgsent, const_cast<char *> (ft8msgbits),
|
||||||
const_cast<int *> (itone), 22, 6, 22);
|
const_cast<int *> (itone), 22, 6, 22);
|
||||||
@ -5954,6 +5972,10 @@ QStringList MainWindow::buildFT8MessageFrames(QString const& text){
|
|||||||
|
|
||||||
|
|
||||||
QString MainWindow::parseFT8Message(QString input, bool *isFree){
|
QString MainWindow::parseFT8Message(QString input, bool *isFree){
|
||||||
|
if(isFree) *isFree = true;
|
||||||
|
return input;
|
||||||
|
|
||||||
|
#if 0
|
||||||
char message[29];
|
char message[29];
|
||||||
char msgsent[29];
|
char msgsent[29];
|
||||||
char volatile ft8msgbits[75 + 12];
|
char volatile ft8msgbits[75 + 12];
|
||||||
@ -5999,6 +6021,7 @@ QString MainWindow::parseFT8Message(QString input, bool *isFree){
|
|||||||
}
|
}
|
||||||
|
|
||||||
return output.trimmed();
|
return output.trimmed();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MainWindow::prepareNextMessageFrame()
|
bool MainWindow::prepareNextMessageFrame()
|
||||||
|
Loading…
Reference in New Issue
Block a user