mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-07-30 12:42:27 -04:00
CTRL+Click on QMAP's upper waterfall sends integer kHz dial freq request to WSJT-X.
This commit is contained in:
parent
c251764252
commit
f59b5a48f7
@ -93,6 +93,7 @@ extern struct {
|
|||||||
int nQDecoderDone; //1 for real-time decodes, 2 for data from disk
|
int nQDecoderDone; //1 for real-time decodes, 2 for data from disk
|
||||||
int nWDecoderBusy; //Set to 1 when WSJT-X decoder is busy
|
int nWDecoderBusy; //Set to 1 when WSJT-X decoder is busy
|
||||||
int nWTransmitting; //Set to TRperiod when WSJT-X is transmitting
|
int nWTransmitting; //Set to TRperiod when WSJT-X is transmitting
|
||||||
|
int kHzRequested; //Integer kHz dial frequency request to WSJT-X
|
||||||
char result[50][64]; //Staging area for QMAP decodes
|
char result[50][64]; //Staging area for QMAP decodes
|
||||||
} decodes_;
|
} decodes_;
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ subroutine decode0(dd,ss,savg)
|
|||||||
character mycall0*12,hiscall0*12,hisgrid0*6
|
character mycall0*12,hiscall0*12,hisgrid0*6
|
||||||
character*64 result
|
character*64 result
|
||||||
common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, &
|
common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, &
|
||||||
nWTransmitting,result(50)
|
nWTransmitting,kHzRequested,result(50)
|
||||||
common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, &
|
common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, &
|
||||||
ndepth,ndiskdat,ntx60,newdat,nfa,nfb,nfcal,nfshift, &
|
ndepth,ndiskdat,ntx60,newdat,nfa,nfb,nfcal,nfshift, &
|
||||||
ntx30a,ntx30b,ntol,n60,nCFOM,nfsample,ndop58,nmode, &
|
ntx30a,ntx30b,ntol,n60,nCFOM,nfsample,ndop58,nmode, &
|
||||||
|
@ -32,7 +32,7 @@ subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
|
|||||||
character*64 result,ctmp
|
character*64 result,ctmp
|
||||||
character*20 datetime,datetime1
|
character*20 datetime,datetime1
|
||||||
common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, &
|
common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, &
|
||||||
nWTransmitting,result(50)
|
nWTransmitting,kHzRequested,result(50)
|
||||||
common/cacb/ca
|
common/cacb/ca
|
||||||
data ifile/0/
|
data ifile/0/
|
||||||
save
|
save
|
||||||
|
@ -22,7 +22,7 @@ subroutine q65c
|
|||||||
character*20 datetime
|
character*20 datetime
|
||||||
character*64 result
|
character*64 result
|
||||||
common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, &
|
common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, &
|
||||||
nWTransmitting,result(50)
|
nWTransmitting,kHzRequested,result(50)
|
||||||
common/datcom2/dd(2,5760000),ss(400,NFFT),savg(NFFT),nparams0
|
common/datcom2/dd(2,5760000),ss(400,NFFT),savg(NFFT),nparams0
|
||||||
common/savecom/revision,fname
|
common/savecom/revision,fname
|
||||||
!### REMEMBER that /npar/ is not updated until nparams=nparams0 is executed. ###
|
!### REMEMBER that /npar/ is not updated until nparams=nparams0 is executed. ###
|
||||||
|
@ -36,7 +36,7 @@ subroutine qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
|
|||||||
character*64 result
|
character*64 result
|
||||||
character*20 datetime
|
character*20 datetime
|
||||||
common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, &
|
common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, &
|
||||||
nWTransmitting,result(50)
|
nWTransmitting,kHzRequested,result(50)
|
||||||
save
|
save
|
||||||
|
|
||||||
tsec0=sec_midn()
|
tsec0=sec_midn()
|
||||||
|
@ -821,6 +821,13 @@ void MainWindow::on_DecodeButton_clicked() //Decode request
|
|||||||
|
|
||||||
void MainWindow::freezeDecode(int n) //freezeDecode()
|
void MainWindow::freezeDecode(int n) //freezeDecode()
|
||||||
{
|
{
|
||||||
|
if(n==3) {
|
||||||
|
decodes_.kHzRequested=m_wide_graph_window->QSOfreq();
|
||||||
|
mem_qmap.lock();
|
||||||
|
ipc_wsjtx[5]=decodes_.kHzRequested;
|
||||||
|
mem_qmap.unlock();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(n==2) {
|
if(n==2) {
|
||||||
ui->tolSpinBox->setValue(5);
|
ui->tolSpinBox->setValue(5);
|
||||||
datcom_.ntol=m_tol;
|
datcom_.ntol=m_tol;
|
||||||
|
@ -599,11 +599,10 @@ void CPlotter::mousePressEvent(QMouseEvent *event) //mousePressEvent
|
|||||||
int x=event->x();
|
int x=event->x();
|
||||||
int y=event->y();
|
int y=event->y();
|
||||||
int button=event->button();
|
int button=event->button();
|
||||||
// qDebug() << "aa" << x << y << int(FreqfromX(x)+0.5)
|
|
||||||
// << floor(datcom_.fcenter) + 0.001*int(FreqfromX(x)+0.5);
|
|
||||||
if(y < h+30) { // Wideband waterfall
|
if(y < h+30) { // Wideband waterfall
|
||||||
if(button==1) {
|
if(button==1) {
|
||||||
setFQSO(x,false);
|
setFQSO(x,false);
|
||||||
|
if(event->modifiers() & Qt::ControlModifier) emit freezeDecode1(3);
|
||||||
}
|
}
|
||||||
if(button==2 and !m_bLockTxRx) {
|
if(button==2 and !m_bLockTxRx) {
|
||||||
if(x<0) x=0; // x is pixel number
|
if(x<0) x=0; // x is pixel number
|
||||||
|
@ -225,6 +225,7 @@ struct {
|
|||||||
int nQDecoderDone; //QMAP decoder is finished (0 or 1)
|
int nQDecoderDone; //QMAP decoder is finished (0 or 1)
|
||||||
int nWDecoderBusy; //WSJT-X decoder is busy (0 or 1)
|
int nWDecoderBusy; //WSJT-X decoder is busy (0 or 1)
|
||||||
int nWTransmitting; //WSJT-X is transmitting (0 or 1)
|
int nWTransmitting; //WSJT-X is transmitting (0 or 1)
|
||||||
|
int kHzRequested; //Integer kHz dial frequency requested from QMAP
|
||||||
char result[50][64]; //Decodes as character*64 arrays
|
char result[50][64]; //Decodes as character*64 arrays
|
||||||
} qmapcom;
|
} qmapcom;
|
||||||
int* ipc_qmap;
|
int* ipc_qmap;
|
||||||
@ -1740,7 +1741,6 @@ void MainWindow::dataSink(qint64 frames)
|
|||||||
int idir=-1;
|
int idir=-1;
|
||||||
save_echo_params_(&nDopTotal,&nDop,&nfrit,&f1,&width,dec_data.d2,&idir);
|
save_echo_params_(&nDopTotal,&nDop,&nfrit,&f1,&width,dec_data.d2,&idir);
|
||||||
}
|
}
|
||||||
// qDebug() << "aa" << m_astroWidget->DopplerMethod() << nDop << nfrit << m_fDop;
|
|
||||||
avecho_(dec_data.d2,&nDop,&nfrit,&nauto,&navg,&nqual,&f1,&xlevel,&sigdb,
|
avecho_(dec_data.d2,&nDop,&nfrit,&nauto,&navg,&nqual,&f1,&xlevel,&sigdb,
|
||||||
&dBerr,&dfreq,&width,&m_diskData);
|
&dBerr,&dfreq,&width,&m_diskData);
|
||||||
//Don't restart Monitor after an Echo transmission
|
//Don't restart Monitor after an Echo transmission
|
||||||
@ -5097,13 +5097,18 @@ void MainWindow::guiUpdate()
|
|||||||
memcpy(&qmapcom, (char*)ipc_qmap, sizeof(qmapcom)); //Fetch the new decode(s)
|
memcpy(&qmapcom, (char*)ipc_qmap, sizeof(qmapcom)); //Fetch the new decode(s)
|
||||||
readWidebandDecodes();
|
readWidebandDecodes();
|
||||||
}
|
}
|
||||||
|
if(ipc_qmap[5]>0) {
|
||||||
|
// qDebug() << "aa" << m_freqNominal << ipc_qmap[5];
|
||||||
|
setRig((m_freqNominal/1000000)*1000000 + 1000*ipc_qmap[5]);
|
||||||
|
ipc_qmap[5]=0;
|
||||||
|
// qDebug() << "bb" << m_freqNominal << ipc_qmap[5];
|
||||||
|
}
|
||||||
mem_qmap.unlock();
|
mem_qmap.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Once per second (onesec)
|
//Once per second (onesec)
|
||||||
if(nsec != m_sec0) {
|
if(nsec != m_sec0) {
|
||||||
// qDebug() << "AAA" << nsec%60 << int(m_specOp);
|
// qDebug() << "AAA" << nsec%60 << ipc_qmap[5];
|
||||||
|
|
||||||
if(m_mode=="FST4") chk_FST4_freq_range();
|
if(m_mode=="FST4") chk_FST4_freq_range();
|
||||||
m_currentBand=m_config.bands()->find(m_freqNominal);
|
m_currentBand=m_config.bands()->find(m_freqNominal);
|
||||||
if( SpecOp::HOUND == m_specOp ) {
|
if( SpecOp::HOUND == m_specOp ) {
|
||||||
@ -9673,7 +9678,6 @@ void MainWindow::readWidebandDecodes()
|
|||||||
m_EMECall[dxcall].t=3600*nhr + 60*nmin + nsec;
|
m_EMECall[dxcall].t=3600*nhr + 60*nmin + nsec;
|
||||||
m_EMECall[dxcall].submode=submode;
|
m_EMECall[dxcall].submode=submode;
|
||||||
//### Make sure WSJT-X is set to a Q65 submode consistent with the executing QMAP.
|
//### Make sure WSJT-X is set to a Q65 submode consistent with the executing QMAP.
|
||||||
// qDebug() << "aa" << submode << m_mode << m_nSubMode << bWrongMode;
|
|
||||||
if(w3.contains(grid_regexp)) m_EMECall[dxcall].grid4=w3;
|
if(w3.contains(grid_regexp)) m_EMECall[dxcall].grid4=w3;
|
||||||
bool bCQ=line.contains(" CQ ");
|
bool bCQ=line.contains(" CQ ");
|
||||||
// m_EMECall[dxcall].ready2call=(bCQ or line.contains(" 73") or line.contains(" RR73"));
|
// m_EMECall[dxcall].ready2call=(bCQ or line.contains(" 73") or line.contains(" RR73"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user