diff --git a/Configuration.cpp b/Configuration.cpp index c8652a599..ee67abc77 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -1542,6 +1542,8 @@ void Configuration::impl::read_settings () Contest_Name_ = settings_->value ("Contest_Name",QString {}).toString (); ui_->Field_Day_Exchange->setText(FD_exchange_); ui_->RTTY_Exchange->setText(RTTY_exchange_); + ui_->Contest_Name->setText(Contest_Name_); + if (next_font_.fromString (settings_->value ("Font", QGuiApplication::font ().toString ()).toString ()) && next_font_ != font_) { diff --git a/Configuration.ui b/Configuration.ui index 1f91e09cd..acf225f5d 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -3076,13 +3076,13 @@ Right click for insert and delete options. - PACC + 4 - 2 + 0 Qt::AlignCenter @@ -3336,13 +3336,13 @@ Right click for insert and delete options. - - + + + + - - - + diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 30a94b42b..116a07fa8 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -44,6 +44,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) real ss(184,NSMAX) logical baddata,newdat65,newdat9,single_decode,bVHF,bad0,newdat,ex + logical lprinthash22 integer*2 id2(NTMAX*12000) integer nqf(20) type(params_block) :: params @@ -237,27 +238,30 @@ subroutine multimode_decoder(ss,id2,params,nfsample) ! We're in FST4 mode ndepth=iand(params%ndepth,3) iwspr=0 + lprinthash22=.false. params%nsubmode=0 call timer('dec_fst4',0) call my_fst4%decode(fst4_decoded,id2,params%nutc, & params%nQSOProgress,params%nfa,params%nfb, & params%nfqso,ndepth,params%ntr,params%nexp_decode, & params%ntol,params%emedelay,logical(params%nagain), & - logical(params%lapcqonly),mycall,hiscall,iwspr) + logical(params%lapcqonly),mycall,hiscall,iwspr,lprinthash22) call timer('dec_fst4',1) go to 800 endif - if(params%nmode.eq.241) then + if(params%nmode.eq.241 .or. params%nmode.eq.242) then ! We're in FST4W mode ndepth=iand(params%ndepth,3) iwspr=1 + lprinthash22=.false. + if(params%nmode.eq.242) lprinthash22=.true. call timer('dec_fst4',0) call my_fst4%decode(fst4_decoded,id2,params%nutc, & params%nQSOProgress,params%nfa,params%nfb, & params%nfqso,ndepth,params%ntr,params%nexp_decode, & params%ntol,params%emedelay,logical(params%nagain), & - logical(params%lapcqonly),mycall,hiscall,iwspr) + logical(params%lapcqonly),mycall,hiscall,iwspr,lprinthash22) call timer('dec_fst4',1) go to 800 endif @@ -721,7 +725,7 @@ contains end subroutine ft4_decoded subroutine fst4_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap, & - qual,ntrperiod,lwspr,fmid,w50) + qual,ntrperiod,fmid,w50) use fst4_decode implicit none @@ -736,7 +740,6 @@ contains integer, intent(in) :: nap real, intent(in) :: qual integer, intent(in) :: ntrperiod - logical, intent(in) :: lwspr real, intent(in) :: fmid real, intent(in) :: w50 diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index a9c7d80f9..18e9c5c07 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -8,7 +8,7 @@ module fst4_decode abstract interface subroutine fst4_decode_callback (this,nutc,sync,nsnr,dt,freq, & - decoded,nap,qual,ntrperiod,lwspr,fmid,w50) + decoded,nap,qual,ntrperiod,fmid,w50) import fst4_decoder implicit none class(fst4_decoder), intent(inout) :: this @@ -21,7 +21,6 @@ module fst4_decode integer, intent(in) :: nap real, intent(in) :: qual integer, intent(in) :: ntrperiod - logical, intent(in) :: lwspr real, intent(in) :: fmid real, intent(in) :: w50 end subroutine fst4_decode_callback @@ -31,7 +30,7 @@ contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfa,nfb,nfqso, & ndepth,ntrperiod,nexp_decode,ntol,emedelay,lagain,lapcqonly,mycall, & - hiscall,iwspr) + hiscall,iwspr,lprinthash22) use prog_args use timer_module, only: timer @@ -67,9 +66,10 @@ contains integer mcq(29),mrrr(19),m73(19),mrr73(19) logical badsync,unpk77_success,single_decode - logical first,nohiscall,lwspr + logical first,nohiscall logical new_callsign,plotspec_exists,wcalls_exists,do_k50_decode logical decdata_exists + logical lprinthash22 integer*2 iwave(30*60*12000) @@ -88,7 +88,8 @@ contains dxcall13=hiscall ! initialize for use in packjt77 mycall13=mycall - if(iwspr.ne.0.and.iwspr.ne.1) return + if(iwspr.ne.0 .and. iwspr.ne.1) return + if(lagain) continue ! use lagain to keep compiler happy if(first) then @@ -503,6 +504,13 @@ contains write(c77,'(50i1)') message74(1:50) c77(51:77)='000000000000000000000110000' call unpack77(c77,1,msg,unpk77_success) + if(lprinthash22 .and. unpk77_success .and. index(msg,'<...>').gt.0) then + read(c77,'(b22.22)') n22tmp + i1=index(msg,' ') + wpart=trim(msg(i1+1:)) + write(msg,'(a1,i7.7,a1)') '<',n22tmp,'>' + msg=trim(msg)//' '//trim(wpart) + endif if(unpk77_success .and. do_k50_decode) then ! If decode was obtained with Keff=66, save call/grid in fst4w_calls.txt if not there already. i1=index(msg,' ') @@ -627,8 +635,7 @@ contains close(21) endif call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & - iaptype,qual,ntrperiod,lwspr,fmid,w50) -! if(iwspr.eq.0 .and. nb.lt.0) go to 900 + iaptype,qual,ntrperiod,fmid,w50) goto 800 endif enddo ! metrics diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 3bfac6721..3621a0a9f 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -27,7 +27,7 @@ program jt9 logical :: read_files = .true., tx9 = .false., display_help = .false., & bLowSidelobes = .false., nexp_decode_set = .false., & have_ntol = .false. - type (option) :: long_options(31) = [ & + type (option) :: long_options(32) = [ & option ('help', .false., 'h', 'Display this help message', ''), & option ('shmem',.true.,'s','Use shared memory for sample data','KEY'), & option ('tr-period', .true., 'p', 'Tx/Rx period, default SECONDS=60', & @@ -60,6 +60,7 @@ program jt9 option ('jt65', .false.,'6', 'JT65 mode', ''), & option ('fst4', .false., '7', 'FST4 mode', ''), & option ('fst4w', .false., 'W', 'FST4W mode', ''), & + option ('fst4w', .false., 'Y', 'FST4W mode, print hash22 values', ''), & option ('ft8', .false., '8', 'FT8 mode', ''), & option ('jt9', .false., '9', 'JT9 mode', ''), & option ('qra64', .false., 'q', 'QRA64 mode', ''), & @@ -85,13 +86,12 @@ program jt9 common/decstats/ntry65a,ntry65b,n65a,n65b,num9,numfano data npatience/1/,nthreads/1/,wisfile/' '/ - iwspr=0 nsubmode = 0 ntol = 20 TRperiod=60.d0 do - call getopt('hs:e:a:b:r:m:p:d:f:F:w:t:9876543WqTL:S:H:c:G:x:g:X:Q:', & + call getopt('hs:e:a:b:r:m:p:d:f:F:w:t:9876543WYqTL:S:H:c:G:x:g:X:Q:', & long_options,c,optarg,arglen,stat,offset,remain,.true.) if (stat .ne. 0) then exit @@ -141,7 +141,6 @@ program jt9 if (mode.lt.65) mode = mode + 65 case ('7') mode = 240 - iwspr=0 case ('8') mode = 8 case ('9') @@ -152,7 +151,8 @@ program jt9 read (optarg(:arglen), *) npatience case ('W') mode = 241 - iwspr=1 + case ('Y') + mode = 242 case ('c') read (optarg(:arglen), *) mycall case ('G') @@ -212,7 +212,7 @@ program jt9 hisgrid=' ' endif - if (mode .eq. 241) then + if (mode .eq. 241 .or. mode .eq. 242) then ntol = min (ntol, 100) else if (mode .eq. 65 + 9 .and. .not. have_ntol) then ntol = 20 @@ -222,7 +222,7 @@ program jt9 ntol = min (ntol, 1000) end if if (.not. nexp_decode_set) then - if (mode .eq. 240 .or. mode .eq. 241) then + if (mode .eq. 240 .or. mode .eq. 241 .or. mode .eq. 242) then nexp_decode = 3 * 256 ! single decode off and nb=0 end if end if @@ -277,7 +277,8 @@ program jt9 call timer('symspec ',1) endif nhsym0=nhsym - if(nhsym.ge.181 .and. mode.ne.240 .and. mode.ne.241 .and. mode.ne.66) exit + if(nhsym.ge.181 .and. mode.ne.240 .and. mode.ne.241 .and. & + mode.ne.242 .and. mode.ne.66) exit endif enddo close(unit=wav%lun) @@ -294,7 +295,6 @@ program jt9 shared_data%params%kin=64800 if(mode.eq.240) shared_data%params%kin=720000 !### 60 s periods ### shared_data%params%nzhsym=nhsym - if(mode.eq.240 .and. iwspr.eq.1) ndepth=ior(ndepth,128) shared_data%params%ndepth=ndepth shared_data%params%lft8apon=.true. shared_data%params%ljt65apon=.true. diff --git a/translations/wsjtx_it.ts b/translations/wsjtx_it.ts index 7e214b668..52a1ba5bd 100644 --- a/translations/wsjtx_it.ts +++ b/translations/wsjtx_it.ts @@ -70,7 +70,7 @@ Max Age - Etá Massima + Età Massima @@ -115,7 +115,7 @@ Call Grid Age Points - Punti Nominativo etá della griglia + Nominativo Griglia Età Punti @@ -2369,7 +2369,7 @@ Errore (%2):%3 Enable auto response to the first decode from a new DXCC or new call on the current band. - Abilita la risposta automatica alla prima decodifica da un nuovo DXCC o una nuova chiamata sulla banda corrente. + Abilita la risposta automatica alla prima decodifica da un nuovo DXCC o un nuovo nominativo sulla banda corrente. @@ -2989,7 +2989,7 @@ Fare doppio clic per attivare / disattivare l'uso del messaggio Tx1 per avv <html><head/><body><p>Switch to this Tx message NOW</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compound call holders)</p></body></html> - <html><head/><body><p>Passa a questo messaggio Tx ORA</p><p>Fai doppio clic per attivare o disattivare l'uso del messaggio Tx1 per avviare un QSO con una stazione (non consentito per i detentori di chiamate composte di tipo 1)</p></body></html> + <html><head/><body><p>Passa a questo messaggio Tx ADESSO</p><p>Fai doppio clic per attivare o disattivare l'uso del messaggio Tx1 per avviare un QSO con una stazione (non consentito per i detentori di chiamate composte di tipo 1)</p></body></html> @@ -3067,7 +3067,7 @@ I messaggi RR73 devono essere utilizzati solo quando si è ragionevolmente sicur <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> - <html><head/><body><p>Passa a questo messaggio Tx ORA</p><p>Fai doppio clic per alternare tra i messaggi RRR e RR73 in Tx4 (non consentito per i possessori di chiamate composte di tipo2)</p><p>I messaggi RR73 devono essere utilizzati solo quando sei ragionevolmente sicuro che non sarà richiesta alcuna ripetizione del messaggio</p></body></html> + <html><head/><body><p>Passa a questo messaggio Tx ADESSO</p><p>Fai doppio clic per alternare tra i messaggi RRR e RR73 in Tx4 (non consentito per i possessori di chiamate composte di tipo2)</p><p>I messaggi RR73 devono essere utilizzati solo quando sei ragionevolmente sicuro che non sarà richiesta alcuna ripetizione del messaggio</p></body></html> @@ -3459,12 +3459,12 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). <html><head/><body><p>6 digit locators cause 2 different messages to be sent, the second contains the full locator but only a hashed callsign, other stations must have decoded the first once before they can decode your call in the second. Check this option to only send 4 digit locators if it will avoid the two message protocol.</p></body></html> - <html><head/><body><p>I localizzatori a 6 cifre causano l'invio di 2 messaggi diversi, il secondo contiene il localizzatore completo ma solo un nominativo con hash, altre stazioni devono aver decodificato il primo una volta prima di poter decodificare la chiamata nel secondo. Selezionare questa opzione per inviare localizzatori a 4 cifre solo se si eviterà il protocollo a due messaggi.</p></body></html> + <html><head/><body><p>I localizzatori a 6 cifre causano l'invio di 2 messaggi diversi, il secondo contiene il localizzatore completo ma solo un nominativo con hash, altre stazioni devono aver decodificato il primo una volta prima di poter decodificare il nominativo nel secondo. Selezionare questa opzione per inviare localizzatori a 4 cifre solo se si eviterà il protocollo a due messaggi.</p></body></html> 6 digit locators cause 2 different messages to be sent, the second contains the full locator but only a hashed callsign, other stations must have decoded the first once before they can decode your call in the second. Check this option to only send 4 digit locators if it will avoid the two message protocol. - I localizzatori a 6 cifre causano l'invio di 2 messaggi diversi, il secondo contiene il localizzatore completo ma solo un nominativo con hash, altre stazioni devono aver decodificato il primo una volta prima di poter decodificare la chiamata nel secondo. Selezionare questa opzione per inviare localizzatori a 4 cifre solo se si eviterà il protocollo a due messaggi. + I localizzatori a 6 cifre causano l'invio di 2 messaggi diversi, il secondo contiene il localizzatore completo ma solo un nominativo con hash, altre stazioni devono aver decodificato il primo una volta prima di poter decodificare il nominativo nel secondo. Selezionare questa opzione per inviare localizzatori a 4 cifre solo se si eviterà il protocollo a due messaggi. @@ -4370,7 +4370,7 @@ is already in CALL3.TXT, do you wish to replace it? Warning: DX Call field is empty. - Avviso: il campo Chiamata DX è vuoto. + Avviso: il campo Nominativo DX è vuoto. @@ -5703,22 +5703,22 @@ Errore (%2):%3 <html><head/><body><p>Type 2 compound callsigns are those with prefixes or suffixes not included in the allowed shortlist (See Help-&gt;Add-on prefixes and suffixes).</p><p>This option determines which generated messages should contain your full type 2 compound call sign rather than your base callsign. It only applies if you have a type 2 compound callsign.</p><p>This option controls the way the messages that are used to answer CQ calls are generated. Generated messages 6 (CQ) and 5 (73) will always contain your full callsign. The JT65 and JT9 protocols allow for some standard messages with your full call at the expense of another piece of information such as the DX call or your locator.</p><p>Choosing message 1 omits the DX callsign which may be an issue when replying to CQ calls. Choosing message 3 also omits the DX callsign and many versions of this and other software will not extract the report. Choosing neither means that your full callsign only goes in your message 5 (73) so your QSO partner may log the wrong callsign.</p><p>None of these options are perfect, message 3 is usually best but be aware your QSO partner may not log the report you send them.</p></body></html> - <html><head/><body><p>I nominativi composti di tipo 2 sono quelli con prefissi o suffissi non inclusi nella lista consentita (Vedi Aiuto-&gt; Prefissi e suffissi aggiuntivi).</p><p> Questa opzione determina quali messaggi generati devono contenere la chiamata composta completa di tipo 2 anziché il tuo nominativo di base. Si applica solo se si dispone di un nominativo composto di tipo 2.</p><p> Questa opzione controlla il modo in cui vengono generati i messaggi utilizzati per rispondere alle chiamate CQ. I messaggi generati 6 (CQ) e 5 (73) conterranno sempre il tuo nominativo completo. I protocolli JT65 e JT9 consentono alcuni messaggi standard con il tuo nominativo completo a spese di un'altra informazione come la chiamata DX o il tuo localizzatore. </p><p> La scelta del messaggio 1 omette il nominativo DX che potrebbe essere un problema quando si risponde alle chiamate CQ. La scelta del messaggio 3 omette anche il nominativo DX e molte versioni di questo e di altri software non estrarranno il rapporto. Scegliere nessuno dei due significa che il tuo nominativo completo va inserito solo nel tuo messaggio 5 (73), quindi il tuo partner del QSO potrebbe registrare un nominativo errato.</p><p>Nessuna di queste opzioni è perfetta, il messaggio 3 è in genere il migliore ma fai attenzione al tuo partner di QSO che potrebbe non registrare il rapporto che gli hai inviato.</p></body></html> + <html><head/><body><p>I nominativi composti di tipo 2 sono quelli con prefissi o suffissi non inclusi nella lista consentita (Vedi Aiuto-&gt; Prefissi e suffissi aggiuntivi).</p><p> Questa opzione determina quali messaggi generati devono contenere la nominativo composto completo di tipo 2 anziché il tuo nominativo di base. Si applica solo se si dispone di un nominativo composto di tipo 2.</p><p> Questa opzione controlla il modo in cui vengono generati i messaggi utilizzati per rispondere alle chiamate CQ. I messaggi generati 6 (CQ) e 5 (73) conterranno sempre il tuo nominativo completo. I protocolli JT65 e JT9 consentono alcuni messaggi standard con il tuo nominativo completo a spese di un'altra informazione come il nominativo DX o il tuo localizzatore. </p><p> La scelta del messaggio 1 omette il nominativo DX che potrebbe essere un problema quando si risponde alle chiamate CQ. La scelta del messaggio 3 omette anche il nominativo DX e molte versioni di questo e di altri software non estrarranno il rapporto. Scegliere nessuno dei due significa che il tuo nominativo completo va inserito solo nel tuo messaggio 5 (73), quindi il tuo partner del QSO potrebbe registrare un nominativo errato.</p><p>Nessuna di queste opzioni è perfetta, il messaggio 3 è in genere il migliore ma fai attenzione al tuo partner di QSO che potrebbe non registrare il rapporto che gli hai inviato.</p></body></html> Full call in Tx1 - Chiamata completa in Tx1 + Nominativo completo in Tx1 Full call in Tx3 - Chiamata completa in Tx3 + Nominativo completo in Tx3 Full call in Tx5 only - Chiamata completa solo in Tx5 + Nominativo completo solo in Tx5 @@ -6641,14 +6641,14 @@ campo commenti. Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. - Seleziona questa opzione per forzare la cancellazione della chiamata DX + Seleziona questa opzione per forzare la cancellazione del nominativo DX e i campi della Griglia DX quando viene inviato un messaggio di testo libero o 73. Clear &DX call and grid after logging (Griglia=GRID LOCATOR) - Cancella chiamata &DX e la griglia dopo la registrazione + Cancella nominativo &DX e la griglia dopo la registrazione diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c2bbc7128..b78eef49b 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5860,7 +5860,7 @@ void MainWindow::genCQMsg () ( tlist.at(1)==my_callsign or tlist.at(2)==my_callsign ) and stdCall(my_callsign)) { - if(m_config.Individual_Contest_Name()) { + if(m_config.Individual_Contest_Name() && m_config.Contest_Name() != "") { m_cqStr = m_config.Contest_Name(); } else { if(SpecOp::NA_VHF == m_specOp) m_cqStr="TEST"; @@ -7629,6 +7629,7 @@ void MainWindow::on_bandComboBox_activated (int index) m_bandEdited = true; band_changed (frequency); m_wideGraph->setRxBand (m_config.bands ()->find (frequency)); + auto_tx_mode(false); } void MainWindow::band_changed (Frequency f)