mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -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