From 9993760bacdc9d4fce7bd517e5913ef635953de9 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 4 Aug 2016 19:30:27 +0000 Subject: [PATCH] Re-enable MSK144 click-to-decode, top panel only. Fix the improper display of "Fast" checkbox. Disable "CQ nnn" checkbox if MyCall is not K1JT or K9AN. Use AppDir as path to execute the LDPC encode program. Don't display submodes in mode label for JTMSK, MSK144. Make Rx Freq spinner invisible in MSK144 mode. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7001 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/fast_decode.f90 | 2 +- lib/genmsk144.f90 | 11 ++++++----- mainwindow.cpp | 22 +++++++++++++++++----- mainwindow.h | 1 + mainwindow.ui | 4 ++-- 5 files changed, 27 insertions(+), 13 deletions(-) diff --git a/lib/fast_decode.f90 b/lib/fast_decode.f90 index 3f9b11e29..a297011ea 100644 --- a/lib/fast_decode.f90 +++ b/lib/fast_decode.f90 @@ -61,7 +61,7 @@ subroutine fast_decode(id2,narg,ntrperiod,bShMsgs,line,pchk_file, & if(ib.gt.ntrperiod*12000) ib=ntrperiod*12000 nz=ib-ia+1 ! print*,ia,ib,nz,ndat0,t0,t1 - if(npick.ne.0) go to 900 !### TEMPORARILY DISABLE PICK DECODES ### + if(npick.gt.1) go to 900 !### DISABLE PICK FROM LOWER PANEL### if(newdat.eq.1 .or. npick.le.1) then call msk144_decode(id2(ia),nz,nutc,0,pchk_file,mycall,hiscall, & bShMsgs,ntol,t0,line) diff --git a/lib/genmsk144.f90 b/lib/genmsk144.f90 index c00ad7a0d..6b4b844b7 100644 --- a/lib/genmsk144.f90 +++ b/lib/genmsk144.f90 @@ -1,4 +1,5 @@ -subroutine genmsk144(msg0,ichk,msgsent,i4tone,itype,pchk_file,ldpc_msg) +subroutine genmsk144(msg0,ichk,msgsent,i4tone,itype,pchk_file,ldpc_msg, & + encodeExeFile) !!!!!!!!!!!!!!!!!! Experimental small blocklength ldpc version ! s8 + 48bits + s8 + 80 bits = 144 bits (72ms message duration) @@ -22,7 +23,7 @@ subroutine genmsk144(msg0,ichk,msgsent,i4tone,itype,pchk_file,ldpc_msg) use iso_c_binding, only: c_loc,c_size_t use packjt use hashing - character*512 pchk_file,gen_file,ldpc_msg,ldpc_cw + character*512 pchk_file,gen_file,ldpc_msg,ldpc_cw,encodeExeFile character*120 fname1,fname2 character*2048 cmnd character*22 msg0 @@ -139,9 +140,9 @@ subroutine genmsk144(msg0,ichk,msgsent,i4tone,itype,pchk_file,ldpc_msg) write(24,1010) msgbits 1010 format(80i1) close(24) - cmnd='encode "'//trim(pchk_file)//'" "'//trim(gen_file)//'" "' & - //trim(fname1)//'" "'//trim(fname2)//'"' - call system(cmnd) + cmnd=trim(encodeExeFile)//' "'//trim(pchk_file)//'" "'// & + trim(gen_file)//'" "'//trim(fname1)//'" "'//trim(fname2)//'"' + call system(trim(cmnd)) open(24,file=fname2,status='old') read(24,1020) codeword 1020 format(128i1) diff --git a/mainwindow.cpp b/mainwindow.cpp index 1a1733817..bfb2de1e3 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -78,8 +78,8 @@ extern "C" { int* itext, int len1, int len2); void genmsk144_(char* msg, int* ichk, char* msgsent, int itone[], - int* itext, char pchkFile[], char ldpcMsgFile[], - int len1, int len2, int len3, int len4); + int* itext, char pchkFile[], char ldpcMsgFile[], char encodeExeFile[], + int len1, int len2, int len3, int len4, int len5); void gen65_(char* msg, int* ichk, char* msgsent, int itone[], int* itext, int len1, int len2); @@ -844,6 +844,13 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, if(icbFast9->setVisible(false); } m_config.transceiver_online (); @@ -2764,7 +2772,7 @@ void MainWindow::guiUpdate() if(m_modeTx=="MSK144") { genmsk144_(message, &ichk, msgsent, const_cast (itone), &m_currentMessageType, &m_pchkFile[0], &m_ldpcMsgFile[0], - len1, len1, 512, 512); + &m_encodeExeFile[0], len1, len1, 512, 512, 512); if(m_restart) { int nsym=144; if(itone[40]==-40) nsym=40; @@ -3902,7 +3910,6 @@ void MainWindow::on_actionJT9_triggered() m_nsps=6912; m_FFTSize = m_nsps / 2; Q_EMIT FFTSize (m_FFTSize); - QString t1=(QString)QChar(short(m_nSubMode+65)); m_hsymStop=173; if(m_config.decode_at_52s()) m_hsymStop=179; bool bVHF=m_config.enable_VHF_features(); @@ -4008,6 +4015,9 @@ void MainWindow::on_actionMSK144_triggered() ui->rptSpinBox->setSingleStep(1); ui->sbFtol->setMinimum(23); ui->sbFtol->setMaximum(25); + bool b=m_config.my_callsign()=="K1JT" or m_config.my_callsign()=="K9AN"; + ui->cbCQRx->setEnabled(b); + ui->cbFast9->setVisible(false); } void MainWindow::on_actionQRA64_triggered() @@ -4297,6 +4307,7 @@ void MainWindow::switch_mode (Mode mode) ui->rptSpinBox->setMaximum(49); ui->sbFtol->setMinimum(21); ui->sbFtol->setMaximum(27); + ui->RxFreqSpinBox->setVisible(m_mode!="MSK144"); } void MainWindow::WSPR_config(bool b) @@ -5180,7 +5191,8 @@ void MainWindow::on_sbSubmode_valueChanged(int n) m_nSubMode=n; m_wideGraph->setSubMode(m_nSubMode); mode_label.setText (m_mode); - if (m_mode != "JT9+JT65" || !m_config.enable_VHF_features ()) { + if ((m_mode != "JT9+JT65" and m_mode != "MSK144" and m_mode != "JTMSK" and + !m_mode.startsWith ("WSPR")) || !m_config.enable_VHF_features ()) { mode_label.setText (mode_label.text () + " " + QChar {short (m_nSubMode + 65)}); } if(m_mode=="ISCAT") { diff --git a/mainwindow.h b/mainwindow.h index 8a9b1f919..0847aab4c 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -427,6 +427,7 @@ private: char m_msg[100][80]; char m_pchkFile[512]; char m_ldpcMsgFile[512]; + char m_encodeExeFile[512]; // labels in status bar QLabel tx_status_label; diff --git a/mainwindow.ui b/mainwindow.ui index 3583cc856..d80bd63a7 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -913,7 +913,7 @@ QLabel[oob="true"] { - true + false @@ -2516,7 +2516,7 @@ QPushButton[state="ok"] { true - false + true Save decoded