mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-09-03 21:57:48 -04:00
Work toward display of q3list in Active Stations Window.
This commit is contained in:
parent
20199c33b9
commit
5cdc476cbc
@ -327,6 +327,7 @@ set (wsjt_FSRCS
|
|||||||
lib/ft8_decode.f90
|
lib/ft8_decode.f90
|
||||||
lib/ft4_decode.f90
|
lib/ft4_decode.f90
|
||||||
lib/fst4_decode.f90
|
lib/fst4_decode.f90
|
||||||
|
lib/get_q3list.f90
|
||||||
lib/jt9_decode.f90
|
lib/jt9_decode.f90
|
||||||
lib/options.f90
|
lib/options.f90
|
||||||
lib/packjt.f90
|
lib/packjt.f90
|
||||||
|
36
lib/get_q3list.f90
Normal file
36
lib/get_q3list.f90
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
subroutine get_q3list(fname,nlist,list)
|
||||||
|
|
||||||
|
type q3list
|
||||||
|
character*6 call
|
||||||
|
character*4 grid
|
||||||
|
integer nsec
|
||||||
|
integer nfreq
|
||||||
|
end type q3list
|
||||||
|
|
||||||
|
parameter (MAX_CALLERS=40)
|
||||||
|
character*(*) fname
|
||||||
|
character*36 list(40)
|
||||||
|
integer time
|
||||||
|
integer indx(MAX_CALLERS)
|
||||||
|
type(q3list) callers(MAX_CALLERS)
|
||||||
|
|
||||||
|
|
||||||
|
nhist2=0
|
||||||
|
open(24,file=fname,status='unknown',form='unformatted')
|
||||||
|
read(24,end=1) nhist2,callers(1:nhist2)
|
||||||
|
1 close(24)
|
||||||
|
|
||||||
|
moon_el=0
|
||||||
|
now=time()
|
||||||
|
nlist=nhist2
|
||||||
|
call indexx(callers(1:nlist)%nfreq,nlist,indx)
|
||||||
|
do i=1,nlist
|
||||||
|
hours=(now - callers(i)%nsec)/3600.0
|
||||||
|
j=indx(i)
|
||||||
|
write(list(i),1000) i,callers(j)%nfreq,callers(j)%call, &
|
||||||
|
callers(j)%grid,moon_el,hours,char(0)
|
||||||
|
1000 format(i2,'.',i6,2x,a6,2x,a4,i5,f7.1,a1)
|
||||||
|
enddo
|
||||||
|
|
||||||
|
return
|
||||||
|
end subroutine get_q3list
|
@ -125,10 +125,11 @@ contains
|
|||||||
nhist2=nhist2-1
|
nhist2=nhist2-1
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
|
2 close(24)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
! Determine the T/R sequence: iseq=0 (even), or iseq=1 (odd)
|
! Determine the T/R sequence: iseq=0 (even), or iseq=1 (odd)
|
||||||
2 n=nutc
|
n=nutc
|
||||||
if(ntrperiod.ge.60 .and. nutc.le.2359) n=100*n
|
if(ntrperiod.ge.60 .and. nutc.le.2359) n=100*n
|
||||||
write(cutc,'(i6.6)') n
|
write(cutc,'(i6.6)') n
|
||||||
read(cutc,'(3i2)') ih,im,is
|
read(cutc,'(3i2)') ih,im,is
|
||||||
@ -326,7 +327,10 @@ contains
|
|||||||
call this%callback(nutc,snr1,nsnr,dtdec,f0dec,decoded, &
|
call this%callback(nutc,snr1,nsnr,dtdec,f0dec,decoded, &
|
||||||
idec,nused,ntrperiod)
|
idec,nused,ntrperiod)
|
||||||
if(ncontest.eq.1) then
|
if(ncontest.eq.1) then
|
||||||
call q65_hist2(decoded,callers,nhist2)
|
open(24,file=trim(data_dir)//'/tsil.3q',status='unknown', &
|
||||||
|
form='unformatted')
|
||||||
|
call q65_hist2(nint(f0dec),decoded,callers,nhist2)
|
||||||
|
close(24)
|
||||||
else
|
else
|
||||||
call q65_hist(nint(f0dec),msg0=decoded)
|
call q65_hist(nint(f0dec),msg0=decoded)
|
||||||
endif
|
endif
|
||||||
@ -440,7 +444,10 @@ contains
|
|||||||
call this%callback(nutc,snr1,nsnr,dtdec,f0dec,decoded, &
|
call this%callback(nutc,snr1,nsnr,dtdec,f0dec,decoded, &
|
||||||
idec,nused,ntrperiod)
|
idec,nused,ntrperiod)
|
||||||
if(ncontest.eq.1) then
|
if(ncontest.eq.1) then
|
||||||
call q65_hist2(decoded,callers,nhist2)
|
open(24,file=trim(data_dir)//'/tsil.3q',status='unknown', &
|
||||||
|
form='unformatted')
|
||||||
|
call q65_hist2(nint(f0dec),decoded,callers,nhist2)
|
||||||
|
close(24)
|
||||||
else
|
else
|
||||||
call q65_hist(nint(f0dec),msg0=decoded)
|
call q65_hist(nint(f0dec),msg0=decoded)
|
||||||
endif
|
endif
|
||||||
@ -473,9 +480,8 @@ contains
|
|||||||
800 continue
|
800 continue
|
||||||
enddo ! icand
|
enddo ! icand
|
||||||
if(iavg.eq.0 .and.navg(iseq).ge.2 .and. iand(ndepth,16).ne.0) go to 50
|
if(iavg.eq.0 .and.navg(iseq).ge.2 .and. iand(ndepth,16).ne.0) go to 50
|
||||||
900 close(24)
|
|
||||||
|
|
||||||
if(ncontest.ne.1 .or. lagain) go to 999
|
900 if(ncontest.ne.1 .or. lagain) go to 999
|
||||||
if(ntrperiod.ne.60 .or. nsubmode.ne.0) go to 999
|
if(ntrperiod.ne.60 .or. nsubmode.ne.0) go to 999
|
||||||
|
|
||||||
! This is first time here, and we're running Q65-60A in NA VHF Contest mode.
|
! This is first time here, and we're running Q65-60A in NA VHF Contest mode.
|
||||||
|
@ -866,7 +866,7 @@ subroutine q65_hist(if0,msg0,dxcall,dxgrid)
|
|||||||
900 return
|
900 return
|
||||||
end subroutine q65_hist
|
end subroutine q65_hist
|
||||||
|
|
||||||
subroutine q65_hist2(msg0,callers,nhist2)
|
subroutine q65_hist2(nfreq,msg0,callers,nhist2)
|
||||||
|
|
||||||
use types
|
use types
|
||||||
parameter (MAX_CALLERS=40) !For multiple q3 decodes in NA VHf Contest mode
|
parameter (MAX_CALLERS=40) !For multiple q3 decodes in NA VHf Contest mode
|
||||||
@ -912,9 +912,8 @@ subroutine q65_hist2(msg0,callers,nhist2)
|
|||||||
callers(nhist2)%call=c6
|
callers(nhist2)%call=c6
|
||||||
callers(nhist2)%grid=g4
|
callers(nhist2)%grid=g4
|
||||||
callers(nhist2)%nsec=time()
|
callers(nhist2)%nsec=time()
|
||||||
rewind(24)
|
callers(nhist2)%nfreq=nfreq
|
||||||
write(24) nhist2,callers(1:nhist2)
|
write(24) nhist2,callers(1:nhist2)
|
||||||
rewind(24)
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
900 return
|
900 return
|
||||||
|
@ -11,6 +11,7 @@ module types
|
|||||||
character*6 call
|
character*6 call
|
||||||
character*4 grid
|
character*4 grid
|
||||||
integer nsec
|
integer nsec
|
||||||
|
integer nfreq
|
||||||
end type q3list
|
end type q3list
|
||||||
|
|
||||||
end module types
|
end module types
|
||||||
|
@ -60,14 +60,17 @@ void ActiveStations::write_settings ()
|
|||||||
void ActiveStations::displayRecentStations(QString mode, QString const& t)
|
void ActiveStations::displayRecentStations(QString mode, QString const& t)
|
||||||
{
|
{
|
||||||
m_mode=mode;
|
m_mode=mode;
|
||||||
bool b=(m_mode=="Q65");
|
if(m_mode=="Q65") {
|
||||||
if(b) {
|
|
||||||
ui->header_label2->setText(" N Frx Fsked S/N Call Grid Tx Age");
|
ui->header_label2->setText(" N Frx Fsked S/N Call Grid Tx Age");
|
||||||
ui->label->setText("QSOs:");
|
ui->label->setText("QSOs:");
|
||||||
|
} else if(m_mode=="Q65-pileup") {
|
||||||
|
ui->header_label2->setText(" N Freq Call Grid El Age(h)");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
ui->header_label2->setText(" N Call Grid Az S/N Freq Tx Age Pts");
|
ui->header_label2->setText(" N Call Grid Az S/N Freq Tx Age Pts");
|
||||||
ui->label->setText("Rate:");
|
ui->label->setText("Rate:");
|
||||||
}
|
}
|
||||||
|
bool b=(m_mode.left(3)=="Q65");
|
||||||
ui->bandChanges->setVisible(!b);
|
ui->bandChanges->setVisible(!b);
|
||||||
ui->cbReadyOnly->setVisible(!b);
|
ui->cbReadyOnly->setVisible(!b);
|
||||||
ui->label_2->setVisible(!b);
|
ui->label_2->setVisible(!b);
|
||||||
|
@ -185,6 +185,8 @@ extern "C" {
|
|||||||
void save_dxbase_(char* dxbase, FCL len);
|
void save_dxbase_(char* dxbase, FCL len);
|
||||||
|
|
||||||
void indexx_(float arr[], int* n, int indx[]);
|
void indexx_(float arr[], int* n, int indx[]);
|
||||||
|
|
||||||
|
void get_q3list_(char* fname, int* nlist, char* list, FCL len1, FCL len2);
|
||||||
}
|
}
|
||||||
|
|
||||||
int volatile itone[MAX_NUM_SYMBOLS]; //Audio tones for all Tx symbols
|
int volatile itone[MAX_NUM_SYMBOLS]; //Audio tones for all Tx symbols
|
||||||
@ -3556,6 +3558,28 @@ void MainWindow::decodeDone ()
|
|||||||
ARRL_Digi_Display(); // Update the ARRL_DIGI display
|
ARRL_Digi_Display(); // Update the ARRL_DIGI display
|
||||||
}
|
}
|
||||||
if(m_mode!="FT8" or dec_data.params.nzhsym==50) m_nDecodes=0;
|
if(m_mode!="FT8" or dec_data.params.nzhsym==50) m_nDecodes=0;
|
||||||
|
|
||||||
|
if(m_mode=="Q65" and (m_specOp==SpecOp::NA_VHF or m_specOp==SpecOp::ARRL_DIGI
|
||||||
|
or m_specOp==SpecOp::WW_DIGI) and m_ActiveStationsWidget!=NULL) {
|
||||||
|
|
||||||
|
int nlist=0;
|
||||||
|
char list[2000];
|
||||||
|
char line[36];
|
||||||
|
list[0]=0;
|
||||||
|
// QString t="1200 W9XYZ EN37";
|
||||||
|
auto fname {QDir::toNativeSeparators(m_config.writeable_data_dir ().absoluteFilePath ("tsil.3q"))};
|
||||||
|
|
||||||
|
// morse_(const_cast<char *> (m_config.my_callsign ().toLatin1().constData()),
|
||||||
|
// const_cast<int *> (icw), &m_ncw, (FCL)m_config.my_callsign().length());
|
||||||
|
get_q3list_(const_cast<char *> (fname.toLatin1().constData()), &nlist,
|
||||||
|
&list[0], (FCL)fname.length(), (FCL)2000);
|
||||||
|
QString t="";
|
||||||
|
for(int i=0; i<nlist; i++) {
|
||||||
|
memcpy(line,&list[36*i],36);
|
||||||
|
t+=QString::fromLatin1(line)+"\n";
|
||||||
|
}
|
||||||
|
m_ActiveStationsWidget->displayRecentStations("Q65-pileup",t);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::read_log()
|
void MainWindow::read_log()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user