mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-08-15 20:22:28 -04:00
More work on FreqCal mode. Some of this code is temporary!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7451 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
4086e93da5
commit
7c483fa17f
@ -1,10 +1,10 @@
|
|||||||
subroutine freqcal(id2,k,nfreq,ntol,line)
|
subroutine freqcal(id2,k,nkhz,noffset,ntol,line)
|
||||||
|
|
||||||
parameter (NZ=30*12000,NFFT=55296,NH=NFFT/2)
|
parameter (NZ=30*12000,NFFT=55296,NH=NFFT/2)
|
||||||
integer*2 id2(0:NZ-1)
|
integer*2 id2(0:NZ-1)
|
||||||
real x(0:NFFT-1)
|
real x(0:NFFT-1)
|
||||||
real s(NH)
|
real s(NH)
|
||||||
character line*27
|
character line*80,cflag*1
|
||||||
complex cx(0:NH)
|
complex cx(0:NH)
|
||||||
equivalence (x,cx)
|
equivalence (x,cx)
|
||||||
data n/0/,k0/9999999/
|
data n/0/,k0/9999999/
|
||||||
@ -16,8 +16,8 @@ subroutine freqcal(id2,k,nfreq,ntol,line)
|
|||||||
x=0.001*id2(k-NFFT:k-1)
|
x=0.001*id2(k-NFFT:k-1)
|
||||||
call four2a(x,NFFT,1,-1,0) !Compute spectrum, r2c
|
call four2a(x,NFFT,1,-1,0) !Compute spectrum, r2c
|
||||||
df=12000.0/NFFT
|
df=12000.0/NFFT
|
||||||
ia=nint((nfreq-ntol)/df)
|
ia=nint((noffset-ntol)/df)
|
||||||
ib=nint((nfreq+ntol)/df)
|
ib=nint((noffset+ntol)/df)
|
||||||
smax=0.
|
smax=0.
|
||||||
s=0.
|
s=0.
|
||||||
do i=ia,ib
|
do i=ia,ib
|
||||||
@ -39,13 +39,20 @@ subroutine freqcal(id2,k,nfreq,ntol,line)
|
|||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
ave=sum/nsum
|
ave=sum/nsum
|
||||||
pave=db(ave) + 8.0
|
|
||||||
snr=db(smax/ave)
|
snr=db(smax/ave)
|
||||||
! if(snr.lt.20.0) cflag='*'
|
pave=db(ave) + 8.0
|
||||||
|
cflag=' '
|
||||||
|
if(snr.lt.20.0) cflag='*'
|
||||||
n=n+1
|
n=n+1
|
||||||
write(line,1100) fpeak,snr
|
nsec=mod(time(),86400)
|
||||||
1100 format(2f8.1)
|
nhr=nsec/3600
|
||||||
line(27:27)=char(0)
|
nmin=mod(nsec/60,60)
|
||||||
|
nsec=mod(nsec,60)
|
||||||
|
ncal=1
|
||||||
|
ferr=fpeak-noffset
|
||||||
|
write(line,1100) nhr,nmin,nsec,nkhz,ncal,noffset,fpeak,ferr,pave, &
|
||||||
|
snr,callsign,cflag,char(0)
|
||||||
|
1100 format(i2.2,':',i2.2,':',i2.2,i7,i3,i6,2f10.3,2f7.1,2x,a6,2x,a1,a1)
|
||||||
|
|
||||||
return
|
return
|
||||||
end subroutine freqcal
|
end subroutine freqcal
|
||||||
|
@ -119,7 +119,8 @@ extern "C" {
|
|||||||
void refspectrum_(short int d2[], bool* bclearrefspec, bool* brefspec,
|
void refspectrum_(short int d2[], bool* bclearrefspec, bool* brefspec,
|
||||||
bool* buseref, const char* c_fname, int len);
|
bool* buseref, const char* c_fname, int len);
|
||||||
|
|
||||||
void freqcal_(short d2[], int* k, int* nfreq, int* ntol, char line[], int len);
|
void freqcal_(short d2[], int* k, int* nkhz,int* noffset, int* ntol,
|
||||||
|
char line[], int len);
|
||||||
}
|
}
|
||||||
|
|
||||||
int volatile itone[NUM_ISCAT_SYMBOLS]; //Audio tones for all Tx symbols
|
int volatile itone[NUM_ISCAT_SYMBOLS]; //Audio tones for all Tx symbols
|
||||||
@ -1095,7 +1096,7 @@ void MainWindow::fixStop()
|
|||||||
void MainWindow::dataSink(qint64 frames)
|
void MainWindow::dataSink(qint64 frames)
|
||||||
{
|
{
|
||||||
static float s[NSMAX];
|
static float s[NSMAX];
|
||||||
char line[27];
|
char line[80];
|
||||||
|
|
||||||
int k (frames);
|
int k (frames);
|
||||||
QString fname {QDir::toNativeSeparators(m_dataDir.absoluteFilePath ("refspec.dat"))};
|
QString fname {QDir::toNativeSeparators(m_dataDir.absoluteFilePath ("refspec.dat"))};
|
||||||
@ -1141,7 +1142,8 @@ void MainWindow::dataSink(qint64 frames)
|
|||||||
fixStop();
|
fixStop();
|
||||||
if(m_mode=="FreqCal" and m_ihsym>=16 and m_ihsym%8==0) {
|
if(m_mode=="FreqCal" and m_ihsym>=16 and m_ihsym%8==0) {
|
||||||
m_RxFreq=ui->RxFreqSpinBox->value ();
|
m_RxFreq=ui->RxFreqSpinBox->value ();
|
||||||
freqcal_(&dec_data.d2[0],&k,&m_RxFreq,&m_Ftol,&line[0],27);
|
int nkhz=(m_freqNominal+m_RxFreq)/1000;
|
||||||
|
freqcal_(&dec_data.d2[0],&k,&nkhz,&m_RxFreq,&m_Ftol,&line[0],80);
|
||||||
QString t=QString::fromLatin1(line);
|
QString t=QString::fromLatin1(line);
|
||||||
|
|
||||||
DecodedText decodedtext;
|
DecodedText decodedtext;
|
||||||
@ -4541,8 +4543,10 @@ void MainWindow::on_actionFreqCal_triggered()
|
|||||||
m_FFTSize = m_nsps / 2;
|
m_FFTSize = m_nsps / 2;
|
||||||
Q_EMIT FFTSize (m_FFTSize);
|
Q_EMIT FFTSize (m_FFTSize);
|
||||||
m_hsymStop=100;
|
m_hsymStop=100;
|
||||||
|
ui->RxFreqSpinBox->setValue(1500);
|
||||||
setup_status_bar (true);
|
setup_status_bar (true);
|
||||||
ui->decodedTextLabel->setText(" Freq S/N");
|
// 18:15:47 0 1 1500 1550.349 0.100 3.5 10.2
|
||||||
|
ui->decodedTextLabel->setText(" UTC Freq CAL Offset fMeas DF Level S/N");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::switch_mode (Mode mode)
|
void MainWindow::switch_mode (Mode mode)
|
||||||
@ -6068,17 +6072,27 @@ void MainWindow::fastPick(int x0, int x1, int y)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionSave_reference_spectrum_triggered()
|
void MainWindow::on_actionMeasure_reference_spectrum_triggered()
|
||||||
{
|
{
|
||||||
if(!m_monitoring) on_monitorButton_clicked (true);
|
if(!m_monitoring) on_monitorButton_clicked (true);
|
||||||
m_bRefSpec=true;
|
m_bRefSpec=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionClear_reference_spectrum_triggered()
|
void MainWindow::on_actionErase_reference_spectrum_triggered()
|
||||||
{
|
{
|
||||||
m_bClearRefSpec=true;
|
m_bClearRefSpec=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::on_actionFrequency_calibration_triggered()
|
||||||
|
{
|
||||||
|
static int n=-1;
|
||||||
|
double fMHz[]={0.660,0.880,1.210,2.500,3.330,5.000,
|
||||||
|
7.850,10.000,14.670,15.000,20.000};
|
||||||
|
m_freqNominal=1000000.0*fMHz[++n] - m_RxFreq + 0.5;
|
||||||
|
if(n>=10) n=-1;
|
||||||
|
on_bandComboBox_activated(-1);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::on_sbCQTxFreq_valueChanged(int)
|
void MainWindow::on_sbCQTxFreq_valueChanged(int)
|
||||||
{
|
{
|
||||||
setXIT (ui->TxFreqSpinBox->value ());
|
setXIT (ui->TxFreqSpinBox->value ());
|
||||||
|
@ -246,8 +246,9 @@ private slots:
|
|||||||
void on_actionFast_Graph_triggered();
|
void on_actionFast_Graph_triggered();
|
||||||
void on_actionHide_Controls_triggered();
|
void on_actionHide_Controls_triggered();
|
||||||
void fast_decode_done();
|
void fast_decode_done();
|
||||||
void on_actionSave_reference_spectrum_triggered();
|
void on_actionMeasure_reference_spectrum_triggered();
|
||||||
void on_actionClear_reference_spectrum_triggered();
|
void on_actionErase_reference_spectrum_triggered();
|
||||||
|
void on_actionFrequency_calibration_triggered();
|
||||||
void on_sbTR_valueChanged(int index);
|
void on_sbTR_valueChanged(int index);
|
||||||
void on_sbFtol_valueChanged(int index);
|
void on_sbFtol_valueChanged(int index);
|
||||||
void on_cbFast9_clicked(bool b);
|
void on_cbFast9_clicked(bool b);
|
||||||
|
@ -2376,9 +2376,6 @@ QPushButton[state="ok"] {
|
|||||||
<addaction name="actionOpen_next_in_directory"/>
|
<addaction name="actionOpen_next_in_directory"/>
|
||||||
<addaction name="actionDecode_remaining_files_in_directory"/>
|
<addaction name="actionDecode_remaining_files_in_directory"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionSave_reference_spectrum"/>
|
|
||||||
<addaction name="actionClear_reference_spectrum"/>
|
|
||||||
<addaction name="separator"/>
|
|
||||||
<addaction name="actionDelete_all_wav_files_in_SaveDir"/>
|
<addaction name="actionDelete_all_wav_files_in_SaveDir"/>
|
||||||
<addaction name="actionErase_ALL_TXT"/>
|
<addaction name="actionErase_ALL_TXT"/>
|
||||||
<addaction name="actionErase_wsjtx_log_adi"/>
|
<addaction name="actionErase_wsjtx_log_adi"/>
|
||||||
@ -2459,12 +2456,21 @@ QPushButton[state="ok"] {
|
|||||||
<string>Configurations</string>
|
<string>Configurations</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QMenu" name="menuTools">
|
||||||
|
<property name="title">
|
||||||
|
<string>Tools</string>
|
||||||
|
</property>
|
||||||
|
<addaction name="actionMeasure_reference_spectrum"/>
|
||||||
|
<addaction name="actionErase_reference_spectrum"/>
|
||||||
|
<addaction name="actionFrequency_calibration"/>
|
||||||
|
</widget>
|
||||||
<addaction name="menuFile"/>
|
<addaction name="menuFile"/>
|
||||||
<addaction name="menuConfig"/>
|
<addaction name="menuConfig"/>
|
||||||
<addaction name="menuView"/>
|
<addaction name="menuView"/>
|
||||||
<addaction name="menuMode"/>
|
<addaction name="menuMode"/>
|
||||||
<addaction name="menuDecode"/>
|
<addaction name="menuDecode"/>
|
||||||
<addaction name="menuSave"/>
|
<addaction name="menuSave"/>
|
||||||
|
<addaction name="menuTools"/>
|
||||||
<addaction name="menuHelp"/>
|
<addaction name="menuHelp"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QStatusBar" name="statusBar"/>
|
<widget class="QStatusBar" name="statusBar"/>
|
||||||
@ -2893,11 +2899,6 @@ QPushButton[state="ok"] {
|
|||||||
<string>F9</string>
|
<string>F9</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionSave_reference_spectrum">
|
|
||||||
<property name="text">
|
|
||||||
<string>Measure reference spectrum</string>
|
|
||||||
</property>
|
|
||||||
</action>
|
|
||||||
<action name="download_samples_action">
|
<action name="download_samples_action">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Download Samples ...</string>
|
<string>&Download Samples ...</string>
|
||||||
@ -2938,11 +2939,6 @@ QPushButton[state="ok"] {
|
|||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionClear_reference_spectrum">
|
|
||||||
<property name="text">
|
|
||||||
<string>Clear reference spectrum</string>
|
|
||||||
</property>
|
|
||||||
</action>
|
|
||||||
<action name="actionHide_Controls">
|
<action name="actionHide_Controls">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Hide menus and labels</string>
|
<string>Hide menus and labels</string>
|
||||||
@ -2962,6 +2958,24 @@ QPushButton[state="ok"] {
|
|||||||
<string>FreqCal</string>
|
<string>FreqCal</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionMeasure_reference_spectrum">
|
||||||
|
<property name="text">
|
||||||
|
<string>Measure reference spectrum</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionErase_reference_spectrum">
|
||||||
|
<property name="text">
|
||||||
|
<string>Erase reference spectrum</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionFrequency_calibration">
|
||||||
|
<property name="text">
|
||||||
|
<string>Frequency calibration</string>
|
||||||
|
</property>
|
||||||
|
<property name="shortcut">
|
||||||
|
<string>Ctrl+F10</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
<tr><td><b>Alt+F4 </b></td><td>Exit program</td></tr>
|
<tr><td><b>Alt+F4 </b></td><td>Exit program</td></tr>
|
||||||
<tr><td><b>F5 </b></td><td>Display special mouse commands</td></tr>
|
<tr><td><b>F5 </b></td><td>Display special mouse commands</td></tr>
|
||||||
<tr><td><b>F6 </b></td><td>Open next file in directory</td></tr>
|
<tr><td><b>F6 </b></td><td>Open next file in directory</td></tr>
|
||||||
|
<tr><td><b>F7 </b></td><td>Display Message Averaging window</td></tr>
|
||||||
<tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr>
|
<tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr>
|
||||||
<tr><td><b>F11 </b></td><td>Move Rx frequency down 1 Hz</td></tr>
|
<tr><td><b>F11 </b></td><td>Move Rx frequency down 1 Hz</td></tr>
|
||||||
<tr><td><b>Ctrl+F11 </b></td><td>Move Rx and Tx frequencies down 1 Hz</td></tr>
|
<tr><td><b>Ctrl+F11 </b></td><td>Move Rx and Tx frequencies down 1 Hz</td></tr>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user