Add the $DXCALL macro capability.

This commit is contained in:
Joe Taylor 2021-12-06 11:12:10 -05:00
parent 3e43e57858
commit 43c0752140
5 changed files with 28 additions and 1 deletions

View File

@ -505,6 +505,7 @@ set (wsjt_FSRCS
lib/qra/q65/q65_set_list.f90 lib/qra/q65/q65_set_list.f90
lib/refspectrum.f90 lib/refspectrum.f90
lib/savec2.f90 lib/savec2.f90
lib/save_dxbase.f90
lib/sec0.f90 lib/sec0.f90
lib/sec_midn.f90 lib/sec_midn.f90
lib/setup65.f90 lib/setup65.f90

View File

@ -8,6 +8,7 @@ module packjt77
character (len=13), dimension(1:MAXRECENT) :: recent_calls='' character (len=13), dimension(1:MAXRECENT) :: recent_calls=''
character (len=13) :: mycall13='' character (len=13) :: mycall13=''
character (len=13) :: dxcall13='' character (len=13) :: dxcall13=''
character (len=6) :: dxbase=''
integer, dimension(1:MAXHASH) :: ihash22=-1 integer, dimension(1:MAXHASH) :: ihash22=-1
integer :: nzhash=0 integer :: nzhash=0
integer n28a,n28b integer n28a,n28b
@ -124,6 +125,11 @@ subroutine pack77(msg0,i3,n3,c77)
integer ntel(3) integer ntel(3)
msg=msg0 msg=msg0
if(msg(1:3).eq.'$DX') then
i1=index(msg,' ')
msg=trim(dxbase)//' '//msg(i1+1:)
endif
i3_hint=i3 i3_hint=i3
n3_hint=n3 n3_hint=n3
i3=-1 i3=-1

9
lib/save_dxbase.f90 Normal file
View File

@ -0,0 +1,9 @@
subroutine save_dxbase(dxbase0)
use packjt77
character*6 dxbase0
dxbase=dxbase0
return
end subroutine save_dxbase

View File

@ -184,6 +184,8 @@ extern "C" {
void get_ft4msg_(int* idecode, char* line, int len); void get_ft4msg_(int* idecode, char* line, int len);
void chk_samples_(int* m_ihsym,int* k, int* m_hsymStop); void chk_samples_(int* m_ihsym,int* k, int* m_hsymStop);
void save_dxbase_(char* dxbase, int len);
} }
int volatile itone[MAX_NUM_SYMBOLS]; //Audio tones for all Tx symbols int volatile itone[MAX_NUM_SYMBOLS]; //Audio tones for all Tx symbols
@ -210,7 +212,7 @@ using SpecOp = Configuration::SpecialOperatingActivity;
namespace namespace
{ {
Radio::Frequency constexpr default_frequency {14076000}; Radio::Frequency constexpr default_frequency {14076000};
QRegExp message_alphabet {"[- @A-Za-z0-9+./?#<>;]*"}; QRegExp message_alphabet {"[$- @A-Za-z0-9+./?#<>;]*"};
// grid exact match excluding RR73 // grid exact match excluding RR73
QRegularExpression grid_regexp {"\\A(?![Rr]{2}73)[A-Ra-r]{2}[0-9]{2}([A-Xa-x]{2}){0,1}\\z"}; QRegularExpression grid_regexp {"\\A(?![Rr]{2}73)[A-Ra-r]{2}[0-9]{2}([A-Xa-x]{2}){0,1}\\z"};
auto quint32_max = std::numeric_limits<quint32>::max (); auto quint32_max = std::numeric_limits<quint32>::max ();
@ -5371,6 +5373,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
auto is_type_one = !is77BitMode () && is_compound && shortList (my_callsign); auto is_type_one = !is77BitMode () && is_compound && shortList (my_callsign);
auto const& my_grid = m_config.my_grid ().left (4); auto const& my_grid = m_config.my_grid ().left (4);
auto const& hisBase = Radio::base_callsign (hisCall); auto const& hisBase = Radio::base_callsign (hisCall);
save_dxbase_(const_cast <char *> ((hisBase + " ").left (6).toLatin1().constData()),6);
auto eme_short_codes = m_config.enable_VHF_features () && ui->cbShMsgs->isChecked () auto eme_short_codes = m_config.enable_VHF_features () && ui->cbShMsgs->isChecked ()
&& m_mode == "JT65"; && m_mode == "JT65";
@ -5852,6 +5855,13 @@ void MainWindow::on_dxCallEntry_textChanged (QString const& call)
statusUpdate (); statusUpdate ();
} }
void MainWindow::on_dxCallEntry_editingFinished()
{
auto const& dxBase = Radio::base_callsign (m_hisCall);
save_dxbase_(const_cast <char *> ((dxBase + " ").left (6).toLatin1().constData()),6);
}
void MainWindow::on_dxCallEntry_returnPressed () void MainWindow::on_dxCallEntry_returnPressed ()
{ {
on_lookupButton_clicked(); on_lookupButton_clicked();

View File

@ -204,6 +204,7 @@ private slots:
void on_addButton_clicked(); void on_addButton_clicked();
void on_dxCallEntry_textChanged (QString const&); void on_dxCallEntry_textChanged (QString const&);
void on_dxGridEntry_textChanged (QString const&); void on_dxGridEntry_textChanged (QString const&);
void on_dxCallEntry_editingFinished();
void on_dxCallEntry_returnPressed (); void on_dxCallEntry_returnPressed ();
void on_genStdMsgsPushButton_clicked(); void on_genStdMsgsPushButton_clicked();
void on_logQSOButton_clicked(); void on_logQSOButton_clicked();